LDAP login Authenticatie: Difference between revisions
Line 12: | Line 12: | ||
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.<br> | 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.<br> | ||
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.<br> | 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.<br> | ||
De tmpl bestanden indien aanwezig 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. | De tmpl bestanden indien aanwezig 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.<br> | ||
Installatie is heel makkelijk namelijk: | |||
<pre> | |||
root@scp-lb1:~# apt-get install hobby-ldap-srvclient | |||
Reading package lists... Done | |||
Building dependency tree | |||
Reading state information... Done | |||
The following NEW packages will be installed: | |||
hobby-ldap-srvclient | |||
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. | |||
Need to get 5654 B of archives. | |||
After this operation, 0 B of additional disk space will be used. | |||
Fetched 5654 B in 0s (21.3 kB/s) | |||
Selecting previously unselected package hobby-ldap-srvclient. | |||
(Reading database ... 102650 files and directories currently installed.) | |||
Preparing to unpack .../hobby-ldap-srvclient_1.0.4_all.deb ... | |||
Unpacking hobby-ldap-srvclient (1.0.4) ... | |||
Setting up hobby-ldap-srvclient (1.0.4) ... | |||
bezig met plaatsen van nscd.conf nslcd.conf en nsswitch.conf in /etc/ | |||
Zet beveiliging van nslcd.conf naar 640 ivm pwd | |||
Zet beveiliging van nscd.conf en nsswitch naar 644 ivm pwd | |||
bezig met plaatsen van common-account common-auth common-password common-session common-session-noninteractive /etc/pam.d | |||
zet rechten van config files in /etc/pam.d/common-* op 644 | |||
zet rechten van config file /usr/share/pam-configs/ldap-hobbynet op 644 | |||
* Restarting Name Service Cache Daemon nscd [ OK ] | |||
* Restarting LDAP connection daemon nslcd [ OK ] | |||
Zet passwd temlate terug naar orgineel en verplaats de passwd template | |||
Zet group temlate terug naar orgineel en verplaats de group template | |||
Zet shadow temlate terug naar orgineel en verplaats de shadow template | |||
</pre> | |||
=Installatie handmatig = | =Installatie handmatig = |
Revision as of 12:58, 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 indien aanwezig 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 is heel makkelijk namelijk:
root@scp-lb1:~# apt-get install hobby-ldap-srvclient Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: hobby-ldap-srvclient 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 5654 B of archives. After this operation, 0 B of additional disk space will be used. Fetched 5654 B in 0s (21.3 kB/s) Selecting previously unselected package hobby-ldap-srvclient. (Reading database ... 102650 files and directories currently installed.) Preparing to unpack .../hobby-ldap-srvclient_1.0.4_all.deb ... Unpacking hobby-ldap-srvclient (1.0.4) ... Setting up hobby-ldap-srvclient (1.0.4) ... bezig met plaatsen van nscd.conf nslcd.conf en nsswitch.conf in /etc/ Zet beveiliging van nslcd.conf naar 640 ivm pwd Zet beveiliging van nscd.conf en nsswitch naar 644 ivm pwd bezig met plaatsen van common-account common-auth common-password common-session common-session-noninteractive /etc/pam.d zet rechten van config files in /etc/pam.d/common-* op 644 zet rechten van config file /usr/share/pam-configs/ldap-hobbynet op 644 * Restarting Name Service Cache Daemon nscd [ OK ] * Restarting LDAP connection daemon nslcd [ OK ] Zet passwd temlate terug naar orgineel en verplaats de passwd template Zet group temlate terug naar orgineel en verplaats de group template Zet shadow temlate terug naar orgineel en verplaats de shadow template
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!