IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SambasobreLDAP, LinuxAdministracioAvancada
Fitxers: Ldap2.pdf,AutenticacioiAutoritzacionsLinux.pdf
Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SambaSobreLDAP
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas, Lluís Pérez Vidal

Aquest paquet instal·la el mòdul de NSSwitch que permet substituir les bases de dades locals d'usuaris (fitxers shadow, groups, etc de la carpeta /etc) per una base de dades ldap amb objectes posixAccount.

Instal·lació

IMPORTANT: Per a les noves versions d'Ubuntu i Debian tenim el següent paquet: Ldap-auth-config que ens instal·la el libpam-ldap com el libnss-ldap a la vegada

$ sudo apt-get install libnss-ldap

A Ubuntu s'intal·len el següents fitxers:

$ dpkg -L libnss-ldap
/.
/usr
/usr/share
/usr/share/libnss-ldap
/usr/share/doc
/usr/share/doc/libnss-ldap
/usr/share/doc/libnss-ldap/NEWS.gz 
/usr/share/doc/libnss-ldap/AUTHORS
/usr/share/doc/libnss-ldap/README.Debian
/usr/share/doc/libnss-ldap/copyright
/usr/share/doc/libnss-ldap/changelog.gz
/usr/share/doc/libnss-ldap/examples
/usr/share/doc/libnss-ldap/examples/nsswitch.ldap 
/usr/share/doc/libnss-ldap/examples/groups.ldif
/usr/share/doc/libnss-ldap/examples/people.ldif
/usr/share/doc/libnss-ldap/examples/ldap.conf.gz
/usr/share/doc/libnss-ldap/buildinfo.gz
/usr/share/doc/libnss-ldap/README.gz
/usr/share/doc/libnss-ldap/changelog.Debian.gz
/usr/share/doc/libnss-ldap/LDAP-Permissions.txt.gz
/usr/share/man
/usr/share/man/man5
/usr/share/man/man5/nss_ldap.5.gz
/usr/lib
/lib
/lib/libnss_ldap-2.6.1.so
/usr/lib/libnss_ldap.so
/lib/libnss_ldap.so.2 

Cal tenir en compte que durant la instal·lació del paquet:

$ sudo apt-get install libnss-ldap
...
S'instal·laran els següents paquets extres:
 auth-client-config ldap-auth-client ldap-auth-config libpam-ldap

S'instal·len dependències. El paquet ldap-auth-config és el que te els fitxers de configuració:

$ dpkg -L ldap-auth-config | grep etc
/etc
/etc/auth-client-config
/etc/auth-client-config/profile.d
/etc/auth-client-config/profile.d/ldap-auth-config
/etc/ldap.conf

Les preguntes durant la instal·lació són:

  • Volem configurar Ldap? Si
  • IP servidor Ldap? ldaps://localhost o amb l'adreça IP ldaps://192.168.1.3
  • Versió de ldap: 3
  • Contrasenyes a Ldap: Sí
  • No login required
  • BINDDN: El nom de l'usuaris que té accés a la base de dades. Per exemple. cn=admin,dc=acacha,dc=dyndns,dc=org
  • Paraula de pas de BINDDN

Ldapauthconfig.png

Ldapauthconfig1.png

Ldapauthconfig2.png

Ldapauthconfig3.png

Ldapauthconfig4.png

Ldapauthconfig5.png

Ldapauthconfig6.png

Ldapauthconfig7.png

Passos a seguir després de la configuració

Després d'haver instal·lat libnss-ldap cal modificar el fitxer

/etc/nsswitch.conf 

Per quelcom similar a

$ cat /etc/nsswitch.conf 
...
passwd: files ldap
group: files ldap
shadow: files ldap
 ...

Amb Ubuntu es pot fer aquesta configuració executant:

$ sudo auth-client-config -a -p lac_ldap

I el fitxer queda:

$ cat /etc/nsswitch.conf 
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file. 

# pre_auth-client-config # passwd:         compat
passwd: files ldap
# pre_auth-client-config # group:          compat
group: files ldap
# pre_auth-client-config # shadow:         compat
shadow: files ldap

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

ldap-auth-config

A partir de certes versions d'Ubuntu aquest és el paquet que configura libnss-ldap (i també libpam-ldap):

$ dpkg -L ldap-auth-config
/.
/usr
/usr/share
/usr/share/ldap-auth-config
/usr/share/ldap-auth-config/ldap.conf
/usr/share/doc
/usr/share/doc/ldap-auth-config
/usr/share/doc/ldap-auth-config/copyright
/usr/share/doc/ldap-auth-config/changelog.gz
/etc
/etc/auth-client-config
/etc/auth-client-config/profile.d
/etc/auth-client-config/profile.d/ldap-auth-config
/etc/ldap.conf

Fitxer de configuració

El fitxer de configuració és:

/etc/libnss-ldap.conf

Hi ha una mica de confusió entre els fitxers de configuració de libnss-ldap i libpam-ldap. En alguns casos es parla d'ells indistintament (són molt similars).

IMPORTANT: A partir de certes versions d'Ubuntu el fitxer per a libnss-ldap i lipam-ldap són el mateix /etc/ldap.conf. Vegeu ldap-auth-config

auth-client-config

Aquest paquet (només Ubuntu) permet configurar l'autenticació de client:

Comandes:

$ dpkg -L auth-client-config | grep bin
/usr/sbin
/usr/sbin/auth-client-config

Fitxers de configuració:

$ dpkg -L auth-client-config | grep etc
$ /etc
$ /etc/auth-client-config
$ /etc/auth-client-config/profile.d
$ /etc/auth-client-config/profile.d/acc-default

Per utilitzar aquesta comanda hem d'executar:

$ sudo auth-client-config -a -p lac_ldap

Recursos:

ldap-auth-client

És un Dummy paquet o un metapaquet que té com a dependències:

$ sudo apt-cache show ldap-auth-client | grep depends
Depends: libpam-ldap, libnss-ldap

$ dpkg -L ldap-auth-client
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/ldap-auth-client
/usr/share/doc/ldap-auth-client/copyright
/usr/share/doc/ldap-auth-client/changelog.gz

Tunning

Màxim número d'intents de connexió al servidor Ldap

Per defecte libnss-ldap està configurat per fer un bind hard al servidor Ldap. Això vol dir que intentarà connectar-se al servidor quasi continuament tot i que aquest no estigui funcionant. Això pot provocar que una màquina no entri al sistema si el servidor Ldap cau.

Es pot modificar aquest comportament modificant el fitxer /etc/ldap.conf ( abans /etc/libnss-ldap.conf ):

$ sudo joe /etc/ldap.conf

Localitzeu la línia comentada:

#bind_policy hard

I la canvieu per:

bind_policy soft
nss_reconnect_tries 1
nss_reconnect_sleeptime 1
nss_reconnect_maxsleeptime 8
nss_reconnect_maxconntries 2

Per defecte soft intenta la connexió un cop i si falla ja no ho intenta més. A la configuració fem algun intent més en cas que el servidor Ldap estigui saturat.

Troubleshooting

Modificar bind_policy

Modificar al fitxer /etc/ldap.conf

bind_policy=hard

per

bind_policy=soft

Consulteu #Màxim número d'intents de connexió al servidor Ldap

udevd: nss_ldap: failed to bind to LDAP server

El problema és que no existeix el grup nvram. El fitxer:

/etc/udev/rules.d/40-permissions.rules

Utilitza aquest grup a l'arrancada del sistema:

...
KERNEL=="nvram", GROUP="nvram"
...

Quant udev s'inicia busca aquest grup i com que no el troba a /etc/group l'ha de buscar al servidor ldap.

Per fixar el problema es pot afegir en local el grup nvram

$ sudo addgroup nvram

L'altre opció (no elimina l'error però no penja el sistema durant l'arrancada) és utilitzar el paràmetre:

bind_policy=soft

Recursos:

Les consultes tornen un màxim de 500 registres. Es mostren màxim 500 usuaris

Si al fer:

$ sudo getn passwd | wc -l

Es mostren només los usuaris locals + 500 remots, aleshores:


Cal canviar el paràmetre del servidor sizelimit (o amb la nova configuració: olcsizelimit).. L'he canviat accedint amb l'usuauri cn=admi,cn=config al servidor i modificant el attribute sizelimit a

DN: olcDatabase={-1}frontend,cn=config

Vegeu també

Enllaços externs