Szyfrowanie ruchu SMB za pomocą Samby


11

Używamy Samby na Ubuntu 14.04 LTS jako PDC (podstawowy kontroler domeny) z profilami mobilnymi. Wszystko działa dobrze, z wyjątkiem sytuacji, gdy spróbujemy wymusić szyfrowanie poprzez ustawienie:

    server signing = mandatory
    smb encrypt = mandatory

w [global]sekcji /etc/samba/smb.conf. Po wykonaniu tej czynności wygraj 8.0 i 8.1 klientów (jeszcze nie próbowałem) narzekać: Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden.Tłumaczenie tego tekstu na angielski:The trust relationship between this workstation and the primary domain could not be established.

Jeśli dodamy dwie opcje server signingi smb encrypttylko do [profiles]sekcji smb.conf, to tcpdumppokaże, że rzeczywisty ruch nie jest szyfrowany!

Pełny plik 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

Jakaś pomoc?


Czy możesz ponownie dołączyć komputer do domeny, aby sprawdzić, czy to rozwiązuje ten problem?
— integratorIT

Przykro nam, ponowne dołączenie klienta Windows 8 lub Windows 8.1 do domeny nie rozwiązuje problemu. Próbowaliśmy tego kilka razy.
— Kai Petzke,

Odpowiedzi:


12

Strona podręcznika smb.conf musi zostać zaktualizowana! Odnosi się do starego mechanizmu szyfrowania specyficznego dla Samby, który dotyczy tylko SMB1 i odbywa się za pomocą rozszerzeń unix. Może to być wykorzystane przez smbclient.

W dzisiejszych czasach smb encryptopcje „ ” kontrolują również szyfrowanie na poziomie SMB, które jest częścią SMB w wersji 3.0 i nowszych. Klienci Windows 8 (i nowsze) powinni szyfrować ruch przy użyciu tych ustawień.

Czy próbowałeś użyć tych samych ustawień ( smb encrypt = mandatoryw [global]sekcji) na członku domeny Samba lub samodzielnym serwerze?

Pamiętaj, aby ustawić smb encrypt = autow [global]sekcji (nie w [profiles]sekcji). Następnie ogólna dostępność szyfrowania jest nadal ogłaszana.



Jest bardzo możliwe, że jest to błąd w Sambie. Powinno to prawdopodobnie zostać omówione na liście mailingowej samby-technicznej Samby lub na Bugzilli samby . Jeśli używasz wersji Samba Ubuntu, możesz również sprawdzić stronę pakietu . Podejrzewam, że jest to prawdziwy problem Samby na wcześniejszym etapie.


7
Zaktualizowałem stronę podręcznika w głównym repozytorium Samby, aby wyjaśnić inne znaczenie smb encryptdla SMB2 i SMB3: ( git.samba.org/… )
— Michael Adam

4

Jest to nowa funkcja wprowadzona w Sambie 3.2 i nowszych. Jest to rozszerzenie protokołu SMB / CIFS wynegocjowanego jako część rozszerzeń UNIX. Szyfrowanie SMB wykorzystuje funkcję GSSAPI (SSPI w systemie Windows) do szyfrowania i podpisywania każdego żądania / odpowiedzi w strumieniu protokołu SMB. Po włączeniu zapewnia bezpieczną metodę komunikacji SMB / CIFS, podobną do sesji chronionej ssh, ale przy użyciu uwierzytelniania SMB / CIFS do negocjacji kluczy szyfrowania i podpisywania. Obecnie jest obsługiwany tylko przez smbclient Samby 3.2, i mam nadzieję, że wkrótce klienci Linux CIFSFS i MacOS / X.Windows clients do not support this feature.

Kontroluje to, czy zdalny klient może korzystać z szyfrowania SMB, czy też musi go używać. Możliwe wartości to auto, obowiązkowe i wyłączone. Można to ustawić dla poszczególnych udziałów, ale klienci mogą szyfrować całą sesję, a nie tylko ruch do określonego udziału. Jeśli jest to ustawienie obowiązkowe, cały ruch do udziału musi zostać zaszyfrowany po nawiązaniu połączenia z udziałem. Serwer zwróci „odmowa dostępu” do wszystkich niezaszyfrowanych żądań dotyczących takiego udziału. Wybranie szyfrowanego ruchu zmniejsza przepustowość, ponieważ należy stosować mniejsze rozmiary pakietów (niedozwolone jest ogromne odczytywanie / zapisywanie w stylu UNIX), a także narzut związany z szyfrowaniem i podpisywaniem wszystkich danych.

Jeśli wybrano szyfrowanie SMB, podpisywanie SMB w stylu Windows (patrz opcja podpisywania na serwerze) nie jest już konieczne, ponieważ flagi GSSAPI używają opcji zarówno podpisywania, jak i pieczętowania danych.

Po ustawieniu na auto szyfrowanie SMB jest oferowane, ale nie jest wymuszane. Po ustawieniu na obowiązkowe szyfrowanie SMB jest wymagane, a po wyłączeniu szyfrowania SMB nie można negocjować.

Domyślnie: smb encrypt = auto

Źródło: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html


Przepraszam, sam mogę przeczytać stronę podręcznika. O cytacie, który zaznaczyłeś: Niektóre strony, takie jak blogs.technet.com/b/filecab/archive/2012/05/03/... wskazują, że Win 8 może również szyfrować SMB. Jak napisano u góry tej strony: „Wszystko tutaj dotyczy również systemu Windows 8”. Czy te informacje są z pewnością błędne?
— Kai Petzke,

Alternatywnie możesz użyć systemu Windows Server 2012, który obsługuje szyfrowany ruch SMB
— integrator

Ale czy nie wymagałoby to edycji systemu Windows Server na wszystkich klientach?
— Kai Petzke,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.