LDAP Kerberos SASL Installation

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

LDAP Kerberos SASL Installation

Beitrag von joe2017 » 11.03.2019 16:42:59

Hallo zusammen,

ich dachte, dass ich die Installation jetzt erfolgreich hinbekommen hätte. Jedoch gab es erneut ein Problem und ich bräuchte mal die Hilfe von einem Fachmann hierzu.

Ich habe einen LDAP Server installiert.
Auf demselben habe ich meinen MIT-Kerberos Server installiert und nutze die LDAP Datenbank für die Einträge.
Was ich jetzt nicht hin bekomme, ist der Passwortspeicher im Kerberos auf welchen mein LDAP Server zurückgreifen soll (SASL).

Ich habe folgendes durchgeführt:
sudo apt install sasl2-bin libsasl2-modules-gssapi-mit
sudo kadmin -p admin/admin
addprinc -randkey ldap/ldapserver.domain.net
addprinc -randkey host/ldapserver.domain.net
ktadd -k /etc/ldap/ldap.keytab ldap/ldapserver.domain.net
ktadd -k /etc/ldap/ldap.keytab host/ldapserver.domain.net
exit
sudo chown openldap /etc/ldap/ldap.keytab
sudo nano /etc/default/slapd

Code: Alles auswählen

export KRB5_KTNAME=/etc/ldap/ldap.keytab
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:///

Code: Alles auswählen

changetype: modify
add: olcSaslHost
olcSaslHost: ldapserver.domain.net

dn: cn=config
add: olcSaslRealm
olcSaslRealm: domain.net

# 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=domain,dc=net"

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

#host/hostname.realm@realm -> hostname.hosts.example.com
dn: cn=config
add: olcAuthzRegexp
olcAuthzRegexp: {2}"uid=host/([^/]*).domain.net,cn=domain.net,cn=gssapi,cn=auth" "cn=$1,ou=hosts,dc=domain,dc=net"
sudo nano /etc/default/saslauthd

Code: Alles auswählen

START=yes
...
MECHANISMS="kerberos5"
sudo service saslauthd restart
sudo adduser openldap sasl


Die folgende Datei habe ich manuell angelegt. Diese war nicht vorhanden.
sudo nano /etc/ldap/sasl2/slapd.conf

Code: Alles auswählen

pwcheck_method: saslauthd
kdestroy
kinit ldapuser
ldapwhoami
ldapwhoami -x -D "cn=ldapuser,ou=users,dc=domain,dc=net" -W


Bei folgenden Abfragen erhalte ich jeweils eine Fehlermeldung:
sudo testsaslauthd -u ldapuser -p secretpasswd -r DOMAIN.NET -s ldap

Code: Alles auswählen

0: NO "authentication failed"
ldapsearch -D uid=ldapuser,ou=users,dc=domain,dc=net -W -b dc=domain,dc=net

Code: Alles auswählen

ldap_bind: Invalid credentials (49)
Wenn ich folgendes ausführe wird mir jedoch die gesamte LDAP Struktur angezeigt:
ldapsearch -x

Wenn ich bei meinem ldapuser das Password in folgendes ändere erhalte ich ebenfalls eine Fehlermeldung.

Code: Alles auswählen

{SASL}ldapuser@DOMAIN.NET
Fehlermeldung:

Code: Alles auswählen

ldap_bind: Invalid credentials (49)
Sieht jemand auf ob ich grob etwas falsch gemacht oder etwas vergessen habe?
Ich habe jetzt diverse Anleitungen durchgeführt und komme trotzdem nicht weiter.

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

Re: LDAP Kerberos SASL Installation

Beitrag von joe2017 » 12.03.2019 17:48:13

Also ich denke ich habe das jetzt hin bekommen. Wenn Interesse besteht poste ich gerne am Ende mal mein gesamtes Setup.
Irgendwie ist es nicht ganz so einfach hierzu eine richtige Beschreibung zu dem Thema zu finden. Jedoch lernt man bei dem Prozedere auch eine ganze Menge!

Was ich jetzt noch gerne wissen möchte... Wie kann ich sicher sein, dass meine Konfiguration jetzt korrekt ist?
Ich habe es wie folgt getestet:
Ich habe einen LDAP Benutzer (testuser) und ein Kerberos Prinzipal (testuser) angelegt.
sudo nano ~/testuser.ldif

Code: Alles auswählen

dn: cn=testuser,ou=groups,dc=domain,dc=net
cn: testuser
gidNumber: 20001
objectClass: top
objectClass: posixGroup

dn: uid=testuser,ou=people,dc=domain,dc=net
uid: testuser
uidNumber: 20001
gidNumber: 20001
cn: Christopher
sn: Columbus
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/testuser
userPassword: {CRYPT}*
ldapadd -xWD cn=admin,dc=domain,dc=net -f ~/testuser.ldif
kdestroy
kinit testuser
klist

Code: Alles auswählen

Ticketzwischenspeicher: FILE:/tmp/krb5cc_1000
Standard-Principal: testuser@DOMAIN.NET

Valid starting       Expires              Service principal
12.03.2019 17:36:16  13.03.2019 03:36:16  krbtgt/DOMAIN.NET@DOMAIN.NET
        erneuern bis 13.03.2019 17:36:11
ldapwhoami

Code: Alles auswählen

SASL/GSSAPI authentication started
SASL username: testuser@DOMAIN.NET
SASL SSF: 256
SASL data security layer installed.
dn:uid=testuser,ou=people,dc=domain,dc=net
So wie ich das sehe, Sieht das Ganze ganz gut aus. Jedoch würde ich gerne auf Nummer sicher gehen. Kann ich das noch anderweitig testen?

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

Re: LDAP Kerberos SASL Installation

Beitrag von joe2017 » 13.03.2019 09:17:55

Ich habe mittlerweile noch etwas herausgefunden.

Und zwar habe ich versucht mich mit einem Microsoft Server mittels PGINA an meinem LDAP Server anzumelden.
mit meinem testuser kann ich mich nicht anmelden, da ich die Rückmeldung erhalte: invalid credentials
Ich habe einen zweiten Benutzer (testuser2) angelegt. Hier habe ich im LDAP das selbe Kennwort eingetragen wie in meinem Kerberos.

sudo nano ~/testuser2.ldif

Code: Alles auswählen

dn: cn=testuser2,ou=groups,dc=domain,dc=net
cn: testuser2
gidNumber: 20002
objectClass: top
objectClass: posixGroup

dn: uid=testuser2,ou=people,dc=domain,dc=net
uid: testuser2
uidNumber: 20002
gidNumber: 20002
cn: Christopher
sn: Columbus
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/testuser2
userPassword: USERPASSWORD
ldapadd -xWD cn=admin,dc=domain,dc=net -f ~/testuser2.ldif

kadmin -p admin/admin
addprinc testuser2 (USERPASSWORD)


In meinem ersten User wurde dies wie folgt angelegt:

Code: Alles auswählen

userPassword: {CRYPT}*
Mit meinem testuser2 kann ich mich nun an meinem Windwos Server anmelden.
Das bedeutet, dass ich noch eine Verbindung von meinem LDAP User Password zum Kerberos Password benötige. Hier ist wohl noch ein Fehler!

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

Re: LDAP Kerberos SASL Installation

Beitrag von joe2017 » 13.03.2019 09:24:32

Auch mit folgendem Eintrag funktioniert das nicht?

Code: Alles auswählen

userPassword: {SASL}testuser2@DOMAIN.NET
Hat noch jemand eine Idee woran das noch liegen könnte?

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

Re: LDAP Kerberos SASL Installation

Beitrag von joe2017 » 19.03.2019 14:46:43

Hat hier keiner einen Tipp für mich?

Antworten