Spis treści
Przykłady konfiguracji usług do pracy z LDAP
Poniżej znajdują się przykładowe pliki konfiguracyjne niektórych usług podłączonych do LDAP omawianych na kursie.
Konfiguracja serwera OpenLDAP
-
Plik konfiguracyjny: slapd.conf
-
Konfiguracja saslauthd (pamiętaj o dopisaniu pwcheck_method: saslauthd do /etc/sasl/slapd.conf i opcji -a ldap do saslauthd):
- saslauthd.conf
-
ldap_servers: ldapi:// ldap_bind_dn: uid=saslauthd,ou=System,dc=example,dc=com ldap_password: haslo ldap_search_base: dc=example,dc=com ldap_mech: SIMPLE ldap_auth_method: bind
-
Konfiguracja narzędzi klienckich LDAP (ldapsearch, ldapvi itp) - /etc/ldap/ldap.conf:
- ldap.conf
-
BASE dc=example,dc=com URI ldapi:// TLS_CACERTDIR /etc/ssl/certs/ TLS_REQCERT never
Konfiguracja kont shellowych/systemowych w LDAP
-
Konfiguracja modułu pam_ldap i nss_ldap (może się nazywać również pam_ldap.conf, nss_ldap.conf - zależnie od dystrybucji):
- ldap.conf
-
uri ldapi:// binddn uid=nssproxy,ou=System,dc=example,dc=com bindpw secret rootbinddn uid=remoteroot,dc=System,dc=example,dc=com base dc=example,dc=com scope sub pam_password exop
-
Konfiguracja nslcd (może też się nazywać nss-ldapd.conf):
- nslcd.conf
-
uid nslcd gid nslcd uri ldapi:// base dc=example,dc=com ldap_version 3 binddn uid=nssproxy,ou=System,dc=example,dc=com bindpw secret scope sub
Konfiguracja poczty oparta o LDAP
Dovecot
- dovecot.conf
-
# (...) auth default { mechanisms = plain login passdb ldap { args = /etc/dovecot/dovecot-ldap.conf } # to pobieramy od razu przy sprawdzaniu hasła userdb prefetch { } # dla serwerów SMTP (Postfix/Exim) socket listen { client { path = /var/run/dovecot/auth-client group = sasl mode = 0660 } } } # (...)
W Dovecot 2.x konfiguracja jest podobna, tylko rozmieszczona w osobnych plikach, należy przejrzeć 10-auth.conf (includy na końcu), auth-ldap.conf.ext, 10-master.conf (zamiast "socket listen" będzie "unix_listener").
- dovecot-ldap.conf
-
uris = ldapi:// dn = uid=dovecot,ou=System,dc=example,dc=com dnpass = haslo auth_bind = yes ldap_version = 3 base = dc=example,dc=com scope = subtree pass_attrs = uid=user,userPassword=password,homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid
Postfix
- main.cf
-
# SASL - podłączenie do Dovecota smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = /var/run/dovecot/auth-client # Aliasy w LDAP alias_maps = ..., ldap:/etc/postfix/aliases-ldap.cf
Aliasy użytkownika trzymane w atrybucie mail (klasa inetOrgPerson).
- aliases-ldap.cf
-
server_host = ldapi:// bind = yes bind_dn = uid=postfix,ou=System,dc=example,dc=com bind_pw = haslo version = 3 search_base = dc=example,dc=com query_filter = (|(mail=%s@example.con)(mail=%s)) result_attribute = uid
Exim
- exim4.conf
-
# (...) hide ldap_default_servers = /var/run/ldapi # (...) begin routers # (...) # Aliasy - podobnie jak w Postfix user_aliases: driver = redirect allow_fail allow_defer data = ${lookup ldapm {ldapi:///dc=example,dc=com?uid?sub?(|(mail=${quote_ldap: $local_part})(mail=${quote_ldap: $local_part}@${quote_ldap_dn: $domain}))}} user = Debian-exim file_transport = address_file pipe_transport = address_pipe # (...) # Uwierzytelnianie - podłączenie do Dovecot begin authenticators PLAIN: driver = dovecot server_set_id = $auth1 server_socket = /var/run/dovecot/auth-client # done by dovecot server_advertise_condition = ${if def:tls_cipher } LOGIN: driver = dovecot server_set_id = $auth1 server_socket = /var/run/dovecot/auth-client # done by dovecot server_advertise_condition = ${if def:tls_cipher }
Samba
Konfiguracja PDC opartego o LDAP (część mniej istotnych opcji pominięta):
- smb.conf
-
[global] workgroup = EXAMPLE security = user encrypt passwords = yes obey pam restrictions = yes local master = yes os level = 33 domain master = yes preferred master = yes domain logons = yes passdb backend = ldapsam:"ldapi:// ldaps://ldap2.example.com" idmap backend = ldapsam:"ldapi:// ldaps://ldap2.example.com" ldap admin dn = uid=samba,ou=System,dc=example,dc=com ldap suffix = dc=example,dc=com ldap machine suffix = ou=Hosts ldap user suffix = ou=People ldap group suffix = ou=Group ldap idmap suffix = ou=Idmap ldap passwd sync = only ldap delete dn = yes ; ldapsam:trusted = yes ; ldapsam:editposix = yes ; add user script = /usr/sbin/smbldap-useradd '%u' delete user script = /usr/sbin/smbldap-userdel '%u' ; add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g' ; delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g' ; set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' ; add group script = /usr/sbin/smbldap-groupadd '%g' && /usr/sbin/smbldap-groupshow %g|awk '/^gidNumber:/ {print $2}' ; delete group script = /usr/sbin/smbldap-userdel '%g' add machine script = /usr/sbin/smbldap-useradd -W -d /dev/null -g Machines -c 'Machine Account' -s /bin/false '%u' # for renaming machines # rename user script = /usr/sbin/smbldap-usermod -r '%unew' '%uold'
Wybrane opcje z /etc/smbldap-tools/smbldap.conf
- smbldap.conf
-
slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="none" suffix="dc=example,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Machines,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s"