SMB-Verkehr mit Samba verschlüsseln

11

Wir verwenden Samba unter Ubuntu 14.04 LTS als PDC (primärer Domänencontroller) mit Roaming-Profilen. Alles funktioniert einwandfrei, außer wenn wir versuchen, die Verschlüsselung über die Einstellung zu erzwingen:

    server signing = mandatory
    smb encrypt = mandatory

im [global]Abschnitt /etc/samba/smb.conf. Gewinnen Sie danach 8.0 und gewinnen Sie 8.1-Kunden (haben noch keine anderen ausprobiert). Beschweren Sie sich: Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden.Englische Übersetzung dieses Textes:The trust relationship between this workstation and the primary domain could not be established.

Wenn wir die beiden Optionen server signingund smb encryptnur zum [profiles]Abschnitt von smb.conf hinzufügen , tcpdumpzeigt dies, dass der tatsächliche Datenverkehr nicht verschlüsselt ist!

Die vollständige smb.conf:

[global]
    workgroup = DOMAIN
    server string = %h PDC
    netbios name = HOSTNAME
    wins support = true
    dns proxy = no
    allow dns updates = False
    dns forwarder = IP

    deadtime = 15

    log level = 2
    log file = /var/log/samba/log.%m
    max log size = 5000
    debug pid = yes
    debug uid = yes
    syslog = yes
    utmp = yes

    security = user
    domain logons = yes
    domain master = yes
    os level = 64
    logon path = \\%N\profiles\%U
    logon home = \\%N\%U
    logon drive = H:
    logon script =

    passdb backend = ldapsam:ldap://localhost
    ldap ssl = start tls
    ldap admin dn = cn=admin,dc=DOMAIN,dc=de
    ldap delete dn = no

    encrypt passwords = yes
    server signing = mandatory
    smb encrypt = mandatory

    ## Sync UNIX password with Samba password
    ldap password sync = yes

    ldap suffix = dc=intra,dc=DOMAIN,dc=de
    ldap user suffix = ou=People
    ldap group suffix = ou=Groups
    ldap machine suffix = ou=Computers
    ldap idmap suffix = ou=Idmap

    add user script = /usr/sbin/smbldap-useradd -m '%u' -t 1
    rename user script = /usr/sbin/smbldap-usermod -r '%unew' '%uold'
    delete user script = /usr/sbin/smbldap-userdel '%u'
    set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
    add group script = /usr/sbin/smbldap-groupadd -p '%g'
    delete group script = /usr/sbin/smbldap-groupdel '%g'
    add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'
    delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
    add machine script = /usr/sbin/smbldap-useradd -W '%m' -t 1

[homes]
    comment = Home Directories
    valid users = %S
    read only = No
    browseable = No

[netlogon]
    comment = Network Logon Service
    path = /var/lib/samba/netlogon
    admin users = root
    guest ok = Yes
    browseable = No

[profiles]
    comment = Roaming Profile Share
    path = /var/lib/samba/profiles
    read only = No
    profile acls = Yes
    browsable = No
    valid users = %U
    create mode = 0600
    directory mode = 0700

Irgendeine Hilfe?

Kai Petzke
quelle
Können Sie einem Computer eine Domäne hinzufügen, um festzustellen, ob dieses Problem behoben ist?
IntegratorIT
Es tut uns leid, wenn Sie einen Win 8- oder Win 8.1-Client wieder der Domain hinzufügen, um das Problem nicht zu lösen. Das haben wir mehrmals versucht.
Kai Petzke

Antworten:

12

Die smb.conf-Handbuchseite muss aktualisiert werden! Es bezieht sich auf den alten Samba-spezifischen Verschlüsselungsmechanismus, der nur für SMB1 gilt und über Unix-Erweiterungen erfolgt. Dies kann von verwendet werden smbclient.

Heutzutage smb encryptsteuern die Optionen " " auch die Verschlüsselung auf SMB-Ebene, die Teil von SMB Version 3.0 und höher ist. Windows 8-Clients (und neuere Clients) sollten den Datenverkehr mit diesen Einstellungen verschlüsseln .

Haben Sie versucht, dieselben Einstellungen ( smb encrypt = mandatoryim [global]Abschnitt) auf einem Samba-Domänenmitglied oder einem eigenständigen Server zu verwenden?

Achten Sie darauf, Satz smb encrypt = autoin [global]Abschnitt (nicht der [profiles]Abschnitt). Dann wird die allgemeine Verfügbarkeit der Verschlüsselung noch angekündigt.



Es ist sehr wahrscheinlich, dass dies ein Fehler in Samba ist. Dies sollte also wahrscheinlich auf Sambas Samba-Technial-Mailingliste oder Sambas Bugzilla besprochen werden . Wenn Sie die Ubuntu - Version von Samba verwenden dann könnten Sie auch überprüfen möchten das Paket Seite . Ich vermute, dass dies ein echtes Samba-Upstream-Problem ist.

Michael Adam
quelle
7
Ich habe die Handbuchseite in Sambas Kern-Repository aktualisiert, um die unterschiedliche Bedeutung von smb encryptSMB2 und SMB3 zu erläutern: ( git.samba.org/… )
Michael Adam
4

Dies ist eine neue Funktion, die mit Samba 3.2 und höher eingeführt wurde. Es ist eine Erweiterung des SMB / CIFS-Protokolls, das im Rahmen der UNIX-Erweiterungen ausgehandelt wurde. Die SMB-Verschlüsselung verwendet die GSSAPI-Funktion (SSPI unter Windows), um jede Anforderung / Antwort in einem SMB-Protokolldatenstrom zu verschlüsseln und zu signieren. Wenn diese Option aktiviert ist, bietet sie eine sichere Methode für die SMB / CIFS-Kommunikation, ähnlich einer ssh-geschützten Sitzung, verwendet jedoch die SMB / CIFS-Authentifizierung, um Verschlüsselungs- und Signaturschlüssel auszuhandeln. Derzeit wird dies nur von Samba 3.2 smbclient und hoffentlich bald von Linux CIFSFS- und MacOS / X-Clients unterstützt.Windows clients do not support this feature.

Hiermit wird gesteuert, ob der Remoteclient die SMB-Verschlüsselung verwenden darf oder muss. Mögliche Werte sind auto, obligatorisch und deaktiviert. Dies kann auf der Basis von Freigaben festgelegt werden, aber Clients können sich dafür entscheiden, die gesamte Sitzung zu verschlüsseln, nicht nur den Datenverkehr zu einer bestimmten Freigabe. Wenn dies auf obligatorisch gesetzt ist, muss der gesamte Datenverkehr zu einer Freigabe verschlüsselt werden, sobald die Verbindung zur Freigabe hergestellt wurde. Der Server würde "Zugriff verweigert" auf alle nicht verschlüsselten Anforderungen auf einer solchen Freigabe zurückgeben. Durch die Auswahl von verschlüsseltem Datenverkehr wird der Durchsatz reduziert, da kleinere Paketgrößen verwendet werden müssen (keine großen Lese- / Schreibvorgänge im UNIX-Stil zulässig) sowie der Aufwand für das Verschlüsseln und Signieren aller Daten.

Wenn die SMB-Verschlüsselung ausgewählt ist, ist keine SMB-Signatur im Windows-Stil (siehe Server-Signaturoption) mehr erforderlich, da die GSSAPI-Flags die Option zum Signieren und Versiegeln der Daten auswählen.

Bei der Einstellung "Auto" wird die SMB-Verschlüsselung angeboten, jedoch nicht erzwungen. Bei der Einstellung "obligatorisch" ist eine SMB-Verschlüsselung erforderlich. Wenn diese Option deaktiviert ist, kann die SMB-Verschlüsselung nicht ausgehandelt werden.

Standard: smb encrypt = auto

Quelle: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

Joe
quelle
Entschuldigung, ich kann die Manpage selbst lesen. Zu dem von Ihnen hervorgehobenen Zitat: Einige Seiten, wie blogs.technet.com/b/filecab/archive/2012/05/03/…, weisen darauf hin, dass Win 8 auch SMB-Verschlüsselung durchführen kann. Wie oben auf dieser Seite geschrieben: "Alles hier gilt auch für Windows 8". Ist diese Information sicher falsch?
Kai Petzke
Alternativ können Sie Windows Server 2012 verwenden, das verschlüsselten SMB-Verkehr unterstützt
IntegratorIT
Aber würde das nicht die Windows Server Edition auf allen Clients erfordern?
Kai Petzke