This is an old revision of the document!
Objetivo: iniciar una sesion SSH con un usuario almacenado en un servidor LDAP (OpenLDAP en este caso) externo en lugar de en un archivo /etc/passwd local
Nota: la configuracion es 100% local, no hay que tocar el servidor LDAP
En este ejemplo:
* Servidor OpenLDAP v3
* El servidor requiere un usuario bind (no permite busquedas anonimas)
* Requiere TLS, pero el certificado esta autofirmado, por lo que el error debe ser ignorado por el cliente
* Detalle de los usuarios y grupos que usaremos en el ejemplo:
Usuarios
dn: ou=people,dc=example,dc=com objectclass: organizationalUnit ou: people dn: cn=user1,ou=people,dc=example,dc=com cn: user1 gidnumber: 500 givenname: Name homedirectory: /home/user1 loginshell: /bin/sh objectclass: inetOrgPerson objectclass: posixAccount objectclass: top sn: Surename uid: user1 uidnumber: 1001 userpassword: {MD5}MD5hashedpassword
Grupos
dn: ou=groups,dc=example,dc=com objectclass: organizationalUnit objectclass: top ou: groups dn: cn=user1,ou=groups,dc=example,dc=com cn: user1 gidnumber: 500 memberuid: user1 objectclass: posixGroup objectclass: top
1. Instalar paquetes:
sudo aptitude upda; sudo aptitude install libnss-ldapd
2. Pulsar “enter” en todas las preguntas, y si podemos elegir siempre “no”. Luego refinamos la configuracion
3. Detener el demonio que cachea los valores:
sudo /etc/init.d/nscd stop
4. Comprobar que el archivo:
less /etc/nsswitch.conf
Contiene la siguiente configuracion:
passwd: compat ldap group: compat ldap shadow: compat ldap hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
5. Editar:
sudo rm -fr /etc/nslcd.conf; sudo vim /etc/nslcd.conf
Y anyadir el siguiente contenido:
# /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 ldaps://ldap.local.jamgo.org:636 # The search base that will be used for all queries. base ou=people,dc=example,dc=com base ou=groups,dc=example,dc=com # The LDAP protocol version to use. ldap_version 3 # The DN to bind with for normal lookups. binddn cn=readonly,dc=example,dc=com bindpw secretpassword # SSL options tls_reqcert allow
5. Reiniciar el servicio:
sudo /etc/init.d/nslcd restart
6. Probamos:
ssh -l user1 servidor1.example.com