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

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: 2335
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: 2335
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: 2335
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: 2335
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.

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:42:06

Also ich habe jetzt mit addprinc und ktadd meinen Host zu meinem Apache Server hinzugefügt. Das ist ja kein Problem.

Du meinst ich müsste mich jetzt mit dem host/server.domain.com an meinem Kerberos authentifizieren?

Code: Alles auswählen

kinit host/server.domain.com
Das kann ich aber nicht, da die princs ja mit einem -randkey eingerichtet werden.

Code: Alles auswählen

addprinc -randkey host/server.domain.com
Oder verstehe ich jetzt etwas falsch?

Ich beschäftige mich leider erst seit 1-2 Jahren mit Ubuntu/Debian und das ist für mich leider etwas neu.
Ich möchte niemand mit solchen Fragen belästigen und versuche deshalb auch immer etwas zurück zu geben. Ich habe in fast allen meinen gelösten Posts noch einmal zusammengefasst was ich durchgeführt habe um anderen weiterhelfen zu können. Das nur mal zwischendurch.

Das Thema LDAP Kerberos ist eigntlich nicht genz so kompliziert. Jedoch an manchen Stellen komme ich hier einfach nicht weiter. Ich hatte wohl einen falschen Ansatz.

Ich danke dir auf jeden Fall jetzt schon mal für deine Hilfe. :hail:

Benutzeravatar
bluestar
Beiträge: 2335
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:45:20

Du kannst au dem Apache Server aber mal ein kinit als Benutzer testen und schauen, ob das geht.

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:57:15

Das geht. Jedoch handelt es sich hierbei um einen Server und ich melde mich ja im normalfall nicht an diesem an.
Daher dachte ich richte ich die host/.... princs ein welche sich beim Server start automatisch mit Kerberos authentifizieren.

Wenn ich das jetzt verstanden habe, versucht sich aktuell mein Client am Apache mit Kerberos bzw. LDAP zu authentifizieren, jedoch ist meine Apache selbst nicht am Kerberos authentifiziert, wodurch er die Client anfrage nicht durchreichen kann. Das macht natürlich auch Sinn!

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 17:51:11

Also irgendwas scheint hier nicht zu passen. Wenn ich am Apache auf Kerberos stelle funktioniert alles.
Jedoch möchte ich die Seite auf eine einzige LDAP Gruppe beschränken. Damit scheint es noch Probleme zu geben.

Ich gehe mal davon aus, dass mein Apache die Zuordnung von meinem Client Kerberos Ticket zu dem LDAP User nicht kennt.

An meinem Apache kann ich mit getent group /getent passwd alle LDAP Gruppen abfragen.
Ich erhalte mit kinit auch ein Kerberos Ticket.
Und mein Client kann sich ja auch mit seinem Kerberos Ticket an der Webseite anmelden.
Andernfalls würde mit der Kerberos Konfiguration die Webseite nicht angezeigt werden.

Das einzige Problem ist wie gesagt, dass ich die Seite nicht auf eine LDAP Gruppe beschränken kann. (Require ldap-group)
Aktuelle Kerberos Konfiguration:

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Kerberos
  KrbAuthRealms DOMAIN.COM
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  Krb5Keytab /etc/krb5.keytab
</Directory>
sudo ls -l /etc/krb5.keytab

Code: Alles auswählen

-rw------- 1 www-data root 446 Dez 17 09:31 /etc/krb5.keytab
Ich habe auch schon folgende Einträge der Konfig hinzugefügt:

Code: Alles auswählen

AuthLDAPURL ldaps://ldapserver.domain.com/dc=domain,dc=com?uid?sub?(objectClass=*)
Require ldap-group cn=web_dav,ou=Groups,dc=domain,dc=com
Sobald ich die LDAP Konfig hinzufüge wird mein Client bei dem Seitenzugriff zur Benutzer/Passwort Eingabe aufgefordert.

Irgendwo hängt es und ich finde es nicht. Vielleicht hat noch jemand eine Idee?

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

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 21.12.2018 14:08:22

joe2017 hat geschrieben: ↑ zum Beitrag ↑
17.12.2018 17:51:11
Irgendwo hängt es und ich finde es nicht. Vielleicht hat noch jemand eine Idee?
Kannst du mal aus den Apache-Access-Logs eine paar Zeilen posten, wenn ein User sich über Kerberos eingeloggt hat.

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

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 27.12.2018 10:04:24

Schönen guten Morgen,

Das einzige was ich hierzu in den Apache Logs finden konnte ist folgendes
/var/log/apache2/error.log

Code: Alles auswählen

[authz_core:error] [pid 588:tid 140314081744640] [client IP-Adresse:43144] AH01631: user benutzer@DOMAIN.COM: authorization failure for "/webdav":
Aber das ist nicht wirklich aussagekräftig.

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

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 27.12.2018 11:23:54

Jetzt habe ich gerade etwas neues herausgefunden.

Meine aktuelle Konfiguration sieht wie folgt aus.

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Kerberos
  KrbAuthoritative off
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  KrbServiceName HTTP
  KrbAuthRealms DOMAIN.COM
  KrbLocalUserMapping On
  Krb5Keytab /etc/krb5.keytab
  AuthLDAPURL ldaps://ldapServer.domain.com/dc=domain,dc=com?uid?sub?(objectClass=*)
  Require ldap-user "LDAPUser1"
</Directory>
Die Konfiguration Require ldap-user funktioniert.
Öffne ich die Webseite werde ich nach Benutzer und Passwort gefragt. Trage ich die Benutzerdaten von LDAPUser1 ein erhalte ich Zugriff. Trage ich LDAPUser2 ein wird der Zugriff verweigert.

Verwende ich Require ldap-group "LDAP-Gruppe" wird der Zugriff immer verweigert, obwohl mein LDAPUser1 zu der LDAP-Gruppe hinzugefügt wurde.

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

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von bluestar » 28.12.2018 21:01:37

Ich sehe in deiner Config gar keine Konfiguration für das LDAP-Group Mapping, also die Parameter AuthLDAPGroupAttribute und AuthLDAPGroupAttributeIsDN, passen da die Default-Werte zu deinem Setup?

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

Re: Verständnisfrage zu LDAP/Kerberos SASL

Beitrag von joe2017 » 02.01.2019 09:43:39

Schönen guten Morgen und ein Gutes neues Jahr allen zusammen.

Zu deiner Frage. Diese Einträge hatte ich selbstverständlich in Verwendung. Das hatte ich vergessen zu erwähnen. Wenn ich meine Gruppe abfrage sieht meine Config wie folgt aus.

Code: Alles auswählen

<Directory /var/www/html/webdav>
  SSLRequireSSL
  DAV On
  AuthName "WebDav"
  AuthType Kerberos
  KrbAuthoritative off
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  KrbServiceName HTTP
  KrbAuthRealms DOMAIN.COM
  KrbLocalUserMapping On
  Krb5Keytab /etc/krb5.keytab
  AuthLDAPURL ldaps://ldapServer.domain.com/dc=domain,dc=com?uid?sub?(objectClass=*)
  AuthLDAPGroupAttribute memberUid
  AuthLDAPGroupAttributeIsDN off  
  Require ldap-group cn=web_dav,ou=Groups,dc=domain,dc=com
</Directory>
Hier erhalte ich jedoch immer die Fehlermeldung

Code: Alles auswählen

Unauthorized
This Server could not verify that you are authorized to access the document requested

Antworten