Samba mag nur unsicheres LDAP

Probleme mit Samba, NFS, FTP und Co.
Antworten
Lookbehind
Beiträge: 143
Registriert: 12.08.2011 18:09:13

Samba mag nur unsicheres LDAP

Beitrag von Lookbehind » 08.12.2018 16:25:08

Hallo zusammen,

ich verzweifel hier bald. Ich hab einen Samba 4 auf Debian Stretch welcher als reiner CIFS File-Server fungiert. Kein AD ... alles was ich über Google finde bezieht sich immer auf Samba als AD ... darum nochmal erwähnt: KEIN AD !!! Ich hab keinen AD, ich will keinen AD, ein AD macht in dem Setup letztlich keinen Sinn.
Alles was ich möchte ist, die User-Authentifizierung über einen LDAP laufen lassen. Das klappt auch hervorragend, wenn ich den Samba mit dem LDAP-Server unverschlüsselt kommunizieren lasse. Stelle ich das ganze aber auf ldaps:// um, mag Samba nicht mehr.

Das ganze ist derzeit noch ein Throw-Away-System. Daher sind derzeit noch LDAP und Samba auf dem selben System. Langfristig sollen das zwei verschiedene Systeme sein. Daher möchte ich den Datenverkehr dazwischen möglichst nicht im Klartext machen. Auch wenn alles im LAN passiert.

Code: Alles auswählen

#======================= Global Settings =======================
[global]
add group script = /usr/sbin/smbldap-groupadd -p '%g'
add machine script = /usr/sbin/smbldap-useradd -w '%u'
add user script = /usr/sbin/smbldap-useradd -a '%u'
add user to group script = /usr/sbin/smbldap-groupmod -m '%u''%g'
bind interfaces only = yes
delete group script = /usr/sbin/smbldap-groupdel '%g'
delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
delete user script = /usr/sbin/smbldap-userdel '%u'
dns proxy = no
domain logons = Yes
encrypt passwords = true
guest ok = no
interfaces = 127.0.0.0/8 192.168.142.0/24
ldap admin dn = cn=admin,dc=example,dc=com
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap machine suffix = ou=Computers
ldap passwd sync = Yes
ldap ssl = no
ldap suffix = dc=example,dc=com
ldap user suffix = ou=Users
log file = /var/log/samba/log.%I-%m-%U
log level = 99
logon drive = H:
logon home = 
logon path = 
map to guest = bad user
max log size = 1000
name resolve order = lmhosts host wins bcast
netbios name = samba
obey pam restrictions = yes
pam password change = yes
panic action = /usr/share/samba/panic-action %d
passdb backend = ldapsam:ldaps://127.0.0.1/
passwd chat = *New\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n
passwd program = /usr/sbin/smbldap-passwd %u
public = no
security = user
server role = standalone
server string = %h server
set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
tls cafile = /etc/ssl/certs/dev-cacert.pem
tls verify peer = no_check
unix password sync = yes
usershare allow guests = no
usershare max shares = 0
wins support = yes
workgroup = SampleTech
# Include all sections in from smb.conf.d
include = /etc/samba/smb.conf.d/testshare.conf
Ersetze ich passdb backend = ldapsam:ldaps://127.0.0.1/ durch passdb backend = ldapsam:ldap://127.0.0.1/ (also nur das S von ldaps weg) funktioniert alles problemlos. Nur eben unverschlüsselt. Auch die externe IP oder den Host-Namen zu verwenden macht keinen Unterschied.
Ja, das Zertifikat vom LDAP ist self-signed. Ist im LAN wohl auch kaum anders möglich. Ich habs zu den bekannten Zertifikaten schon hinzugefügt und hoffte eigentlich mit tls verify peer = no_check auch die Zertifikatsprüfung abgeschaltet zu haben. Allerdings habe ich das Gefühl, dass die ganzen tls-Optionen nur dafür gedacht sind den Datenverkehr zu verschlüsseln wenn der Samba selbst AD ist und LDAP Anfragen entgegen nimmt. Die Option ldap ssl = no ist übrigens für StartTLS, was hier nicht zum Einsatz kommt und daher extra auf No gesetzt wurde.

Interessanterweise funktionieren die smbldap-tools problemlos mit ldaps. Genauso wie PAM, ejabberd und NextCloud. Daher wage ich mal zu behaupten, dass nicht das LDAP-Setup das Problem ist.

Leider finde ich die Fehlermeldung von Samba auch alles andere als Hilfreich.

Code: Alles auswählen

Dez 08 14:54:59 Dev smbd[841]: [2018/12/08 14:54:59.242069,  0, pid=841, effective(0, 0), real(0, 0)] ../source3/lib/smbldap.c:998(smbldap_connect_system)
Dez 08 14:54:59 Dev smbd[841]:   failed to bind to server ldaps://127.0.0.1/ with dn="cn=admin,dc=example,dc=com" Error: Can't contact LDAP server
Dez 08 14:54:59 Dev smbd[841]:           (unknown error code)
Dez 08 14:55:40 Dev smbd[841]: [2018/12/08 14:55:40.690561,  0, pid=841, effective(0, 0), real(0, 0), class=passdb] ../source3/passdb/pdb_ldap.c:6540(pdb_ldapsam_init_common)
Dez 08 14:55:40 Dev smbd[841]:   pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain. We cannot work reliably without it.
Dez 08 14:55:40 Dev smbd[841]: [2018/12/08 14:55:40.693803,  0, pid=841, effective(0, 0), real(0, 0), class=passdb] ../source3/passdb/pdb_interface.c:180(make_pdb_method_name)
Dez 08 14:55:40 Dev smbd[841]:   pdb backend ldapsam:ldaps://127.0.0.1/ did not correctly init (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO)
Das Log vom LDAP spuckt tausendfach sowas aus:

Code: Alles auswählen

Dez 08 14:54:59 Dev slapd[784]: conn=1000 fd=13 ACCEPT from IP=127.0.0.1:43388 (IP=0.0.0.0:636)
Dez 08 14:54:59 Dev slapd[784]: conn=1000 fd=13 TLS established tls_ssf=256 ssf=256
Dez 08 14:54:59 Dev slapd[784]: conn=1000 fd=13 closed (connection lost)
Dez 08 14:55:00 Dev slapd[784]: conn=1001 fd=13 ACCEPT from IP=127.0.0.1:43390 (IP=0.0.0.0:636)
Dez 08 14:55:00 Dev slapd[784]: conn=1001 fd=13 TLS established tls_ssf=256 ssf=256
Dez 08 14:55:00 Dev slapd[784]: conn=1001 fd=13 closed (connection lost)
Als würde der Samba einfach die Verbindung abbrechen. Aber warum? (unknown error code) finde ich etwas unbefriedigend.

Was mache ich falsch? Welche Infos braucht ihr noch um helfen zu können?


Gruß

Look

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Samba mag nur unsicheres LDAP

Beitrag von habakug » 09.12.2018 00:04:55

Hallo,

du könntest aus dem

Code: Alles auswählen

ldap ssl = no
mal ein

Code: Alles auswählen

ldap ssl = start tls
machen (und den Dienst neu starten).

Gruss, habakug

edit:
Genauer:

Code: Alles auswählen

ldap.conf:
TLS_REQCERT never

smb.conf:
ldap ssl = start tls
ldap ssl ads = yes
client ldap sasl wrapping = plain
oder ohne StartTLS:

Code: Alles auswählen

smb.conf:
ldap ssl = off
ldap ssl ads = no
client ldap sasl wrapping = seal
https://docs.citrix.com/de-de/linux-vir ... ldaps.html
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Lookbehind
Beiträge: 143
Registriert: 12.08.2011 18:09:13

Re: Samba mag nur unsicheres LDAP

Beitrag von Lookbehind » 09.12.2018 14:01:31

Hallo habakug,

danke für deine Antwort. Du hast mich damit auf jeden Fall schon mal in die richtige Richtung geschubst.
StartTLS in der smb.conf zu aktivieren kann nicht sinnvoll funktionieren, weil der LDAP-Server kein StartTLS spricht, sondern ldaps. Nichts desto trotz hatte ich das aber auch vor meiner Frage hier schon probiert. Die Fehlermeldungen dazu waren dann auch aussagekräftiger.

Was aber geholfen hat, war in der ldap.conf die Zertifikatsprüfung ab zu schalten. Im Nachhinein macht das auch Sinn, weil Samba die LDAP-Anfragen ja nicht selbst macht, sondern sich bei dem LDAP-Modul bedient, und das holt seine TLS-Config aus eben jener ldap.conf.

Dieser Erfolg hat mich dann natürlich auf die Idee gebracht, das doch auch noch "richtig" zu machen. Ergo dafür zu sorgen, dass mein Self-Signed-Cert akzeptiert wird. Leider war es nicht von Erfolg gekrönt in der ldap.conf den Wert für "TLS_CACERT" auf das selbst erstellte CA-Cert zu legen. Da werd ich mal noch ein bisschen untersuchen.

Danke auf jeden Fall schon mal für den Schubser in die richtige Richtung. :THX:

Antworten