จะบังคับโปรโตคอล SMB2 ใน samba ได้อย่างไร


13

สำหรับเหตุผลด้านความปลอดภัยฉันต้องการที่จะปิดการใช้งานโปรโตคอล SMB1 sambaใน เป็นไปได้ไหม? ฉันใช้ Ubuntu 14.04 LTS

คำตอบ:


9

การทดสอบกับ Nessus ของฉันระบุว่า SMBv1 ถูกปิดใช้งานเมื่อตั้งค่าเท่านั้น

min protocol = SMB2

ในส่วน [ส่วนกลาง] ของ smb.conf Core, LANMAN2 และ NT1 ยังคงถูกตั้งค่าสถานะว่าเป็นช่องโหว่


1
ขอบคุณสิ่งนี้ช่วยได้ เป็นเพียงหมายเหตุสำหรับคนอื่น ๆ : ไฟล์การกำหนดค่าsmb.confอยู่ใน/etc/samba/Ubuntu 12
ConvexMartian

4
สำหรับผู้อ่านในอนาคต: ใช้งานได้กับเซิร์ฟเวอร์เนื่องจากmin protocol"เป็นคำพ้องความหมายสำหรับserver min protocol" ( samba.org/samba/docs/man/manpages-3/ ...... ) นอกจากนี้ยังมีclient min protocolซึ่งช่วยให้ลูกค้าหลีกเลี่ยง SMB1 หากเซิร์ฟเวอร์ยังคงสนับสนุน
Jan D

1
อย่าลืมรีสตาร์ทบริการหลังจากนั้น: CentOS 7 / RHEL 7 / Fedora Linux: $ sudo systemctl รีสตาร์ท smb.service Debian 8.x / Ubuntu 16.04 LTS Linux: $ sudo systemctl รีสตาร์ท smbd.service
Jack Wire

ฉันพบข้อผิดพลาดการละเว้นค่าที่ไม่ถูกต้อง 'SMB2' สำหรับพารามิเตอร์ 'โพรโทคอลขั้นต่ำ' ฉันใช้ Samba 3.4.9
josircg

1
@josircg SMB2 ได้รับการสนับสนุนเป็นครั้งแรกใน 3.6.0
kbulgrien

5

ฉันต้องเพิ่มสิ่งนี้เพื่อให้มันทำงานในอูบุนตูเซิร์ฟเวอร์เก่าของฉัน เมื่อเปิดใช้งาน SMBv1 การรวมกันของ min / max-max แต่ทั้งคู่ทำงานได้ดี

[global]
min protocol = SMB2                                                                                 
max protocol = SMB2                                                                                 
client min protocol = SMB2
client max protocol = SMB2

1
ใช้งานได้กับหน้าต่าง "CentOS 6" ซึ่งไม่ได้เกิดขึ้นอีกต่อไป "คุณไม่สามารถเชื่อมต่อกับแชร์ไฟล์ได้เพราะไม่ปลอดภัย"
Neil

สิ่งนี้ยังใช้งานได้เมื่อพยายามติดตั้งจาก OSX High Sierra เพียงแค่ใช้โพรโทคอลขั้นต่ำจะไม่อนุญาตให้ฉันเชื่อมต่อ
user545424

2

ในขณะที่ฉันไม่แน่ใจว่าที่ SMB1 เหมาะสมใน (เดาของฉันคือ CORE) นี่คือคำสั่งของโปรโตคอลจาก "man smb.conf"

   max protocol (G)
       The value of the parameter (a string) is the highest protocol level that will be supported by the server.
       Possible values are :
       ·   CORE: Earliest version. No concept of user names.
       ·   COREPLUS: Slight improvements on CORE for efficiency.
       ·   LANMAN1: First
            modern version of the protocol. Long filename support.
       ·   LANMAN2: Updates to Lanman1 protocol.
       ·   NT1: Current up to date version of the protocol. Used by Windows NT. Known as CIFS.
       ·   SMB2: Re-implementation of the SMB protocol. Used by Windows Vista and newer.

   min protocol (G)
       The value of the parameter (a string) is the lowest SMB protocol dialect than Samba will support. Please refer to the max
       protocol parameter for a list of valid protocol names and a brief description of each. You may also wish to refer to the C
       source code in source/smbd/negprot.c for a listing of known protocol dialects supported by clients.
       If you are viewing this parameter as a security measure, you should also refer to the lanman auth parameter. Otherwise, you
       should never need to change this parameter.
       Default: min protocol = CORE
       Example: min protocol = NT1

1

ฉันคิดว่าฉันจัดการเพื่อปิดการใช้งานโปรโตคอล SMB1 ด้วยสองบรรทัดเหล่านี้ใน[global]ส่วน:

min protocol = LANMAN2
max protocol = SMB3

ฉันยังไม่แน่ใจอย่างสมบูรณ์เกี่ยวกับลำดับของโปรโตคอลใน Samba แต่ฉันค่อนข้างมั่นใจว่าLANMAN2หลังจากSMB1นั้น


คริสเตียนเอ็มชี้ว่านี่ไม่ใช่คำตอบที่ถูกต้อง
Simen

ตกลง ดังนั้นมันจะดีกว่าถ้าผมตรวจสอบอีกครั้งกำหนดค่าแซมบ้าของฉัน ...
Avio

1

ฉันคิดว่าสิ่งที่คุณกำลังมองหาในไฟล์ smb.conf คือ:

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