Konfiguracja klienta LDAP w systemie Linux

Do skonfigurowania klienta LDAP w systemie Linux najprościej jest użyć jakiegoś narzędzia dostarczanego z danym systemem. W SuSE jest to yast (yast2), w rodzinie RedHat (CentOS) jakiś authconfig (authconfig-tui). To powinno doinstalować potrzebne pakiety jak: nss-pam-ldapd, nscd, pam_ldap, ldapclient itp. Niestety nie pamiętam dokładnie listy pakietów dla poszczególnych dystrybucji ponieważ konfigurowałem to na SuSE, RHEL oraz CentOS.
Nie sposób opisać tu konfiguracji każdej z dystrybucji Linuxa, najlepiej więc skorzystać z dokumentacji danej dystrybucji, tak jak ja to zrobiłem. Od siebie, chciałbym dodać listę plików, które należy przejrzeć lub wyedytować w razie gdyby automagiczne konfiguratory zawiodły, bo obecnie już coraz trudniej o dokumentację dla prawdziwych Adminów operujących z konsoli bezpośrednio na plikach.

RedHat/CentOS: /etc/nslcd.conf (przykładowa konfiguracja)

uri ldap://ldapsrvp01/ ldap://ldapsrvp02/
ldap_version 3
base dc=mycompany,dc=com
scope sub
base   group  ou=Groups,o=mycompany,dc=mycompany,dc=com
base   passwd ou=people,o=mycompany,dc=mycompany,dc=com
base   passwd ou=people,o=customer,dc=mycompany,dc=com
base   shadow ou=people,o=mycompany,dc=mycompany,dc=com
base   shadow ou=people,o=customer,dc=mycompany,dc=com
scope  group  onelevel
ssl start_tls
tls_reqcert demand
tls_cacertfile /etc/openldap/certs/cacert.pem
filter  passwd (objectClass=posixAccount)
filter  shadow (objectClass=shadowAccount)

Nie znalazłem również informacji jak skonfigurować bardziej zaawansowane filtry LDAP, które przeszukują więcej niż jedną gałąź, np.:

(&(objectClass=posixAccount)(|(ou=people,o=mycompany,dc=mycompany,dc=com)(ou=people,o=customer,dc=mycompany,dc=com)))

dlatego musiałem przetestować to sam i stwierdzić, że atrybuty (np. „base passwd”) mogą być zdefiniowane wielokrotnie (patrz powyżej).

SuSE: /etc/ldap.conf – konfiguracja klienta, podobnie jak /etc/nslcd.conf na RedHat/CentOS, ale tutaj filtry definiuje się bardziej w LDAPowej konwencji, np.:

base    dc=mycompany,dc=com
scope   sub

nss_schema      rfc2307bis
nss_map_attribute       uniqueMember member

uri     ldap://ldapsrvp01 ldap://ldapsrvp02
ldap_version    3
pam_filter      objectClass=posixAccount
nss_base_passwd ou=people,o=mycompany,dc=mycompany,dc=com?sub?|(memberof=cn=uxadmin,ou=groups,o=mycompany,dc=mycompany,dc=com)(memberof=cn=customer-test,ou=groups,o=mycompany,dc=mycompany,dc=com)
nss_base_shadow ou=people,o=mycompany,dc=mycompany,dc=com?sub?|(memberof=cn=uxadmin,ou=groups,o=mycompany,dc=mycompany,dc=com)(memberof=cn=customer-test,ou=groups,o=mycompany,dc=mycompany,dc=com)
nss_base_group  ou=Groups,o=mycompany,dc=mycompany,dc=com
nss_base_automount      ou=services,dc=mycompany,dc=com

tls_cacertfile  /etc/ssl/ldap-ca.pem
ssl     start_tls
tls_cacertdir   /etc/ssl

/etc/nscd.conf (tu zalecam wyłączyć cache dla passwd i group)

        enable-cache            passwd          no
...
        enable-cache            group           no

jest też parametr 'debug-level’ przydatny podczas rozwiązywania potencjalnych problemów

        debug-level             0

/etc/openldap/ldap.conf (czasem /etc/ldap/ldap.conf) – konfiguracja klienta LDAP – ogólna

BASE dc=mycompany,dc=com
URI ldap://ldapsrvp01 ldap://ldapsrvp02
#TLS_CACERT /etc/openldap/certs/cacert.pem
TLS_CACERT /etc/ssl/ldap-ca.pem
TLS_REQCERT demand

/etc/nsswitch.conf – konfiguracja repozytoriów użytkowników, grup, serwisów

passwd: compat
group:  files ldap

hosts:  files dns
networks:       files dns

services:       files ldap
protocols:      files
rpc:    files
ethers: files
netmasks:       files
netgroup:       files ldap
publickey:      files

bootparams:     files
automount:      files ldap
aliases:        files ldap
passwd_compat:  ldap

/etc/ssl/ldap-ca.pem lub /etc/openldap/certs/cacert.pem lub inna ścieżka do pliku z certyfikatem CA, którym podpisany jest certyfikat serwera LDAP. Bez tego może się nie udać konfiguracja połączenia szyfrowanego między klientem a serwerem LDAP. Jest to też zwykle jeden z pierwszych punktów na drodze rozwiązywania problemów: sprawdzić czy konfiguracja zadziała jeśli wyłączymy TLS/SSL – jeśli tak, trzeba zweryfikować certyfikaty – jeśli nie, to należy szukać dalej.

Możesz również polubić…

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.