LDAP login Authenticatie: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:
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).
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.
Het is mogelijk host-based authenticatie te gebruiken; hiermee is de toegang tot slechts bepaalde servers in te stellen.
=LDAP authenticatie=
=Referenties=
==Referenties==
Er zijn meerdere documenten te vinden die ldap authenticatie beschrijven:
Er zijn meerdere documenten te vinden die ldap authenticatie beschrijven:
* [http://arthurdejong.org/nss-pam-ldapd/ De site van Arthur de Jong]
* [http://arthurdejong.org/nss-pam-ldapd/ De site van Arthur de Jong]
Line 10: Line 9:


en vele anderen.
en vele anderen.
==Installatie==
=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.
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.
<pre>
<pre>
Line 54: Line 53:
Bij package installatie worden de files met de configuratie wijzigingen worden naar de juiste locatie gekopieerd. Tenslotte worden de cache daemons herstart.
Bij package installatie worden de files met de configuratie wijzigingen worden naar de juiste locatie gekopieerd. Tenslotte worden de cache daemons herstart.


==nslcd.conf==
=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.
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.
<pre>
<pre>
Line 104: Line 103:
pam_authz_search (&(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))
pam_authz_search (&(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))
</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 '''*''' wordt gebruikt geldt dat een wildcard en kan op elke server waar ldap authenticatie is geïnstalleerd, worden ingelogd. OPMERKING: zonder '''host''' kan NIET worden ingelogd. Neem minstens één '''host''' regel op!
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. OPMERKING: zonder '''host''' kan NIET worden ingelogd. Neem minstens één '''host''' regel op!

Revision as of 12:02, 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. OPMERKING: zonder host kan NIET worden ingelogd. Neem minstens één host regel op!