Seite 1 von 1
[gelöst] debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 14.02.2025 10:06:19
von joe2017
Guten Morgen,
ich habe einen OpenLDAP Server und MIT-Kerberos auf einem debian 11 Server installiert.
Ich möchte Kerberos jetzt mitteilen, dass er die LDAP Database als Spicher verwendet.
Hierzu habe ich die Datei /etc/krb5kdc/kdc.conf bearbeitet:
Code: Alles auswählen
EXAMPLE.COM = {
database_module = ldap
Database_name = ldap://localhost ODER ldap://servername.example.com
admin_dn = cn=admin,dc=example,dc=com
password = "ldap-password"
suffix = dc=example,dc=com
tls = false
.....
wenn ich den service neustarten möchte erhalte ich folgende Fehlermeldung:
sudo systemctl restart krb5-kdc
Code: Alles auswählen
cannot open DB2 database 'ldap://localhost'
BZW.
cannot open DB2 database 'ldap://servername.example.com'
Was mache ich falsch? wi kann ich kerberos mitteilen, dass er die ldap database nutzen soll?
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 14.02.2025 16:33:32
von joe2017
Ich habe jetzt erstmal die config gelassen wie sie ist. Ldap User in der ldap DB und Kerberos in der krb DB.
Mit kinit ldapUser erhalte ich mein zuvor angelegtes principal als Ticket. Der ldap User und das Kerberos principal haben das gleiche Passwort.
Wenn ich mich am Client mit dem ldap User anmelde, erhalte ich jedoch kein Kerberos Ticket. Ich muss immer den kinit Befehl ausführen und mein Passwort angeben. Anschließend sehe ich mit klist mein Ticket.
Ich habe bereits versucht die /etc/pam.d/common-auth Datei anzupassen. Jedoch funktioniert alles nicht.
Hat jemand eine Idee wie ich bei der Anmeldung am Client mit meinem ldapUser automatisch das Kerberos Ticket erhalte? Muss ich hierzu den Server oder Client konfigurieren? Komm irgendwie nicht weiter?
Würde mich über eine Hilfe freuen.
Danke und ein schönes Wochenende
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 17.02.2025 10:36:34
von joe2017
Ich versuche aktuell wieder LDAP als Backend für Kerberos zu konfigurieren.
Anbei meine Konfig
sudo nano /etc/krb5kdc/kdc.conf
Code: Alles auswählen
[kdcdefaults]
kdc_ports = 750,88
[realms]
EXAMPLE.COM = {
database_name = /var/lib/krb5kdc/principal
database_module = openldap_ldapconf
admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
acl_file = /etc/krb5kdc/kadm5.acl
key_stash_file = /etc/krb5kdc/stash
kdc_ports = 750,88
max_life = 10h 0m 0s
max_renewable_life = 7d 0h 0m 0s
master_key_type = des3-hmac-sha1
#supported_enctypes = aes256-cts:normal aes128-cts:normal
default_principal_flags = +preauth
}
[dbmodules]
openldap_ldapconf = {
db_library = kldap
ldap_conns_per_server = 5
ldap_kerberos_container_dn = cn=krbContainer,ou=kerberos,dc=example,dc=com
ldap_service_password_file = /etc/krb5kdc/service.keyfile
ldap_servers = ldap://server.example.com
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
ldap_kadmind_dn = "cn=admin,dc=example,dc=com"
}
sudo nano /etc/krb5.conf
Code: Alles auswählen
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
EXAMPLE.COM = {
kdc = server.example.com
admin_server = server.example.com
default_domain = example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
In der Datei /etc/krb5kdc/service.keyfile sind die beiden EInträge vorhanden
Code: Alles auswählen
cn=admin,dc=example,dc=com@EXAMPLE.COM
ldap/server.example.com@EXAMPLE.COM
Ich erhalte beim starten des Service immer folgende Meldung im Log:
Code: Alles auswählen
kadmind: Error reading password from stash: Bind-DN-Eintrag »cn=admin,dc=example,dc=com« fehlt in der LDAP-Passwortdatei »/etc/krb5kdc/service.keyfile« bei wird initialisiert, wird abgebrochen
Error reading password from stash: Bind-DN-Eintrag »cn=admin,dc=example,dc=com« fehlt in der LDAP-Passwortdatei »/etc/krb5kdc/service.keyfile« bei wird initialisiert, wird abgebrochen
Ich hoffe mir kann jemand weiterhelfen. Ich komme irgendwie nicht weiter.
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 17.02.2025 23:16:57
von n122vu
Ich habe damals für meinen LDAP Server und Kerberos System folgende Anleitung genutzt:
https://ubuntu.com/server/docs/how-to-s ... ap-backend
Er scheint in der Datei "service.keyfile" irgendwas nicht lesen zu können, stimmen die DNS Records? Stimmt das BindDN, etc.?
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 18.02.2025 09:33:26
von joe2017
Die BindDN stimmen. Die DNS Auflösung stimmt auch. Zumindest wird mein PING (servernam.domain.com) aufgelöst.
OpenLDAP und Kerberos ist auf einem Server installiert. Ich habe das Ganze jetzt schon unter Debian 11 installiert, da ich in Debian 12 nicht mal mehr das Kerberos Schema importiert bekomme.
Hier wurde anscheinend einiges geändert.
Ich habe jetzt zwar mein LDAP Server in welchem ich Benutzer anlegen kann und einen Kerberos Server in welchem ich Tickets erstellen kann.
Jedoch müssen die Kerberos Inhalte in der LDAP DB gespeichert werden, damit die Tickets für LDAP User automatisch ausgestellt werden.
Und hierbei erhalte ich immer die Fehlermeldung beim starten des Service (krb5-kdc):
Code: Alles auswählen
Error reading password from stash: Bind-DN-Eintrag »cn=admin,dc=example,dc=com« fehlt in der LDAP-Passwortdatei »/etc/krb5kdc/service.keyfile« bei wird initialisiert, wird abgebrochen
Error reading password from stash: Bind-DN-Eintrag »cn=admin,dc=example,dc=com« fehlt in der LDAP-Passwortdatei »/etc/krb5kdc/service.keyfile« bei wird initialisiert, wird abgebrochen
Ich weiß aktuell nicht wo ich noch ansetzen soll?
Vielleicht haben wir hier jemand der sich dem Thema annhmen könnte.
VIelen Dank!
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 18.02.2025 12:13:09
von joe2017
Ich bin jetzt einen Schritt weiter. Ich habe jedoch irgendwie eine Misch-Konfiguration.
Wenn ich einen user in ldap anlege wird automatisch ein kerberos ticket angelegt.
Code: Alles auswählen
dn: uid=user1,ou=users,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: krbPrincipalAux
uid: ubauer
uidNumber: 1004
gidNumber: 500
homeDirectory: /home/users/user1
cn: Hans Maier
sn: Maier
krbPrincipalName: user1@EXAMPLE.COM
userPassword: b
Wenn ich mit sudo kadmin.local (list_principals) die TIckets anzeigen lasse, sehe ich das Ticket von user1
Wenn ich im LDAP nachschaue ist das Ticket nicht angelegt.
Wenn ich das Ticket manuell lösche und wieder anlege, wird es in LDAP angelegt.
Code: Alles auswählen
sudo kadmin.local -q "delprinc user1@EXAMPLE.COM"
sudo kadmin.local -q "addprinc -pw b user1@EXAMPLE.COM"
Hat jemand eine Idee woran das liegen könnte?
Anbei noch meine /etc/krb5kdc/kdc.conf
Code: Alles auswählen
[kdcdefaults]
kdc_ports = 750,88
[realms]
EXAMPLE.COM = {
database_module = openldap_ldapconf
# database_name = /var/lib/krb5kdc/principal
admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
acl_file = /etc/krb5kdc/kadm5.acl
key_stash_file = /etc/krb5kdc/stash
kdc_ports = 750,88
max_life = 10h 0m 0s
max_renewable_life = 7d 0h 0m 0s
master_key_type = des3-hmac-sha1
# supported_enctypes = aes256-cts:normal aes128-cts:normal
default_principal_flags = +preauth
}
[dbmodules]
openldap_ldapconf = {
db_library = kldap
ldap_kerberos_container_dn = "cn=krbContainer,ou=kerberos,dc=example,dc=com"
ldap_servers = ldap://server.example.com
ldap_krb5_base_dn = "dc=example,dc=com"
ldap_krb5_bind_dn = "cn=admin,dc=example,dc=com"
ldap_search_base = "dc=example,dc=com"
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
ldap_kadmind_dn = "cn=admin,dc=example,dc=com"
ldap_service_password_file = /etc/krb5kdc/service.keyfile
}
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 18.02.2025 14:18:59
von joe2017
Es sieht so aus, als ob die lokale kerberos db nicht in die LDAP db synchronisiert wird. Hierzu habe ich jetzt aber nichts gefunden?
Ich habe jatzt auch mal ein Stunde gewartet. Ich dachte vielleicht gibt es hier eine Verzögerung. Jedoch sind die principals nicht in der LDAP vorhanden.
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 19.02.2025 06:59:59
von joe2017
Hat niemand eine Idee wo ich das prüfen kann?
Re: debian OpenLDAP und Kerberos (ldap als backend database)
Verfasst: 19.02.2025 13:03:13
von joe2017
Ich habe den Fehler gefunden! Das Problem war nicht die Konfiguration.
LDAP war erfolgreich installiert und konfiguriert.
Kerberos war erfolgreich installiert und konfiguriert.
LDAP war als Backend für Kerberos konfiguriert.
Das Problem war beim hinzufügen eines USERS:
Code: Alles auswählen
dn: uid=user1,ou=users,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: krbPrincipalAux
uid: ubauer
uidNumber: 1004
gidNumber: 500
homeDirectory: /home/users/user1
cn: Hans Maier
sn: Maier
krbPrincipalName: user1@EXAMPLE.COM
userPassword: b
Ich hab jetzt folgendes herausgenommen:
Meine User lege ich sowieso mittels Script an. Somit lass ich mir automatisch mein principal anlegen.