Verständnisfrage zu LDAP/Kerberos SASL
Re: Verständnisfrage zu LDAP/Kerberos SASL
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.
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.
Re: Verständnisfrage zu LDAP/Kerberos SASL
Ich habe jetzt noch folgendes herausgefunden.
ldapwhoami
Ich habe folgendes ausgeführt:
Und schon funktioniert
Jetzt werde ich noch den Apache testen und eine Rückmeldung geben.
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)
Ich habe folgendes ausgeführt:
Code: Alles auswählen
sudo chown openldap /etc/ldap/ldap.keytab
- ldapwhoami
- und ebenfalls mein Thunderbird Adressbuch mit [Kerberos (GSSAPI)]
Jetzt werde ich noch den Apache testen und eine Rückmeldung geben.
Re: Verständnisfrage zu LDAP/Kerberos SASL
Mein Apache funktioniert noch nicht ganz so wie ich das möchte.
Evtl. habe ich auch falsche Parameter in der Site Config.
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...
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>
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...
Re: Verständnisfrage zu LDAP/Kerberos SASL
Wenn du Kerberos als Single Sign on verwenden willst, dann musst du Apache auch entsprechend konfigurieren.
http://www.microhowto.info/howto/config ... ation.html
http://www.microhowto.info/howto/config ... ation.html
Re: Verständnisfrage zu LDAP/Kerberos SASL
Wenn ich meine Apache Webseite für Kerberos konfiguriere funktioniert das ja auch.
Jedoch möchte ich nur einer bestimmten LDAP Gruppe die Berechtigungen für die Seite geben.
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>
Re: Verständnisfrage zu LDAP/Kerberos SASL
Die Tante Google willst du nicht nutzen, oder?
* https://danieljamesscott.org/all-articl ... ation.html
* http://lisa.rushworth.us/?p=244
* https://danieljamesscott.org/all-articl ... ation.html
* http://lisa.rushworth.us/?p=244
Re: Verständnisfrage zu LDAP/Kerberos SASL
Doch natürlich verwende ich die Tante Google!
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:
kinit -k -t /etc/krb5.keytab HTTP/apacheserver.domain.com
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
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.
Re: Verständnisfrage zu LDAP/Kerberos SASL
Sieht mir danach aus, als fehlt der Maschine-Account für den Server.joe2017 hat geschrieben:14.12.2018 16:21:32Code: Alles auswählen
kinit: Pre-authentication failed: Keine Berechtigung bei Anfängliche Anmeldedaten werden geholt.
Re: Verständnisfrage zu LDAP/Kerberos SASL
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?
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?
Re: Verständnisfrage zu LDAP/Kerberos SASL
Richtigjoe2017 hat geschrieben:17.12.2018 09:07:17Schönen guten Morgen.
mit Maschinen account meinst du sicherlich den princ host/server.domain.com oder?
Nein!
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.joe2017 hat geschrieben:17.12.2018 09:07:17Oder verwendet mein Server diesen automatisch wenn ein Kerberos Eintrag für host/... vorhanden ist?
Re: Verständnisfrage zu LDAP/Kerberos SASL
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?
Das kann ich aber nicht, da die princs ja mit einem -randkey eingerichtet werden.
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.
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
Code: Alles auswählen
addprinc -randkey host/server.domain.com
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.
Re: Verständnisfrage zu LDAP/Kerberos SASL
Du kannst au dem Apache Server aber mal ein kinit als Benutzer testen und schauen, ob das geht.
Re: Verständnisfrage zu LDAP/Kerberos SASL
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!
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!
Re: Verständnisfrage zu LDAP/Kerberos SASL
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:
sudo ls -l /etc/krb5.keytab
Ich habe auch schon folgende Einträge der Konfig hinzugefügt:
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?
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>
Code: Alles auswählen
-rw------- 1 www-data root 446 Dez 17 09:31 /etc/krb5.keytab
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
Irgendwo hängt es und ich finde es nicht. Vielleicht hat noch jemand eine Idee?
Re: Verständnisfrage zu LDAP/Kerberos SASL
Kannst du mal aus den Apache-Access-Logs eine paar Zeilen posten, wenn ein User sich über Kerberos eingeloggt hat.joe2017 hat geschrieben:17.12.2018 17:51:11Irgendwo hängt es und ich finde es nicht. Vielleicht hat noch jemand eine Idee?
Re: Verständnisfrage zu LDAP/Kerberos SASL
Schönen guten Morgen,
Das einzige was ich hierzu in den Apache Logs finden konnte ist folgendes
/var/log/apache2/error.log
Aber das ist nicht wirklich aussagekräftig.
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":
Re: Verständnisfrage zu LDAP/Kerberos SASL
Jetzt habe ich gerade etwas neues herausgefunden.
Meine aktuelle Konfiguration sieht wie folgt aus.
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.
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>
Ö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.
Re: Verständnisfrage zu LDAP/Kerberos SASL
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?
Re: Verständnisfrage zu LDAP/Kerberos SASL
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.
Hier erhalte ich jedoch immer die Fehlermeldung
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>
Code: Alles auswählen
Unauthorized
This Server could not verify that you are authorized to access the document requested