Ich habe einen offenen LDAP-Server:

Ich habe einen offenen LDAP-Server:

Ich habe einen offenen LDAP-Server:

IP: 192.168.0.70 (Dell)

DIT:

Bildbeschreibung hier eingeben

(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:

Bildbeschreibung hier eingeben

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 shadowabgerufen 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 userPasswordAttribut 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“

verwandte Informationen