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?

Kai Petzke
źródło
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.

Michael Adam
źródło
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

Joe
źródło
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,