
Ich habe einen offenen LDAP-Server:
IP: 192.168.0.70 (Dell)
DIT:
(gesehen durch ldapphpadmin)
Und für 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...
Dann habe ich einen LDAP-Client:
IP: 192.168.0.60 (pb)
NSSSwitch ist konfiguriert:
$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
ebenso 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
und libnss:
$ cat /etc/libnss-ldap.conf
uri ldap://192.168.0.70
base dc=memorandum,dc=pro
Ich kann die LDAP-Benutzerinformationen erreichen:
$ getent passwd | tail -n 1
pduchesne:*:1000:501:patricia duchesne:/home/users/pduchesne:/bin/bash
Aber ich kann keine Verbindung herstellen:
Von 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).
Was vermisse ich ?
Ich habe mir Hunderte von Webseiten angesehen, ohne eine Möglichkeit zu finden, das alles einzurichten :( https://help.ubuntu.com/community/LDAPClientAuthentication https://askubuntu.com/questions/127389/wie-konfiguriert-man-ubuntu-als-ldap-client https://www.digitalocean.com/community/tutorials/how-to-authenticate-client-computers-using-ldap-on-an-ubuntu-12-04-vps
Diese Seite finden:https://www.vincentliefooghe.net/content/openldap-gestion-des-logs Mir ist aufgefallen, dass ich nicht weiß, wo die LDAP-Protokolle sind :-(
BEARBEITEN
Weiter:https://help.ubuntu.com/community/LDAPClientAuthentication
PAM-Konfiguration auf 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
Aktualisieren :
$ sudo pam-auth-update
[sudo] password for romain:
LDAP Password:
Die Datei
$ cat /etc/security/group.conf
ist vollständig kommentiert
Ich habe nscd nicht verwendet:
$ /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
Ich habe den Absatz [ LDAP Host Access Authorization ] nicht verwendet. Sollte ich das tun?
BEARBEITEN 2
Ausführliches ssh:
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).
BEARBEITEN 3
Hinzufügen eines Benutzer-Passwort-Hashes im LDAP-Server (siehe Benutzer-Dump am Anfang)
BEARBEITEN 4
Gemäß dem Vorschlag von @grawity habe ich libpam-ldapd installiert:
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) ...
Dann habe ich die Konfiguration durchgeführt /etc/nslcd.conf
, wobei mir aufgefallen ist, dass ich nicht genau angegeben habe, dass LDAP Version 3 verwendet werden soll (ich weiß nicht, welche Version standardmäßig verwendet wird?):
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 neu gestartet:
romain@pb$ sudo service nslcd restart
und habe versucht, von meinem Mac aus eine Verbindung herzustellen:
romain@Mac:~$ ssh pduchesne@pb
was funktioniert hat... irgendwie:
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
Neue Frage (für Edit 4)
Warum ändere ich den Benutzer nicht? Ich hatte erwartet, mich bei „pb“ als „pduchesne“ anzumelden :-/
Alte Frage (vor Bearbeitung 4)
Ich weiß nicht, welche Dateien ich überprüfen soll – jeder Rat ist willkommen.
Antwort1
In der von dir gezeigten Konfiguration ist eigentlich nichts erwähnt, was zur Authentifizierung verwendet werden könnte, also keine Methode zur Überprüfung des eingegebenen Passwortes.
Ihre nsswitch 1 -Konfiguration hat zwar shadow: ldap
, aber Ihr Dump des Benutzerobjekts erwähnt eigentlich keine "Schatten"-Attribute – es gibt alsoIstkeine Informationen, die getent shadow
abgerufen werden könnten. Obwohl das in Ordnung ist, da die Offenlegung von Schatteninformationen über LDAP ohnehin nicht sehr sicher wäre.
Stattdessen sollten Sie (libpam-ldapd) einrichten pam_ldap
, das versucht, sich mit dem angegebenen Passwort beim LDAP-Server zu authentifizieren (zu binden). Dazu ist es notwendig, den Passwort-Hash im LDAP-Format in das userPassword
Attribut des Benutzers einzutragen (was in Ihrem Dump ebenfalls fehlt).
Beachten Sie jedoch, dass das eigenständige libnss-ldap (und libpam-ldap) mehrere Nachteile hat und größtenteils veraltet ist – Sie erhalten eine viel zuverlässigere Konfiguration mit nslcd + libnss-ldapD+ libpam-ldapd stattdessen.
1 „Name Service Switch“, nicht „die Hexe von NSS“