LDAP login Authenticatie: Difference between revisions
Line 104: | Line 104: | ||
</pre> | </pre> | ||
==Host-based authenticatie== | ==Host-based authenticatie== | ||
Door in het user record het attribute '''host''' op te nemen, kunnen een of meerder hosts gematcht worden met de lokale waarde van de hostname. Als ''' | Door in het user record het attribute '''host''' op te nemen, kunnen een of meerder hosts gematcht worden met de lokale waarde van de hostname. Als '''*''' wordt gebruikt geldt dat een wildcard en kan op elke server waar ldap authenticatie is geïnstalleerd, worden ingelogd. |
Revision as of 11:56, 24 January 2014
Inleiding
LDAP is in staat de userlogin op servers te faciliteren. Daarvoor is een ou=users en ou=group ingericht. Deze ou's bevatten alles dat normaal in /etc/passwd, /etc/shadow en /etc/group staat. Hier voor zijn aanpassingen in enkele bestanden nodig (nsswittch en in pam.d bestanden). Het is mogelijk host-based authenticatie te gebruiken; hiermee is de toegang tot slechts bepaalde servers in te stellen.
Referenties
Er zijn meerdere documenten te vinden die ldap authenticatie beschrijven:
en vele anderen.
Installatie
De verschillende documenten op internet zijn helaas niet altijd eenduidig. Met het volgende recept is snel een werkende situatie te maken. Er is geen afhankelijkheid van de server waarop geïnstalleerd wordt. De benodigde bestanden zijn op alls servers identiek. Van dit recept wordt een eigen package gemaakt en in de Hobbynet repo opgeslagen.
# # uitrol ldap login # alle files staan in local directory # # -rw-r--r-- 1 root root 554 Nov 4 14:44 README # -rw-r--r-- 1 root root 1349 Nov 4 14:32 common-account # -rw-r--r-- 1 root root 1296 Nov 4 14:32 common-auth # -rw-r--r-- 1 root root 1519 Nov 4 14:32 common-password # -rw-r--r-- 1 root root 1501 Nov 4 14:32 common-session # -rw-r--r-- 1 root root 1499 Nov 4 14:32 common-session-noninteractive # -rw-r--r-- 1 root root 674 Nov 4 14:24 ldap-hobbynet # -rw-r--r-- 1 root root 2528 Nov 4 14:25 nscd.conf # -rw-r----- 1 root root 1171 Nov 4 14:25 nslcd.conf # -rw-r--r-- 1 root root 653 Nov 4 14:25 nsswitch.conf # # nslcd.conf bevat password. Vandaar de afwijkende permissions. # apt-get install libnss-ldapd auth-client-config ldap-utils libpam-ldapd nscd nslcd # # wordt alleen voor initial config gebruik. Zorgt voor uid>=300 in plaats van uid>=1000 # cp ldap-hobbynet /usr/share/pam-configs # # 3 conf file waar niets aan gedaan hoeft te worden. nsswitch.conf, nscd.conf, nslcd.conf # cp ns* /etc # # 5 pam auth files aangepast voor ldap # cp common-* /etc/pam.d # # restart de connection daemon en de cache daemon # service nslcd restart service nscd restart # # done
Hiermee worden de benodigde packages geïnstalleerd. ldap-hobbynet is een kleine aanpassing van de originele ldap waardoor de minimum uid op 300 wordt gezet i.p.v de default waarde van 1000. Deze aanpassing is terug te vinden in de bestanden die naar /etc/pam.d worden gekopieerd. Bij handmatige configuratie van de scripts in /etc/pam.d met pam-auth-update, dient voor ldap-hobbynet (en unix) gekozen te worden. Bij package installatie worden de files met de configuratie wijzigingen worden naar de juiste locatie gekopieerd. Tenslotte worden de cache daemons herstart.
nslcd.conf
De meeste configuratie staat in /etc/nslcd.conf, zoals de ldap servers en de mapping van ou's. Ook de host-based authenticatie staat hierin.
# /etc/nslcd.conf # nslcd configuration file. See nslcd.conf(5) # for details. # The user and group nslcd should run as. uid nslcd gid nslcd # The location at which the LDAP server(s) should be reachable. #uri ldap://hcc-ldap-lb1-int.hobby.nl/ ldap://hcc-ldap-lb2-int.hobby.nl/ #uri ldap://ldap2-int.hobby.nl/ uri ldap://hcc-ldap-int.hobby.nl/ # The search base that will be used for all queries. base dc=hcc,dc=nl # Other base mappings base group ou=groups,dc=hcc,dc=nl base passwd ou=users,dc=hcc,dc=nl base shadow ou=users,dc=hcc,dc=nl # The LDAP protocol version to use. #ldap_version 3 # The DN to bind with for normal lookups. binddn cn=hobbynetlogin,ou=applicaties,dc=hcc,dc=nl bindpw xxxxxxxxxxxxxxxxxxxxxxxxxxxx # The DN used for password modifications by root. #rootpwmoddn cn=admin,dc=example,dc=com # SSL options #ssl off #ssl start_tls #tls_reqcert never #tls_cacertfile /etc/ssl/certs/cacert.org.pem #tls_cert /etc/ssl/private/server.crt #tls_key /etc/ssl/private/server.key # The search scope. #scope sub # The minimum uid nss_min_uid 300 pam_authz_search (&(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))
Host-based authenticatie
Door in het user record het attribute host op te nemen, kunnen een of meerder hosts gematcht worden met de lokale waarde van de hostname. Als * wordt gebruikt geldt dat een wildcard en kan op elke server waar ldap authenticatie is geïnstalleerd, worden ingelogd.