Veranlassen Sie nss_ldap, STARTTLS zu verwenden

1

Ich versuche, die LDAP-Authentifizierung mit STARTTLS einzurichten (ich habe gelesen, dass TLS / ldaps veraltet ist). BTW unverschlüsselte LDAP-Authentifizierung funktioniert, aber das ist nicht was ich will.

Mit diesem Tutorial konnte ich einen LDAP-Verzeichnisserver einrichten, beginnend mit einer neuen Installation von Ubuntu Server 16.10 (2 VirtualBox-Maschinen, eine für den Server, eine für den Client), und befolgte jeden Schritt, einschließlich des optionalen letzten Schritts, um nur TLS-Verbindungen zuzulassen.

Jetzt kann ich laufen ldapwhoamiund ldapsearchBefehle mit -ZArgument auf dem Server und dem Client. Es scheint also, dass LDAP-Verbindungen zum Server über STARTTLS funktionieren. Wenn ich versuche, eine Verbindung herzustellen, ohne dass -Zich den folgenden (erwarteten) Fehler erhalte:

Confidentiality required (13)
Additional information: TLS confidentiality required

Jetzt möchte ich den Server verwenden, um LDAP-Benutzer auf dem Client zu authentifizieren. Dazu habe ich auf dem Client folgende Befehle ausgeführt :

sudo apt-get install ldap-auth-client
# LDAP Server: ldap://ldap.example.com
# Base DN:     dc=example,dc=com
# Bind DN:     cn=admin,dc=example,dc=com

sudo auth-client-config -t nss -p lac_ldap

sudo vi /usr/share/pam-configs/mkhomedir
# changed "Default: no" to "Default: yes"
# changed "optional" to "required"

sudo pam-auth-update
# enabled "Create home directory on login"

Wenn ich nun den Benutzer auf dem Client ändern möchte, wird su - otheruserfolgende Fehlermeldung /var/log/auth.logan den Client angehängt :

nss_ldap: failed to bind to LDAP server ldap://ldap.example.com: Confidentiality required

Dies ist die gleiche Fehlermeldung wie beim Versuch, LDAP-Befehle ohne STARTTLS auszuführen (siehe oben). Das Problem ist also anscheinend nss_ldapnicht richtig für die Verwendung von STARTTLS konfiguriert.

Was ich versucht habe (ohne Erfolg), ist Einträge hinzuzufügen /etc/ldap/ldap.conf. Nun sieht es so aus:

BASE         dc=example,dc=com
URI          ldap://ldap.example.com
TLS_CACERT   /etc/ldap/ca_certs.pem
LDAP_VERSION 3
SSL          start_tls
TLS_REQCERT  allow
Bassjoe
quelle

Antworten:

1

Durchstöbern der Client-Konfiguration Ich habe /etc/ldap.confstattdessen versehentlich geöffnet /etc/ldap/ldap.confund war überrascht, dass beide existieren!

Die Datei /etc/ldap.confwird von debconf generiert, dh beim Aufruf von sudo apt-get install ldap-auth-clientoder sudo dpkg-reconfigure ldap-auth-config, und scheint die von nss_ldap verwendete zu sein. Es enthält viele kommentierte Optionen.

Da STARTTLS anscheinend nicht vom Debconf-Assistenten unterstützt wird, habe ich Folgendes geändert /etc/ldap.conf:

  • entfernte die erste Zeile ###DEBCONF###
  • kommentierte die Zeile ssl start_tls

Jetzt funktioniert die Authentifizierung auf dem Client endlich.

Bassjoe
quelle