
Tengo un servidor ldap abierto:
IP: 192.168.0.70 (dell)
DIT:
(visto a través de ldapphpadmin)
Y para patricia duchesne:
dn cn=patricia duchesne,ou=users,dc=memorandum,dc=pro
cn patricia duchesne
gidnumber 501
givenname patricia
homedirectory /home/users/pduchesne
loginshell /bin/bash
objectclass inetOrgPerson | posixAccount | top
sn duchesne
uid pduchesne
uidnumber 1000
userpassword {MD5}eFI0F0...
Entonces tengo un cliente LDAP:
IP: 192.168.0.60 (libras)
NSSWitch está configurado:
$cat /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
también lo es ldap-auth:
$ cat /etc/auth-client-config/profile.d/ldap-auth-config
[lac_ldap]
nss_passwd=passwd: files ldap
nss_group=group: files ldap
nss_shadow=shadow: files ldap
nss_netgroup=netgroup: nis
y libnss:
$ cat /etc/libnss-ldap.conf
uri ldap://192.168.0.70
base dc=memorandum,dc=pro
Puedo acceder a la información del usuario de ldap:
$ getent passwd | tail -n 1
pduchesne:*:1000:501:patricia duchesne:/home/users/pduchesne:/bin/bash
Pero no puedo conectarme:
Desde IP: 192.168.0.80
$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied (publickey,password).
Qué me estoy perdiendo ?
Miré cientos de páginas web sin encontrar una manera de configurar todo eso :( https://help.ubuntu.com/community/LDAPClientAuthentication https://askubuntu.com/questions/127389/how-to-configure-ubuntu-as-an-ldap-client https://www.digitalocean.com/community/tutorials/how-to-authenticate-client-computers-using-ldap-on-an-ubuntu-12-04-vps
Encontrar esta página:https://www.vincentliefooghe.net/content/openldap-gestion-des-logs Me di cuenta de que no sé dónde están los registros ldap :-(
EDITAR
Siguiente :https://help.ubuntu.com/community/LDAPClientAuthentication
Configuración de PAM en 192.168.0.60:
$ cat /usr/share/pam-configs/my_mkhomedir
Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Actualizar :
$ sudo pam-auth-update
[sudo] password for romain:
LDAP Password:
El archivo
$ cat /etc/security/group.conf
está completamente comentado
No usé nscd:
$ /etc/init.d/nscd stop
[....] Stopping nscd (via systemctl): nscd.service==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to stop 'nscd.service'.
Authenticating as: romain,,, (romain)
Password:
LDAP Password:
==== AUTHENTICATION COMPLETE ===
. ok
No utilicé el párrafo [Autorización de acceso al host LDAP]. Debería ?
EDITAR 2
Ssh detallado:
romain@Mac:~$ ssh -v pduchesne@pb
OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 102: Applying options for *
debug1: Connecting to pb [192.168.0.60] port 22.
debug1: Connection established.
debug1: identity file /Users/romain/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/romain/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to pb:22 as 'pduchesne'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:OIiYKNK9FOdhlu2sVahXFoXYCjxmxTQ7NrZtA75Vwps
debug1: Host 'pb' is known and matches the ECDSA host key.
debug1: Found key in /Users/romain/.ssh/known_hosts:18
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/romain/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /Users/romain/.ssh/id_dsa
debug1: Trying private key: /Users/romain/.ssh/id_ecdsa
debug1: Trying private key: /Users/romain/.ssh/id_ed25519
debug1: Next authentication method: password
pduchesne@pb's password:
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
pduchesne@pb's password:
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
pduchesne@pb's password:
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).
EDITAR 3
Agregar hash pwd del usuario en el servidor ldap (consulte el volcado del usuario al principio)
EDITAR 4
Siguiendo la propuesta de @grawity instalé libpam-ldapd:
romain@pb$ sudo apt-get install libpam-ldapd
[sudo] password for romain:
LDAP Password:
The following packages were automatically installed and are no longer required:
auth-client-config ldap-auth-config
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
libpam-ldap
The following NEW packages will be installed:
libpam-ldapd
Do you want to continue? [Y/n] Y
(...)
Setting up libpam-ldapd:amd64 (0.9.6-3) ...
Luego configuré /etc/nslcd.conf
y noté que no estaba especificando con precisión usar ldap versión 3 (no sé qué versión es la predeterminada):
romain@pb$ sudo cat /etc/nslcd.conf | grep "^[^#]"
uid nslcd
gid nslcd
uri ldap://192.168.0.70
base dc=memorandum,dc=pro
ldap_version 3
tls_cacertfile /etc/ssl/certs/ca-certificates.crt
NSLCD reiniciado:
romain@pb$ sudo service nslcd restart
e intenté conectarme desde mi mac:
romain@Mac:~$ ssh pduchesne@pb
que funcionó... algo así:
romain@Mac:~$ ssh pduchesne@pb
pduchesne@pb's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-53-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
197 packages can be updated.
4 updates are security updates.
*** System restart required ***
Last login: Fri Jan 13 11:12:23 2017 from 192.168.0.80
romain@pb:~$ pwd
/home/users/pduchesne
romain@pb:~$ whoami
romain
Nueva pregunta (para la edición 4)
¿Por qué no cambio de usuario? Esperaba iniciar sesión en 'pb' como 'pduchesne' :-/
Pregunta anterior (antes de la edición 4)
No sé qué archivos comprobar; cualquier consejo es bienvenido.
Respuesta1
La configuración que se muestra en realidad no menciona nada que pueda usarse para la autenticación; es decir, no hay método para verificar la contraseña ingresada.
Su configuración de nsswitch 1shadow: ldap
sí lo tiene , pero su volcado del objeto de usuario en realidad no menciona ningún atributo "sombra", por lo que noesNo hay información que getent shadow
pueda recuperar. Aunque eso está bien porque exponer información oculta a través de LDAP no sería muy seguro de todos modos.
En su lugar, debe configurar pam_ldap
(libpam-ldapd), que intenta autenticarse (vincularse) con el servidor LDAP utilizando la contraseña proporcionada. Para esto, es necesario colocar el hash de contraseña en formato LDAP en el userPassword
atributo del usuario (que también falta en su volcado).
Sin embargo, tenga en cuenta que el libnss-ldap independiente (y libpam-ldap) tiene varias desventajas y es en su mayoría obsoleto: tendrá una configuración mucho más confiable con nslcd + libnss-ldapd+ libpam-ldapd en su lugar.
1 "Cambio de servicio de nombres", no "la bruja de NSS"