LDAP login Authenticatie: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
Line 9: Line 9:


en vele anderen.
en vele anderen.
=Installatie via package auto hobbynet repo =
Het pakket hobby-ldap-srvclient doet het zelfde als in handmatig recept beschreven staat echter met die verstanden dat als er config aanpassing deze makkelijk uit gerold kan worden, en het overal uniform is.
Daarnaast zet het pakket meteen een blockade bestand voor upd_usr en upd_hobby_only waardoor er niet telkens een nieuw passwd,shadow of group file wordt gemaakt want dat is immers doel daar van af te kommen.
De tmpl bestanden worden terug gezet (dus we hebben dan nog alleen bestanden met users van de servers en hobbynet beheerders), hier na worden de tmpl bestanden verplaatst naar backupdir in etc waar ze op termijn als alles goed werkt opgeruimd kunnen worden.
=Installatie handmatig =
=Installatie handmatig =
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 is een eigen package gemaakt en is in de Hobbynet repo opgeslagen deze gebruiken aub ipv handmatig.
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 is een eigen package gemaakt en is in de Hobbynet repo opgeslagen deze gebruiken aub ipv handmatig.

Revision as of 12:49, 6 September 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 via package auto hobbynet repo

Het pakket hobby-ldap-srvclient doet het zelfde als in handmatig recept beschreven staat echter met die verstanden dat als er config aanpassing deze makkelijk uit gerold kan worden, en het overal uniform is. Daarnaast zet het pakket meteen een blockade bestand voor upd_usr en upd_hobby_only waardoor er niet telkens een nieuw passwd,shadow of group file wordt gemaakt want dat is immers doel daar van af te kommen. De tmpl bestanden worden terug gezet (dus we hebben dan nog alleen bestanden met users van de servers en hobbynet beheerders), hier na worden de tmpl bestanden verplaatst naar backupdir in etc waar ze op termijn als alles goed werkt opgeruimd kunnen worden.

Installatie handmatig

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 is een eigen package gemaakt en is in de Hobbynet repo opgeslagen deze gebruiken aub ipv handmatig.

#
# 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!