เข้ารหัสการรับส่งข้อมูล SMB ด้วย Samba


11

เราใช้ Samba บน Ubuntu 14.04 LTS เป็น PDC (ตัวควบคุมโดเมนหลัก) ด้วยโปรไฟล์ข้ามเขต ทุกอย่างทำงานได้ดียกเว้นถ้าเราพยายามบังคับใช้การเข้ารหัสผ่านการตั้งค่า:

    server signing = mandatory
    smb encrypt = mandatory

ใน[global]ส่วนของ /etc/samba/smb.conf หลังจากทำเช่นนั้นให้ชนะ 8.0 และชนะลูกค้า 8.1 (ไม่ได้ลองคนอื่น) บ่น: การDie Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden.แปลภาษาอังกฤษของข้อความนี้:The trust relationship between this workstation and the primary domain could not be established.

หากเราเพิ่มสองตัวเลือกserver signingและsmb encryptเฉพาะใน[profiles]ส่วนของ smb.conf tcpdumpแสดงว่าการรับส่งข้อมูลจริงไม่ได้เข้ารหัส!

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

ความช่วยเหลือใด ๆ


คุณสามารถเข้าร่วมคอมพิวเตอร์กับโดเมนอีกครั้งเพื่อดูว่าสามารถแก้ไขปัญหานี้ได้หรือไม่
integratorIT

ขออภัยการเข้าร่วมไคลเอนต์ win 8 หรือ win 8.1 ไปยังโดเมนไม่สามารถแก้ปัญหาได้ เราลองมาหลายครั้งแล้ว
Kai Petzke

คำตอบ:


12

หน้าคู่มือ smb.conf ต้องได้รับการอัพเดต! มันหมายถึงกลไกการเข้ารหัสเฉพาะ Samba แบบเก่าที่ใช้กับ SMB1 เท่านั้นและทำได้ผ่านส่วนขยาย unix smbclientนี้สามารถนำมาใช้โดย

ทุกวันนี้smb encryptตัวเลือก "" ยังควบคุมการเข้ารหัสระดับ SMB ซึ่งเป็นส่วนหนึ่งของ SMB เวอร์ชัน 3.0 และใหม่กว่า ไคลเอนต์ Windows 8 (และใหม่กว่า) ควรเข้ารหัสทราฟฟิกด้วยการตั้งค่าเหล่านี้

คุณได้ลองใช้การตั้งค่าเดียวกัน ( smb encrypt = mandatoryใน[global]ส่วน) กับสมาชิกโดเมน Samba หรือเซิร์ฟเวอร์แบบสแตนด์อโลนหรือไม่

ตรวจสอบให้แน่ใจว่าได้ตั้งค่าไว้smb encrypt = autoใน[global]ส่วน (ไม่ใช่[profiles]ส่วน) จากนั้นยังมีการประกาศความพร้อมใช้งานทั่วไปของการเข้ารหัส



เป็นไปได้มากว่านี่เป็นข้อผิดพลาดใน Samba ดังนั้นนี้อาจจะมีการหารือเกี่ยวกับแซมบ้ารายชื่อผู้รับจดหมาย samba-technialหรือBugzilla แซมบ้า หากคุณใช้ Samba เวอร์ชัน Ubuntu คุณอาจต้องตรวจสอบหน้าแพ็คเกจด้วย ฉันสงสัยว่านี่เป็นปัญหาต้นน้ำแซมบ้าของแท้


7
ฉันได้อัปเดตหน้าคู่มือในพื้นที่เก็บข้อมูลหลักของ Samba เพื่ออธิบายความหมายที่แตกต่างของsmb encryptSMB2 และSMB3 : ( git.samba.org/… )
Michael Adam

4

นี่เป็นคุณสมบัติใหม่ที่นำมาใช้กับ Samba 3.2 ขึ้นไป เป็นส่วนขยายของโปรโตคอล SMB / CIFS ซึ่งเป็นส่วนหนึ่งของส่วนขยาย UNIX การเข้ารหัส SMB ใช้ความสามารถ GSSAPI (SSPI บน Windows) เพื่อเข้ารหัสและลงนามทุกคำขอ / ตอบกลับในสตรีมโปรโตคอล SMB เมื่อเปิดใช้งานจะมีวิธีการที่ปลอดภัยของการสื่อสาร SMB / CIFS คล้ายกับเซสชันที่ได้รับการป้องกันของ ssh แต่ใช้การตรวจสอบความถูกต้อง SMB / CIFS เพื่อเจรจาการเข้ารหัสและการลงนามกุญแจ ปัจจุบันนี้รองรับเฉพาะ Samba 3.2 smbclient และหวังว่าเร็ว ๆ นี้ลูกค้า Linux CIFSFS และ MacOS / XWindows clients do not support this feature.

สิ่งนี้จะควบคุมว่าไคลเอนต์ระยะไกลได้รับอนุญาตหรือจำเป็นต้องใช้การเข้ารหัส SMB ค่าที่เป็นไปได้คืออัตโนมัติบังคับและปิดการใช้งาน สิ่งนี้อาจถูกตั้งค่าบนพื้นฐานต่อการแบ่งปัน แต่ลูกค้าอาจเลือกที่จะเข้ารหัสเซสชันทั้งหมดไม่เพียง แต่การรับส่งข้อมูลไปยังการแบ่งปันที่เฉพาะเจาะจง หากการตั้งค่านี้บังคับให้ต้องรับการรับส่งข้อมูลทั้งหมดไปยังการแชร์เมื่อการเชื่อมต่อถูกแชร์ไปแล้ว เซิร์ฟเวอร์จะส่งคืน "การเข้าถึงถูกปฏิเสธ" ให้กับคำขอที่ไม่ได้เข้ารหัสทั้งหมดในการแชร์ดังกล่าว การเลือกทราฟฟิกที่เข้ารหัสจะลดทรูพุตเนื่องจากต้องใช้ขนาดแพ็คเก็ตที่เล็กกว่า (ไม่อนุญาตให้อ่าน / เขียนสไตล์ UNIX ขนาดใหญ่) รวมถึงค่าใช้จ่ายในการเข้ารหัสและเซ็นชื่อข้อมูลทั้งหมด

หากเลือกการเข้ารหัส SMB การลงชื่อ SMB แบบ Windows (ดูตัวเลือกการลงชื่อเซิร์ฟเวอร์) ไม่จำเป็นอีกต่อไปเนื่องจากการตั้งค่าสถานะ GSSAPI ใช้เลือกทั้งการเซ็นชื่อและการปิดผนึกข้อมูล

เมื่อตั้งค่าเป็นอัตโนมัติจะมีการเข้ารหัส SMB แต่ไม่บังคับใช้ เมื่อตั้งค่าเป็นข้อบังคับจำเป็นต้องใช้การเข้ารหัส SMB และหากตั้งค่าเป็นปิดใช้งานการเข้ารหัส SMB จะไม่สามารถต่อรองได้

เริ่มต้น: smb เข้ารหัส = อัตโนมัติ

ที่มา: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html


ขออภัยฉันสามารถอ่าน man page ได้ด้วยตนเอง เกี่ยวกับข้อความที่คุณไฮไลต์: บางหน้าเช่นblogs.technet.com/b/filecab/archive/2012/05/03/…ระบุว่า Win 8 สามารถทำการเข้ารหัส SMB ได้ ตามที่เขียนไว้ที่ด้านบนของหน้านั้น: "ทุกอย่างที่นี่ใช้ได้กับ Windows 8" ข้อมูลนั้นผิดหรือเปล่า?
Kai Petzke

หรือคุณสามารถใช้ Windows Server 2012 ซึ่งรองรับการรับส่งข้อมูล smb ที่เข้ารหัสไว้
integratorIT

แต่นั่นไม่จำเป็นต้องใช้ Windows Server edition กับลูกค้าทุกคนใช่ไหม
Kai Petzke
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.