Samba 4 (kein DC) LDAP Authentication
Hallo zusammen,
evtl. kann mir jemand einen Hinweis zu dem o.g. Thema geben.
Ich möchte einen Samba 4 Server (installiert auf Debian 11) an ein OpenLDAP anbinden, sodass man kein separates Passwort für Samba benötigt.
Mein Ansatz war:
smb.conf:
- workgroup = EXAMPLE
#LDAP Settings
passdb backend = ldapsam:ldaps:[DNS des LDAP Servers]
ldap suffix = dc=[Domain],dc=de
ldap user suffix = ou=users
ldap group suffix = ou=groups
#ldap machine suffix = ou=Computers
#ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=[Domain],dc=de
ldap ssl = start tls
ldap passwd sync = yes
- samba.schema in OpenLDAP integrieren (ist auch verfügbar und Attribute können hinzugefügt werden)
Fehlermeldung:
Feb 09 16:56:16 vm smbd[2716078]: [2024/02/09 16:56:16.370871, 0] ../../source3/lib/smbldap.c:627(smbldap_start_tls)
Feb 09 16:56:16 vm smbd[2716078]: Failed to issue the StartTLS instruction: Operations error
Feb 09 16:56:17 vm smbd[2716078]: [2024/02/09 16:56:17.372581, 0] ../../source3/passdb/pdb_ldap.c:6751(pdb_ldapsam_init_common)
Feb 09 16:56:17 vm smbd[2716078]: pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain. We cannot work reliably without it.
Feb 09 16:56:17 vm smbd[2716078]: [2024/02/09 16:56:17.372646, 0] ../../source3/passdb/pdb_interface.c:179(make_pdb_method_name)
Feb 09 16:56:17 vm smbd[2716078]: pdb backend ldapsam:ldaps:[HOST] did not correctly init (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO)
Feb 09 16:56:17 vm systemd[1]: smbd.service: Main process exited, code=exited, status=1/FAILURE
The process' exit code is 'exited' and its exit status is 1.
Feb 09 16:56:17 vm systemd[1]: smbd.service: Failed with result 'exit-code'.
The unit smbd.service has entered the 'failed' state with result 'exit-code'.
Feb 09 16:56:17 vm systemd[1]: Failed to start Samba SMB Daemon.
Irgendwie sieht es nach ACL (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO) oder TLS Fehler aus. Ein entsprechendes Cert ist aber eigentlich auf beiden Servern installiert (über SSSD werden User gesynct, das klappt soweit über 636).
Leider komme ich an dieser Stelle nicht weiter. In der Suche gibt es nur diese zwei Themen, welche nicht gelöst wurden:
- Samba Server mit LDAP Authentifizierung
- SAMBA über LDAP authentifizieren
Online findet man zumeist nur Setups, welche sich auf die DC bzw. PDC Variante konzentrieren.
Viele Grüße
evtl. kann mir jemand einen Hinweis zu dem o.g. Thema geben.
Ich möchte einen Samba 4 Server (installiert auf Debian 11) an ein OpenLDAP anbinden, sodass man kein separates Passwort für Samba benötigt.
Mein Ansatz war:
smb.conf:
- workgroup = EXAMPLE
#LDAP Settings
passdb backend = ldapsam:ldaps:[DNS des LDAP Servers]
ldap suffix = dc=[Domain],dc=de
ldap user suffix = ou=users
ldap group suffix = ou=groups
#ldap machine suffix = ou=Computers
#ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=[Domain],dc=de
ldap ssl = start tls
ldap passwd sync = yes
- samba.schema in OpenLDAP integrieren (ist auch verfügbar und Attribute können hinzugefügt werden)
Fehlermeldung:
Feb 09 16:56:16 vm smbd[2716078]: [2024/02/09 16:56:16.370871, 0] ../../source3/lib/smbldap.c:627(smbldap_start_tls)
Feb 09 16:56:16 vm smbd[2716078]: Failed to issue the StartTLS instruction: Operations error
Feb 09 16:56:17 vm smbd[2716078]: [2024/02/09 16:56:17.372581, 0] ../../source3/passdb/pdb_ldap.c:6751(pdb_ldapsam_init_common)
Feb 09 16:56:17 vm smbd[2716078]: pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain. We cannot work reliably without it.
Feb 09 16:56:17 vm smbd[2716078]: [2024/02/09 16:56:17.372646, 0] ../../source3/passdb/pdb_interface.c:179(make_pdb_method_name)
Feb 09 16:56:17 vm smbd[2716078]: pdb backend ldapsam:ldaps:[HOST] did not correctly init (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO)
Feb 09 16:56:17 vm systemd[1]: smbd.service: Main process exited, code=exited, status=1/FAILURE
The process' exit code is 'exited' and its exit status is 1.
Feb 09 16:56:17 vm systemd[1]: smbd.service: Failed with result 'exit-code'.
The unit smbd.service has entered the 'failed' state with result 'exit-code'.
Feb 09 16:56:17 vm systemd[1]: Failed to start Samba SMB Daemon.
Irgendwie sieht es nach ACL (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO) oder TLS Fehler aus. Ein entsprechendes Cert ist aber eigentlich auf beiden Servern installiert (über SSSD werden User gesynct, das klappt soweit über 636).
Leider komme ich an dieser Stelle nicht weiter. In der Suche gibt es nur diese zwei Themen, welche nicht gelöst wurden:
- Samba Server mit LDAP Authentifizierung
- SAMBA über LDAP authentifizieren
Online findet man zumeist nur Setups, welche sich auf die DC bzw. PDC Variante konzentrieren.
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92357029972
Url: https://administrator.de/contentid/92357029972
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
21 Kommentare
Neuester Kommentar
Der Fehlermeldung nach bricht das schon beim Verbindungsaufbau ab.
Hast du OpenLDAP für "start_tls" konfiguriert?
ldaps ist nicht start_tls, das sind zwei ganz unterschiedliche Dinge.
ldaps = ssl und ist ausserhalb des LDAP Protokolls
start_tls ist Teil vom LDAP Protokoll und kann mit ldap:und ldaps: verwendet werden.
Hast du OpenLDAP für "start_tls" konfiguriert?
ldaps ist nicht start_tls, das sind zwei ganz unterschiedliche Dinge.
ldaps = ssl und ist ausserhalb des LDAP Protokolls
start_tls ist Teil vom LDAP Protokoll und kann mit ldap:und ldaps: verwendet werden.
Zitat von @SnoltzonUebingter:
Ich möchte einen Samba 4 Server (installiert auf Debian 11) an ein OpenLDAP anbinden, sodass man kein separates Passwort für Samba benötigt.
Meiner Meinung nach ist dies ohne ein AD nicht möglich.
Nicht unbedingt, aber ich denke ich weiss was du meinst.
Da die Passwort-Hashs von Windows und Linux nicht kompatibel sind, muss im LDAP pro User auch die Windows Passwort-Hashs abgelegt werden.
Das samba.schema fügt die Attribute "lmPassword" und "ntPassword" dem OpenLDAP hinzu.
Aber diese Attribute mit Werten zu füllen ist ein ganz anderes Thema.
Ich bin aber nicht sicher, ob der TO sich dessen bewusst ist.
Abgesehen davon ist mir nicht klar, ob der TO das OpenLDAP hat, weil er damit Linux User Authentifiziert und dies jetzt auf Windows Shares ausweiten will.
Der einfachere Weg wäre vermutlich Samba zum AD zu machen und auf den Linux Rechner mit Winbind den Samba-AD anzubinden.
Wenn denn die Windows Clients Teil vom Samba-AD sind, brauchen sie für die Samba-Shares auch kein zusätzliches Passwort mehr eingeben.
Klassisches XY Problem ?
Quote from @Harald99:
Dann musst du wohl SSSD mit Samba zusammenbringen.
Leider habe ich keine Anleitung, bei mir ist das Thema auch noch offen.
Dann musst du wohl SSSD mit Samba zusammenbringen.
Leider habe ich keine Anleitung, bei mir ist das Thema auch noch offen.
Gleiches Problem.
Auch SSSD kann mit dem Windows Passwort-Hashs nichts anfangen.
Immer beachten, es gibt hier zwei Richtungen.
1. Authentifizierung von Windows Clients an Linux Samba-Shares
2. Authentifizierung von Linux-Clients (z.B. ssh, console login) an Windows/Samba-AD
Bei 2 geht das via Winbind oder SSSD (genaugenommen NSS), da hier beim Login das Klartext Passwort zur Verfügung steht (ssh mit Key Login ausgenommen, aber dabei wird kein Passwort geprüft).
Bei 1 ist genau das nicht der Fall. Es gibt kein Klartext Passwort (zumindest seit Samba 4), somit muss der Passwort Hash benutzt werden. Der Passwort Hash muss dann aber in der Passwort Datenbank (ldapsam, tdbsam) vorhanden sein.
Alternativ, wenn die Clients im AD sind, dann kann mit Kerberos (Winbind) gearbeitet werden, was ganz grob gesagt dem SSH-Key Login entspricht. Was wir aber hier nicht haben.
Quote from @Harald99:
Ich habe das wohl doch mal geschafft, allerdings waren dann die User-IDs im Eimer.
Ich habe das wohl doch mal geschafft, allerdings waren dann die User-IDs im Eimer.
Dann bist/warst du bei Fall Nr. 2
Zitat von @SnoltzonUebingter:
Im LDAP dem Testuser die “User SID” zuweisen + [UID*2+1000]
Beispiel:
- User SID am Samba Servers: S-1-5-21-123456789-123456789-123456789-1001
- den letzten part (-1001) entfernen
- geplante uidNumber des Users auf dem Samba Server: 1001
- uidNumber*2+1000 = 3002
- sambaSID im LDAP muss also sein: S-1-5-21-123456789-123456789-123456789-3002
Beispiel:
- User SID am Samba Servers: S-1-5-21-123456789-123456789-123456789-1001
- den letzten part (-1001) entfernen
- geplante uidNumber des Users auf dem Samba Server: 1001
- uidNumber*2+1000 = 3002
- sambaSID im LDAP muss also sein: S-1-5-21-123456789-123456789-123456789-3002
Manuelles Usermapping???