Instalacja i konfiguracja OpenLDAP na CentOS 6
Pakiety
Zaczynamy od instalacji pakietów:
yum install openldap-servers openldap-clients
od razu można ustawić, żeby serwer (slapd) się włączał automatycznie:
chkconfig --add slapd chkconfig slapd on
na razie go nie włączam.
Jedna ważna uwaga. W pakiecie openldap jest używany plik /etc/openldap/ldap.conf, ale niektóre pakiety (np.: kiedyś nss_ldap, a obecnie pam_ldap) używają pliku /etc/ldap.conf lub /etc/pam_ldap.conf. Dwa różne plik z konfiguracją powodują problemy, dlatego zwykle kasuję plik /etc/ldap.conf i w jego miejsce tworzę link symboliczny o takiej samej nazwie wskazujący na /etc/openldap/ldap.conf:
rm /etc/ldap.conf rm /etc/pam_ldap.conf ln -s /etc/openldap/ldap.conf /etc/ldap.conf ln -s /etc/openldap/ldap.conf /etc/pam_ldap.conf
Skopiowałem domyślną konfigurację bazy i ustawiłem uprawnienia:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown -R ldap:ldap /var/lib/ldap
Dostosowałem wartości olcSuffix i olcRootDN w pliku
/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
u mnie wyglądają tak:
olcSuffix: dc=jaqb,dc=gda,dc=pl olcRootDN: cn=Manager,dc=jaqb,dc=gda,dc=pl
Wygenerowałem skrót hasła (haslo) poleceniem slappasswd:
slappasswd -u New password: Re-enter new password: {SSHA}B6+pPk3uabUwf034GKcToi3a75A44Jws
i ustawiłem je w konfiguracji jakże oczywistą komendą:
echo "olcRootPW: {SSHA}B6+pPk3uabUwf034GKcToi3a75A44Jws" >> \ /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif
od razu ustawiłem, żeby akceptował połączenia szyfrowane zmieniłem wartość SLAPD_LDAPS w pliku /etc/sysconfig/ldap na yes:
SLAPD_LDAPS=yes
i uruchomiłem serwer
/etc/init.d/slapd start
Otworzyłem port dla połączeń szyfrowanych:
iptables -I INPUT -p tcp --dport 636 -j ACCEPT
Teraz już można podłączyć się do serwera za pomocą polecenia:
ldapsearch -H ldaps:// localhost -D "cn=Manager,dc=jaqb,dc=gda,dc=pl" -W
nic tam nie ma bo baza jest pusta a na dodatek certyfikat może być nie pasujący, ale można się podłączyć.
GUI
Ściągnąłem i zainstalowałem obsługę LDAP w PHP i LDAP Account Manager'a:
yum install php-ldap wget "http://downloads.sourceforge.net/project/lam/LAM/3.9/ldap-account-manager-3.9-0.fedora.1.noarch.rpm?r=&ts=1355006390&use_mirror=netcologne" rpm -i ldap-account-manager-3.9-0.fedora.1.noarch.rpm
(jest już dostępna wersja 4.0.RC1).
W przypadku SElinux'a trzeba zmienić kontekst pliku lam.conf (i kilku innych potrzebnych później):
setenforce Permissive chcon -t httpd_t /var/lib/ldap-account-manager/config/lam.conf chcon -t httpd_t /var/lib/ldap-account-manager/config/config.cfg chcon -t httpd_t /var/lib/ldap-account-manager/config/profiles/default.user setenforce Enforcing
lub od razu dla całego katalogu:
setenforce Permissive chcon -R -t httpd_t /var/lib/ldap-account-manager/config setenforce Enforcing
Teraz można się zalogować do LAM przez adres:
http://adres.ip.kompuerta.lub.nazwa/lam
Najpierw wypadałoby zmienić domyślne hasło. W tym celu w prawym górnym rogu kliknąć LAM configuration. i wejść w Edit general settings. Domyślne hasło to lam. Nowe hasło ustawić w ramce Change master password.
Teraz należy dostosować konfigurację. Znowu w prawym górnym rogu kliknąć LAM configuration. Tam trzeba wejść w Edit server profiles, zmienić w zakładce General settings: Tree suffix - w zależności od domeny i w ramce Security settings hasło i List of valid users - tam wpisałem
cn=Manager,dc=jaqb,dc=gda,dc=pl
a w zakładce Account types: LDAP suffix dla każdego z typów kont. U mnie wygląda to tak
ou=users,dc=jaqb,dc=gda,dc=pl ou=groups,dc=jaqb,dc=gda,dc=pl ou=machines,dc=jaqb,dc=gda,dc=pl dc=jaqb,dc=gda,dc=pl
dla odpowiednio Users, Groups, Hosts i Samba domains.
Teraz można się zalogować wpisując ustawione wcześniej hasło. Przy pierwszym logowaniu baza jest pusta, więc LAM wyświetli komunikat podobny do tego:
The following suffixes are missing in LDAP. LAM can create them for you. ou=users,dc=jaqb,dc=gda,dc=pl ou=groups,dc=jaqb,dc=gda,dc=pl ou=machines,dc=jaqb,dc=gda,dc=pl dc=jaqb,dc=gda,dc=pl
kliknięcie Create jest równoznaczne zaimportowaniu pliku init.ldiff o zawartości:
# jaqb.gda.pl dn: dc=jaqb,dc=gda,dc=pl objectClass: organization objectClass: dcObject dc: jaqb o: jaqb # users, jaqb.gda.pl dn: ou=users,dc=jaqb,dc=gda,dc=pl objectClass: organizationalUnit ou: users # groups, jaqb.gda.pl dn: ou=groups,dc=jaqb,dc=gda,dc=pl objectClass: organizationalUnit ou: groups # machines, jaqb.gda.pl dn: ou=machines,dc=jaqb,dc=gda,dc=pl objectClass: organizationalUnit ou: machines
pliku poleceniem
ldapadd -H ldap://localhost -D "cn=Manager,dc=jaqb,dc=gda,dc=pl" -W -f init.ldiff
Zakładanie użytkowników
Chciałem, żeby użytkownicy byli rozróżniani po uid'zie, więc zmieniłem w Tools, Profile editor domyślny profil (default) dla użytkowników RDN identifier na uid i przy okazji zmieniłem domyślną powłokę (Login shell) na /bin/false.
Najpierw trzeba założyć grupę - nazwałem ją wszyscy.
Potem wystarczy wypełnić wymagane pola, oznaczone gwiazdką. Tak naprawdę wystarczy nazwisko (Last name), resztę uzupełni LAM jak przejdziemy na zakładkę Unix. LAM przyjmuje konwencję nazwy użytkownika jako pierwsza litera imienia i nazwisko, dla Jana Kowalskiego będzie to jkowalski.
Teraz wystarczy skonfigurować inne usługi by korzystały z usługi katalogowej.
Kommentare
Bitte melden Sie sich Logan oder registrieren Sie sich um kommentieren zu können.