Frage Verschlüsseln des SMB-Datenverkehrs mit Samba


Wir verwenden Samba auf Ubuntu 14.04 LTS als PDC (primärer Domänencontroller) mit servergespeicherten Profilen. Alles funktioniert gut, außer wenn wir versuchen, Verschlüsselung durch Einstellung zu erzwingen:

    server signing = mandatory
    smb encrypt = mandatory

in dem [global] Abschnitt von /etc/samba/smb.conf. Nachdem Sie dies getan haben, gewinnen Sie 8.0 und gewinnen Sie 8.1 Kunden (habe noch keine andere versucht) sich beschweren: 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 zwei Optionen hinzufügen server signing und smb encrypt nur zum [profiles] Abschnitt von smb.conf dann tcpdump zeigt, dass der eigentliche Verkehr 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?


8
2018-01-07 18:13


Ursprung


Können Sie einen Computer erneut zur Domäne hinzufügen, um zu sehen, ob das Problem dadurch behoben wird? - integratorIT
Es tut uns leid, ein Win 8 oder Win 8.1 Client für die Domain wiederherzustellen, löst das Problem nicht. Wir haben das mehrmals versucht. - Kai Petzke


Antworten:


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 ist die "smb encrypt"options steuert auch die Verschlüsselung auf SMB-Ebene, die Teil der SMB-Version 3.0 und neuer ist. Windows 8 (und neuere) Clients sollten den Datenverkehr verschlüsseln mit diesen Einstellungen.

Haben Sie versucht, die gleichen Einstellungen zu verwenden (smb encrypt = mandatory in dem [global] Abschnitt) auf einem Samba-Domain-Mitglied oder Standalone-Server?

Stellen Sie sicher, dass Sie festlegen smb encrypt = auto im [global] Abschnitt (nicht die [profiles] Sektion). Dann ist die allgemeine Verfügbarkeit der Verschlüsselung noch angekündigt.



Es ist sehr wahrscheinlich, dass dies ein Fehler in Samba ist. Das sollte wahrscheinlich auf Sambas diskutiert werden samba-technial Mailingliste oder Sambas Bugzilla. Wenn Sie die Ubuntu-Version von Samba verwenden, möchten Sie vielleicht auch nachsehen die Paketseite. Ich vermute, dass dies ein echtes Samba-Upstream-Problem ist.


10
2018-04-22 14:46



Ich habe die Manpage in Sambas Core-Repository aktualisiert, um die unterschiedliche Bedeutung von smb encrypt für SMB2 und SMB3: (git.samba.org/...) - Michael Adam


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 als Teil der UNIX-Erweiterungen ausgehandelt wird. Die SMB-Verschlüsselung verwendet die Fähigkeit von GSSAPI (SSPI unter Windows), jede Anfrage / Antwort in einem SMB-Protokolldatenstrom zu verschlüsseln und zu signieren. Wenn es aktiviert ist, bietet es eine sichere Methode der SMB / CIFS-Kommunikation, ähnlich einer SSH-geschützten Sitzung, jedoch unter Verwendung der SMB / CIFS-Authentifizierung zum Aushandeln von Verschlüsselungs- und Signaturschlüsseln. Momentan 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.

Dies steuert, ob der Remote-Client die SMB-Verschlüsselung verwenden darf oder muss. Mögliche Werte sind auto, obligatorisch und deaktiviert. Dies kann auf einer Pro-Share-Basis festgelegt werden, aber Clients können wählen, die gesamte Sitzung zu verschlüsseln, nicht nur Datenverkehr zu einer bestimmten Freigabe. Wenn dies als obligatorisch festgelegt ist, muss der gesamte Datenverkehr zu einer Freigabe verschlüsselt werden, sobald die Verbindung zur Freigabe hergestellt wurde. Der Server würde "Zugriff verweigert" an alle unverschlüsselten Anforderungen auf einer solchen Freigabe zurückgeben. Die Auswahl von verschlüsseltem Datenverkehr verringert den Durchsatz, da kleinere Paketgrößen verwendet werden müssen (keine umfangreichen Lese- / Schreibvorgänge im UNIX-Stil) sowie der Aufwand für die Verschlüsselung und Signierung aller Daten.

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

Bei der Einstellung "Auto" wird die SMB-Verschlüsselung angeboten, aber nicht erzwungen. Wenn diese Option auf obligatorisch festgelegt ist, ist eine SMB-Verschlüsselung erforderlich, und 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


3
2018-01-15 12:04



Entschuldigung, ich kann die Manpage selbst lesen. Über das Zitat, dass Sie hervorgehoben haben: Einige Seiten, wie blogs.technet.com/b/filecab/archive/2012/05/03/... zeigen an, dass Win 8 auch SMB-Verschlüsselung durchführen kann. Wie oben auf der 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