Mengenkripsi lalu lintas SMB dengan Samba

11

Kami menggunakan Samba di Ubuntu 14.04 LTS sebagai PDC (pengontrol domain primer) dengan profil roaming. Semuanya berfungsi dengan baik, kecuali jika kami mencoba menerapkan enkripsi melalui pengaturan:

    server signing = mandatory
    smb encrypt = mandatory

di [global]bagian /etc/samba/smb.conf. Setelah melakukannya, menangkan 8.0 dan menangkan 8.1 klien (belum mencoba yang lain) mengeluh: Terjemahan Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden.bahasa Inggris dari teks ini:The trust relationship between this workstation and the primary domain could not be established.

Jika kita menambahkan dua opsi server signingdan smb encrypthanya ke [profiles]bagian smb.conf, maka tcpdumpterlihat, bahwa lalu lintas sebenarnya tidak dienkripsi!

Lengkap 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

Ada bantuan?

Kai Petzke
sumber
Dapatkah Anda bergabung kembali dengan komputer ke domain untuk melihat apakah itu menyelesaikan masalah ini?
integratorIT
Maaf, bergabung kembali dengan klien win 8 atau win 8.1 ke domain tidak menyelesaikan masalah. Kami mencobanya beberapa kali.
Kai Petzke

Jawaban:

12

Halaman manual smb.conf perlu diperbarui! Ini mengacu pada mekanisme enkripsi Samba-spesifik lama yang hanya berlaku untuk SMB1 dan dilakukan melalui ekstensi unix. Ini dapat digunakan oleh smbclient.

Saat ini, opsi " smb encrypt" juga mengontrol enkripsi level SMB yang merupakan bagian dari SMB versi 3.0 dan lebih baru. Klien Windows 8 (dan yang lebih baru) harus mengenkripsi lalu lintas dengan pengaturan ini.

Sudahkah Anda mencoba menggunakan pengaturan yang sama ( smb encrypt = mandatorydi [global]bagian) pada anggota domain Samba atau server mandiri?

Pastikan untuk set smb encrypt = autodi [global]bagian (bukan [profiles]bagian). Kemudian ketersediaan umum enkripsi masih diumumkan.



Sangat mungkin bahwa ini adalah bug di Samba. Jadi ini mungkin harus dibahas di milis samba-teknis samba atau bugzilla samba . Jika Anda menggunakan Samba versi Ubuntu maka Anda mungkin juga ingin memeriksa halaman paket . Saya menduga bahwa ini adalah masalah hulu Samba asli.

Michael Adam
sumber
7
Saya telah memperbarui halaman manual di repositori inti Samba untuk menjelaskan arti berbeda smb encryptuntuk SMB2 dan SMB3: ( git.samba.org/… )
Michael Adam
4

Ini adalah fitur baru yang diperkenalkan dengan Samba 3.2 dan di atasnya. Ini adalah ekstensi untuk protokol SMB / CIFS yang dinegosiasikan sebagai bagian dari ekstensi UNIX. Enkripsi SMB menggunakan kemampuan GSSAPI (SSPI pada Windows) untuk mengenkripsi dan menandatangani setiap permintaan / respons dalam aliran protokol SMB. Ketika diaktifkan, ini menyediakan metode komunikasi SMB / CIFS yang aman, mirip dengan sesi yang dilindungi ssh, tetapi menggunakan otentikasi SMB / CIFS untuk menegosiasikan kunci enkripsi dan penandatanganan. Saat ini ini hanya didukung oleh Samba 3.2 smbclient, dan semoga segera klien Linux CIFSFS dan MacOS / X.Windows clients do not support this feature.

Ini mengontrol apakah klien jarak jauh diizinkan atau diminta untuk menggunakan enkripsi SMB. Nilai yang mungkin otomatis, wajib dan dinonaktifkan. Ini dapat ditetapkan pada basis per saham, tetapi klien dapat memilih untuk mengenkripsi seluruh sesi, bukan hanya lalu lintas ke bagian tertentu. Jika ini diatur ke wajib, maka semua lalu lintas ke suatu saham harus dienkripsi setelah koneksi dibuat untuk berbagi. Server akan mengembalikan "akses ditolak" ke semua permintaan yang tidak dienkripsi pada pembagian seperti itu. Memilih lalu lintas terenkripsi mengurangi throughput karena ukuran paket yang lebih kecil harus digunakan (tidak ada gaya UNIX besar baca / tulis diizinkan) serta overhead mengenkripsi dan menandatangani semua data.

Jika enkripsi SMB dipilih, penandatanganan SMB gaya Windows (lihat opsi penandatanganan server) tidak lagi diperlukan, karena penggunaan bendera GSSAPI pilih penandatanganan dan penyegelan data.

Ketika diatur ke otomatis, enkripsi SMB ditawarkan, tetapi tidak ditegakkan. Ketika diatur ke wajib, enkripsi SMB diperlukan dan jika diatur ke dinonaktifkan, enkripsi SMB tidak dapat dinegosiasikan.

Default: seseorang mengenkripsi = otomatis

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

joe
sumber
Maaf, saya bisa membaca halaman manual sendiri. Tentang kutipan, yang Anda sorot: Beberapa halaman, seperti blogs.technet.com/b/filecab/archive/2012/05/03/... menunjukkan, bahwa Win 8 juga dapat melakukan enkripsi SMB. Seperti yang tertulis di bagian atas halaman itu: "Semuanya di sini juga berlaku untuk Windows 8". Apakah info itu salah?
Kai Petzke
Atau Anda dapat menggunakan Windows Server 2012 yang mendukung lalu lintas seseorang terenkripsi
integratorIT
Tapi bukankah itu memerlukan edisi Windows Server pada semua klien?
Kai Petzke