LDAP login Authenticatie: Difference between revisions
(One intermediate revision by the same user not shown) | |||
Line 58: | Line 58: | ||
== Hoe rol ik een nieuwe versie van het pakket uit == | == Hoe rol ik een nieuwe versie van het pakket uit == | ||
* Update de /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian/usr/share/doc/hobby-ldap-srvclient/changelog.gz (na het update weer gzippen gzip -9 changelog) | |||
* Update versie nr in /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian/DEBIAN/control | |||
* zorg dat je in de directory /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian staat | |||
* Genereer nieuwe md5sums van de bestanden met commando make-md5sums | |||
* zorg dat je in de directory /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient zit | |||
* draai het commando "maakdeb hobby-ldap-srvclient" dit maakt en controleert de DEB file, dit pakket geeft als het goed is geen meldingen . | |||
* draai mkpackes om de hobbynet repo te updaten en squid cache te flushen | |||
* Rol het pakket uit op 1 proef machine en indien OK, met upg_servers op scripting uitrollen op alle machines. | |||
=Installatie handmatig = | =Installatie handmatig = |
Latest revision as of 21:57, 7 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 hobbynet repo
Het pakket hobby-ldap-srvclient doet hetzelfde als in het handmatig recept beschreven staat echter met dien verstande dat als er een config aanpassing is, deze makkelijk uit gerold kan worden, en het overal uniform is. Daarnaast zet het pakket meteen een blokkade bestand voor upd_usr en upd_hobby_only waardoor er niet telkens een nieuw passwd,shadow of group bestand wordt gemaakt want dat zijn niet meer nodig.
De .tmpl bestanden (indien aanwezig) worden terug gezet dus we hebben dan nog alleen bestanden met users van de servers en hobbynet beheerders. Hierna worden de .tmpl bestanden verplaatst naar /etc/backupdir waar ze op termijn als alles goed werkt opgeruimd kunnen worden.
Installatie is makkelijk:
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
Config aanpassen van files in de repo
Alle deze handelingen doe je als root op backup2bit
Hoe ziet het pakket er uit
Het pakket bevindt zich in /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient
Alle bestanden vindt je terug in /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian/
Hier vindt je een tree zoals hij op machine wordt gezet. LET OP: 2 aandachtspunten.
De common-* en ns* bestanden staan de tmp map, dit is omdat deze van oorsprong worden geplaatst door andere pakketten bijvoorbeeld nslcd nscd, en dan gaat apt zeuren dat het pakket aan bestanden komt die niet van hem zijn.
Dan is er ook nog de directory DEBIAN, hier in staan alle config bestanden voor pakket zelf kort overzicht wat is wat:
- conffiles (hier in staan de configuratie bestanden van het packet zelf dus in dit geval /etc/ignoreupdusr /usr/share/pam-configs/ldap-hobbynet de andere niet omdat die officieel van ander pakket zijn)
- control dit is hoofd configuratie bestand met dependency's en naam van pakket en het versie nr
- prerm acties die uitgevoerd moeten worden voor het verwijderen van het pakket (bevat nu geen acties)
- postrm acties die uitgevoerd moeten worden na het verwijderen van het pakket (bevat nu geen acties)
- postinst dit script bevat actie die uitgevoerd worden na de plaatsing van de bestanden dus in dit geval het verplaatsen van de bestanden die we /tmp hebben gezet en goed zetten van de rechten van die bestanden. Tenslotte herstarten van de services nslcd en nscd (let op dit gaat niet zoals je gewend bent dus kijk goed!)
- md5sums bevat van alle bestanden de md5sum, dit wordt gegenereerd door het script md5sums niet met de hand aanpassen
Hoe rol ik een nieuwe versie van het pakket uit
- Update de /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian/usr/share/doc/hobby-ldap-srvclient/changelog.gz (na het update weer gzippen gzip -9 changelog)
- Update versie nr in /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian/DEBIAN/control
- zorg dat je in de directory /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient/debian staat
- Genereer nieuwe md5sums van de bestanden met commando make-md5sums
- zorg dat je in de directory /disk/site/hobbynet/www/repo/src/hobby-ldap-srvclient zit
- draai het commando "maakdeb hobby-ldap-srvclient" dit maakt en controleert de DEB file, dit pakket geeft als het goed is geen meldingen .
- draai mkpackes om de hobbynet repo te updaten en squid cache te flushen
- Rol het pakket uit op 1 proef machine en indien OK, met upg_servers op scripting uitrollen op alle machines.
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!