Verständnisfrage zu LDAP/Kerberos SASL

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 12.12.2018 16:56:05

Ich hätte mal eine generelle Verständnisfrage zu dem Thema LDAP Server, MIT Kerberos Server und der Passwort Speicherung für SASL.

Ich installiere einen LDAP Server auf welchem ich meine Benutzer und Gruppen anlege.
Auf demselben Server installiere ich meinen Kerberos Server. Um mich an dem Kerberos Server authentifizieren zu können, benötige ich hier ebenfalls meine Benutzer.
Die LDAP und Kerberos Informationen sind alle in derselben DB gespeichert.

Das bedeutet ich habe einen LDAP Benutzer (Hans) mit einem Passwort (1234) und ich habe einen Kerberos Benutzer (Hans) mit einem Passwort (xyz).
Jetzt kann ich mich an meinem Client mit dem Benutzer (Hans) sowohl am LDAP Server (1234) als auch am Kerberos Server (xyz) authentifizieren.

Was wenn ich jedoch erreichen möchte, dass sich der Benutzer (Hans) mit einem Passwort an LDAP und Kerberos authentifiziert?
Somit müsste im LDAP und Kerberos Server dasselbe Passwort (1234) hinterlegt sein. Dieses ist jedoch nicht bekannt, weil ein Benutzer sein Passwort ändern kann.
Eigentlich sollte es doch ausreichend sein, wenn das Passwort nur einmal vorhanden ist, und die beiden Benutzer (LDAP/Kerberos) miteinander verknüpft sind.

Hier habe ich jedoch die Konfiguration nicht ganz verstanden.
Wie werden die beiden Benutzer LDAP/Kerberos miteinander verknüpft? Oder habe ich hier einen Denkfehler?

Wäre schön wenn mir hier mal jemand Licht ins dunkle bringen könnte.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 12.12.2018 18:34:10

joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Das bedeutet ich habe einen LDAP Benutzer (Hans) mit einem Passwort (1234) und ich habe einen Kerberos Benutzer (Hans) mit einem Passwort (xyz).
Und schon ist dein Setup doppelt und im eigentlichen Sinne falsch ... der LDAP Benutzer "Hans" besitzt kein Kennwort, sondern den Verweis auf die Kerberos-Identität Hans, welche wiederrum das Passwort xyz besitzt.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Jetzt kann ich mich an meinem Client mit dem Benutzer (Hans) sowohl am LDAP Server (1234) als auch am Kerberos Server (xyz) authentifizieren.
Korrekt, zwei unterschiedliche Dienste, zwei unterschiedliche Kennwörter.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Was wenn ich jedoch erreichen möchte, dass sich der Benutzer (Hans) mit einem Passwort an LDAP und Kerberos authentifiziert?
Deine Ausdrucksweise ist ein wenig unscharf, aber wie ich oben schon erwähnt habe, dein LDAP Server enthält in den LDAP Benutzer Objekten keinerlei Passwörter, sondern nur den Verweis auf die Kerberos Identitäten.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Somit müsste im LDAP und Kerberos Server dasselbe Passwort (1234) hinterlegt sein. Dieses ist jedoch nicht bekannt, weil ein Benutzer sein Passwort ändern kann.
In diesem Falle hast du zwei "getrennte Dienste", die rein zufällig das gleiche Passwort für einen Benutzer haben.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Eigentlich sollte es doch ausreichend sein, wenn das Passwort nur einmal vorhanden ist, und die beiden Benutzer (LDAP/Kerberos) miteinander verknüpft sind.
Korrekt
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Hier habe ich jedoch die Konfiguration nicht ganz verstanden.
Wie werden die beiden Benutzer LDAP/Kerberos miteinander verknüpft? Oder habe ich hier einen Denkfehler?
Schau mal was Tante Google mir dazu anbietet:
* https://wiki.ubuntuusers.de/Kerberos/LDAP/
* https://wiki.debian.org/LDAP/Kerberos
* http://www.rjsystems.nl/en/2100-d6-kerb ... ovider.php
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.12.2018 16:56:05
Wäre schön wenn mir hier mal jemand Licht ins dunkle bringen könnte.
Hell genug?

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 13.12.2018 09:50:21

Danke schon mal für die Info. Deinen ersten Link hatte ich bereits auch schon versucht einzurichten. Jedoch hat das ganze nicht funktioniert. Wahrscheinlich mache ich hier etwas falsch.

Hier gibt es wohl zwei Möglichkeiten:
SASL - Kerberos als Passwordspeicher
oder
LDAP als KDC

Ich habe mich für den zweiten Weg (LDAP als KDC) entschieden.
Jedoch habe ich in beiden Benutzern (LDAP/Kerberos) ein Passwort?

Wie teile ich in diesem Fall dem Kerberos Server mit, dass die Passwort Informationen im LDAP Benutzer stehen?

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 13.12.2018 11:33:30

Naja nicht so ganz.
* LDAP ist dein Verzeichnisdienst und enthält (u.a.):
** Benutzer Objekte
** Gruppen Objekte
** Objekte für die Speicherung von Kerberos Daten (KDE)

Damit LDAP die Benutzer anhand ihres Kerberos Passwortes authentifiziert musst du GSS-API/SASL im LDAP Server aktivieren und in SASL wiederrum auf deinen Kerberos Server verweisen, der um die Quadratur des Kreises zu schließen, seine KDC Daten aus dem LDAP ausliest.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 13.12.2018 11:42:23

Das bedeutet, wenn ich LDAP als KDC eingerichtet habe, muss ich lediglich libsasl2-modules-gssapi-mit installieren.

Code: Alles auswählen

sudo apt-get install libsasl2-modules-gssapi-mit 
Die Datei /etc/default/slapd anpassen.

Code: Alles auswählen

export KRB5_KTNAME=/etc/ldap/ldap.keytab
und mein LDAP anpassen (ldapmodify)

Code: Alles auswählen

changetype: modify
add: olcSaslHost
olcSaslHost: sasl.server.realm ######### (LDAPserver.domain.com)

dn: cn=config
add: olcSaslRealm
olcSaslRealm: REALM ######### (DOMAIN.COM)

# Das hier nur einkommentieren, wenn ein User existiert, der cn=config bearbeiten darf. Sonst sperrt man sich aus!
#dn: cn=config
#add: olcSaslSecProps
#olcSaslSecProps: noplain,noactive,noanonymous,minssf=56

#Usermapping setzten
#Kerberos -> LDAP Object
#username -> username.users.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {0}"uid=([^/]*),cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=example,dc=com" 
######### (olcAuthzRegexp: {0}"uid=([^/]*),cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com")

#username@realm -> username.users.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {1}"uid=([^/]*),cn=realm,cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com" 
######### (olcAuthzRegexp: {1}"uid=([^/]*),cn=realm,cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com") oder muss hier auch das cn=realm ausgetauscht werden? cn=domain.com


#host/hostname.realm@realm -> hostname.hosts.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {2}"uid=host/([^/]*).realm,cn=realm,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=example,dc=com" 
######### (olcAuthzRegexp: {2}"uid=host/([^/]*).realm,cn=realm,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=domain,dc=com") oder muss hier auch das .realm und cn=realm ausgetauscht werden? .domain.com / cn=domain.com
Zuletzt geändert von joe2017 am 13.12.2018 12:21:58, insgesamt 2-mal geändert.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 13.12.2018 11:49:54

Das Thema ist zu komplex um anhand eines Happens eine fundierte Antwort geben zu können.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
13.12.2018 11:42:23

Code: Alles auswählen

#username@realm -> username.users.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {1}"uid=([^/]*),cn=realm,cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com" 
(olcAuthzRegexp: {1}"uid=([^/]*),cn=realm,cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com") oder muss hier auch das cn=realm ausgetauscht werden? cn=domain.com
joe2017 hat geschrieben: ↑ zum Beitrag ↑
13.12.2018 11:42:23

Code: Alles auswählen

#host/hostname.realm@realm -> hostname.hosts.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {2}"uid=host/([^/]*).realm,cn=realm,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=example,dc=com" 
(olcAuthzRegexp: {2}"uid=host/([^/]*).realm,cn=realm,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=domain,dc=com") oder muss hier auch das .realm und cn=realm ausgetauscht werden? .domain.com / cn=domain.com
Dazu müsstest du mal deine LDAP-Baumstruktur offen legen.

Und bitte gib dir beim Posten etwas mehr Formatierungsmühe, deine Fragen habe ich erst nach dem dritten Lesen des Code-Blocks überhaupt wahrgenommen.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 13.12.2018 12:20:57

Ich hatte versucht meine Inhalte im Code Fett anzeigen zu lassen, aber das geht leider nicht. Ich versuche das nächste mal solche Dinge besser darzustellen.

Ich bin immer noch etwas verwirrt was die Konfiguration angeht. Vielleicht könntest du mir Stichpunktartig noch einmal weiterhelfen. Ich versuche meine Installation darzustellen.

Ich Installiere alles auf einem einzigen Server welchen ich später Repliziere. Das lasse ich jetzt aber erst einmal weg.

LDAP als KDC
  • LDAP Installation (slapd ldap-utils)
  • Kerberos Installation (krb5-kdc krb5-admin-server krb5-kdc-ldap)
  • Das Kerberos Schema importieren
  • Die Konfig Dateien für LDAP und Kerberos lasse ich hier erst einmal weg. Das sprengt etwas den Rahmen. Gerne liefere ich diese nach.
  • OU´s, Benutzer und Gruppen im LDAP anlegen
  • Meine LDAP Benutzer haben derzeit noch ein Kennwort hinterlegt
  • Principals im KDC anlegen (hier habe ich bislang nur meine Benutzer und alle nfs/ Einträge)
  • Meine KDC Benutzer haben derzeit ebenfalls ein Kennwort hinterlegt
Wenn ich das richtig verstanden habe, muss ich jetzt noch folgendes installieren und konfigurieren
  • GSS-API/SASL installieren (libsasl2-modules-gssapi-mit)
  • Principal ldap/LDAPserver.realm anlegen
  • Principal exportiern in die keytab
  • slapd muss die keytab nutzen
  • ldap muss SASL verwenden (hierzu ldapmodify)
  • meine LDAP Benutzer bekommen ein neues Passwort zugewiesen ({SASL}user@REALM)
Hab ich das richtig verstanden?

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 13.12.2018 15:00:19

joe2017 hat geschrieben: ↑ zum Beitrag ↑
13.12.2018 12:20:57

Wenn ich das richtig verstanden habe, muss ich jetzt noch folgendes installieren und konfigurieren
  • GSS-API/SASL installieren (libsasl2-modules-gssapi-mit)
  • ldap muss SASL verwenden (hierzu ldapmodify)
  • meine LDAP Benutzer bekommen ein neues Passwort zugewiesen ({SASL}user@REALM)
Hab ich das richtig verstanden?
Wenn du saslauthd verwenden willst, dann ja - ansonsten erklärst du dem LDAP das er direkt mit der GSSAPI spricht:
in /etc/default/slapd

Code: Alles auswählen

SASL_MECH=GSSAPI
In diesem Falle kannst du das Attribut "userPassword" auf einen ungültigen Wert setzen und führst ein Mapping ein, wie du es hier schon angegeben hast:
joe2017 hat geschrieben: ↑ zum Beitrag ↑
13.12.2018 11:42:23

Code: Alles auswählen

#username@realm -> username.users.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {1}"uid=([^/]*),cn=realm,cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com" 
(olcAuthzRegexp: {1}"uid=([^/]*),cn=realm,cn=GSSAPI,cn=auth" "uid=$1,ou=users,dc=domain,dc=com") oder muss hier auch das cn=realm ausgetauscht werden? cn=domain.com
joe2017 hat geschrieben: ↑ zum Beitrag ↑
13.12.2018 11:42:23

Code: Alles auswählen

#host/hostname.realm@realm -> hostname.hosts.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {2}"uid=host/([^/]*).realm,cn=realm,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=example,dc=com" 
(olcAuthzRegexp: {2}"uid=host/([^/]*).realm,cn=realm,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=domain,dc=com") oder muss hier auch das .realm und cn=realm ausgetauscht werden? .domain.com / cn=domain.com

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 13.12.2018 16:05:00

Ich habe hierzu noch mal einen interessanten Link gefunden: https://bobcares.com/blog/kerberos-and- ... -together/

Vielleicht könntest du hier einmal kurz drüber schauen. Ich denke das ist genau das was ich suche.
Ich habe das mit einem Test Server und Client getestet. Ich habe jetzt lediglich eien Anmeldung am Client und kann noch nicht sagen ob die nachvolgenden Services (LDAP/Kerberos) korrekt funktionieren.

Ich kann auf die LDAP Gruppen und Benutzer zugreifen und habe ein Kerberos Ticket.

Die Seite ist jedoch etwas älter, denn die Installation (ldap-auth-client) gibt es unter Debian 9.6.0 nicht mehr.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 13.12.2018 16:31:21

joe2017 hat geschrieben: ↑ zum Beitrag ↑
13.12.2018 16:05:00
Ich habe hierzu noch mal einen interessanten Link gefunden: https://bobcares.com/blog/kerberos-and- ... -together/
Also das ist die Variante ohne "saslauthd", die ich dir schon zuvor geschildert hatte.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 11:42:26

Also ich habe folgende Anpassungen durchgeführt.

LDAP/Kerberos Server
  • sudo apt install libsasl2-modules-gssapi-mit
  • addprinc -randkey ldap/server.domain.com
  • ktadd -k /etc/ldap/ldap.keytab ldap/server.domain.com
  • sudo nano /etc/default/slapd

    Code: Alles auswählen

    export KRB5_KTNAME=/etc/ldap/ldap.keytab
  • Code: Alles auswählen

    sudo ldapmodify -Q -Y EXTERNAL -H ldapi:///
    dn: cn=config
    add: olcAuthzRegexp
    olcAuthzRegexp: uid=(.*),cn=domain.com,cn=gssapi,cn=auth  uid=$1,ou=Users,dc=domain,dc=com
    
    dn: cn=config
    add: olcSaslHost
    olcSaslHost: mas-a-str00001a.domain.com
    
    dn: cn=config
    add: olcSaslRealm
    olcSaslRealm: DOMAIN.COM
  • sudo nano /etc/ldap/ldap.conf

    Code: Alles auswählen

    BASE dc=domain,dc=com
    URI ldap://server.domain.com
    SASL_MECH GSSAPI
  • In den LDAP Benutzern dass Passwort gelöscht

Client
  • bereits an LDAP und Kerberos angebunden
  • sudo apt install libsasl2-modules-gssapi-mit
  • sudo nano /etc/ldap/ldap.conf

    Code: Alles auswählen

    BASE dc=domain,dc=com
    URI ldap://server.domain.com
    SASL_MECH GSSAPI

Apache Server
  • bereits an LDAP und Kerberos angebunden
  • sudo apt install libsasl2-modules-gssapi-mit
  • sudo nano /etc/ldap/ldap.conf

    Code: Alles auswählen

    BASE dc=domain,dc=com
    URI ldap://server.domain.com
    SASL_MECH GSSAPI
An meinem Client kann ich mich anmelden. Die Kerberos Verbindung steht.
Wenn ich nun versuche auf meien Apache WebDav Webseite zuzugreifen passiert folgendes.

Apache Config 1

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Kerberos
  KrbAuthRealms DOMAIN.COM
  KrbServiceName HTTP/apache.domain.com
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  Krb5Keytab /etc/krb5.keytab
</Directory>
Mein Client kann auf die Webseite zugreifen.
Jetzt möchte ich jedoch den Zugriff auf die Webseite mit LDAP Gruppen einschränken.

Apache Config 2

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Basic
  AuthBasicProvider ldap
  AuthLDAPURL ldaps://server.domain.com/dc=domain,dc=com?uid?sub?(objectClass=*)
  AuthLDAPGroupAttribute memberUid
  AuthLDAPGroupAttributeIsDN off
  <RequireAll>
    Require ldap-group cn=web_dav,ou=Groups,dc=domain,dc=com
    Require valid-user
  </RequireAll>
</Directory>
Mein Client wird nach einer Anmeldung gefragt. Somit befürchte ich, dass die GSSAPI Konfig noch nicht so ganz funktioniert.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 14.12.2018 11:47:55

Ich frag mal ganz zwischendurch:
* Funktioniert Kerberos auf deinem LDAP Server nun?

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 11:58:44

Was meinst du damit? Ich gehe doch davon aus, wenn sich mein Client anmelden kann, dass der Service funktioniert.

Ich habe derzeit nur einen Server auf welchem LDAP und Kerberos installiert ist.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 14.12.2018 12:01:58

joe2017 hat geschrieben: ↑ zum Beitrag ↑
14.12.2018 11:58:44
Was meinst du damit?
Kannst du dir ein Kerberos-Ticket anfordern?

Code: Alles auswählen

kinit
wird dieses Ticket mit

Code: Alles auswählen

klist
angezeigt. Wenn du ein "Nicht-Admin"-Kerberos Ticket hast, greifen dann deine Zugriffsbeschränkungen auf deinen LDAP-Tree?

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 12:05:27

Also kinit und klist funktioniert.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 12:24:04

Was auch noch interessant ist...

Wenn ich an meinem Client im Thunderbird ein LDAP Adressbuch hinzufüge, bekomme ich die Kontakte angezeigt solange die Login Methode unterder Registerkarte Advanced auf SIMPLE eingestellt ist.
Unter KLIST steht auch nur folgender ServicePrinzipal krbtgt/DOMAIN.COM@DOMAIN.com

Änder ich diese Einstellung auf Kerberos (GSSAPI) bekomme ich die Kontakte nicht mehr angezeigt.
Jetzt erscheint unter KLIST auch der Eintrag ldap/server.domain.com@DOMAIN.COM.

Nachdem mein LDAP Benutzer kein Kennwort mehr hinterlegt hat, und ich somit mit dem Kerberos Kennwort angemeldet bin, sollte die GSSAPI eigentlich greifen. Sonst könnte ich doch nicht auf die LDAP Kontakte (Adressbuch) zugreifen. Richtig? Weshalb funktioniert die GSSAPI Einstellung für das Adressbuch nicht?

Ich weiß, das sind gerade alles ziemlich viele Beispiele und Themen. Ich versuche das ganze gerade nur von allen Seiten zu Testen um den Hintergrund zu verstehen.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 13:10:41

Ich habe jetzt noch folgendes herausgefunden.

ldapwhoami

Code: Alles auswählen

SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Other (e.g., implementation specific) error (80)
	additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Permission denied)
:facepalm:
Ich habe folgendes ausgeführt:

Code: Alles auswählen

sudo chown openldap /etc/ldap/ldap.keytab 
Und schon funktioniert
  • ldapwhoami
  • und ebenfalls mein Thunderbird Adressbuch mit [Kerberos (GSSAPI)]
Wenn LDAP natürlich kein Recht auf die keytab hat kann das nicht funktionieren! :facepalm:
Jetzt werde ich noch den Apache testen und eine Rückmeldung geben.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 15:34:42

Mein Apache funktioniert noch nicht ganz so wie ich das möchte.

Evtl. habe ich auch falsche Parameter in der Site Config.

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Basic
  AuthBasicProvider ldap
  AuthLDAPURL ldaps://server.domain.com/dc=domain,dc=com?uid?sub?(objectClass=*)
  AuthLDAPGroupAttribute memberUid
  AuthLDAPGroupAttributeIsDN off
  <RequireAll>
    Require ldap-group cn=web_dav,ou=Groups,dc=domain,dc=com
    Require valid-user
  </RequireAll>
</Directory>
Theoretisch müsste mein Apache jetzt nur LDAP Benutzer meiner Gruppe "web_dav" zulassen. Das funktioniert wahrscheinlich auch korrekt.

Wenn ich am Client die Webseite aufrufe werde ich jedoch aufgefordert Benutzer und Passwort einzugeben. Ich denke mal das der Apache einen LDAP Benutzer erwartet. Mein Client sich jedoch mit einem Kerberos Benutzer anmeldet. Jetzt müsste mein Apache wissen, dass der Kerberos Benutzer mit dem LDAP Benutzer gleichzusetzen ist. Irgendwo hängt das noch...

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 14.12.2018 15:37:33

Wenn du Kerberos als Single Sign on verwenden willst, dann musst du Apache auch entsprechend konfigurieren.

http://www.microhowto.info/howto/config ... ation.html

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 15:57:13

Wenn ich meine Apache Webseite für Kerberos konfiguriere funktioniert das ja auch.

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Kerberos
  KrbAuthRealms DOMAIN.COM
  KrbServiceName HTTP/apache.domain.com
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  Krb5Keytab /etc/krb5.keytab
</Directory>
Jedoch möchte ich nur einer bestimmten LDAP Gruppe die Berechtigungen für die Seite geben.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 14.12.2018 16:00:01


Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 14.12.2018 16:21:32

Doch natürlich verwende ich die Tante Google! :D

Jedoch habe ich alle mir bekannten Möglichkeiten durch. Und sobald ich require ldap-group verwende, werde ich am Client nach den Anmeldeinformationen gefragt. Ich befürchte, dass am Apache noch etwas fehlt.

Nachdem der Apache am LDAP/Kerberos angebunden ist habe ich folgendes auf diesem Server durchgeführt:
  • sudo apt install libsasl2-modules-gssapi-mit
  • sudo nano /etc/ldap/ldap.conf

    Code: Alles auswählen

    BASE dc=domain,dc=com
    URI ldap://server.domain.com
    SASL_MECH GSSAPI
  • sudo apt install libapache2-mod-auth-kerb
  • addprinc -randkey HTTP/apacheserver.domain.com
  • ktadd HTTP/apacheserver.domain.com
  • sudo chown www-data /etc/krb5.keytab
  • sudo a2enmod auth_kerb
Hierbei erhalte ich auch eine Fehlermeldung.
kinit -k -t /etc/krb5.keytab HTTP/apacheserver.domain.com

Code: Alles auswählen

kinit: Pre-authentication failed: Keine Berechtigung bei Anfängliche Anmeldedaten werden geholt.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 16.12.2018 16:14:01

joe2017 hat geschrieben: ↑ zum Beitrag ↑
14.12.2018 16:21:32

Code: Alles auswählen

kinit: Pre-authentication failed: Keine Berechtigung bei Anfängliche Anmeldedaten werden geholt.
Sieht mir danach aus, als fehlt der Maschine-Account für den Server.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 17.12.2018 09:07:17

Schönen guten Morgen.

mit Maschinen account meinst du sicherlich den princ host/server.domain.com oder?
Wie wird dieser anschließend abgefragt? Oder verwendet mein Server diesen automatisch wenn ein Kerberos Eintrag für host/... vorhanden ist?

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 17.12.2018 09:11:32

joe2017 hat geschrieben: ↑ zum Beitrag ↑
17.12.2018 09:07:17
Schönen guten Morgen.

mit Maschinen account meinst du sicherlich den princ host/server.domain.com oder?
Richtig
joe2017 hat geschrieben: ↑ zum Beitrag ↑
17.12.2018 09:07:17
Wie wird dieser anschließend abgefragt?
Nein!
joe2017 hat geschrieben: ↑ zum Beitrag ↑
17.12.2018 09:07:17
Oder verwendet mein Server diesen automatisch wenn ein Kerberos Eintrag für host/... vorhanden ist?
Falsch herum ... Erst einmal muss sich der Client (in deinem Falle der Hosting-Server) selbst authentifizieren, bevor Dienste dieser Maschine sich anmelden und ein Ticket erhalten, bevor der TGT ein "Okay" oder "Fail" an deinen Apache zurückgibt.

Antworten