แซมบ้า (ซอฟต์แวร์)
Sambaเป็นซอฟต์แวร์ฟรีที่ใช้โปรโตคอลเครือข่ายSMB และได้รับการพัฒนาครั้งแรกโดยAndrew Tridgell Samba ให้บริการไฟล์และการพิมพ์ สำหรับ ไคลเอ็นต์Microsoft Windowsต่างๆ[ 5 ]และสามารถผสานรวมกับโดเมน Microsoft Windows Serverได้ ไม่ว่าจะเป็นตัวควบคุมโดเมน (DC) หรือสมาชิกโดเมน ตั้งแต่เวอร์ชัน 4 เป็นต้นไป ยังรองรับ โดเมน Active Directoryนอกเหนือจากการรองรับโดเมน Microsoft Windows NT แบบดั้งเดิมอีกด้วย
Samba สามารถทำงานได้บน ระบบปฏิบัติการ ที่คล้าย Unix ส่วนใหญ่ เช่นLinux , Solaris , AIXและระบบ ปฏิบัติการตระกูล BSDรวมถึง Apple macOS ( Mac OS X 10.2ขึ้นไป) และmacOS Serverนอกจากนี้ Samba ยังทำงานบนระบบปฏิบัติการอื่นๆ อีกหลายระบบ เช่นOpenVMSและIBM i Samba เป็นมาตรฐานใน Linux เกือบทุกเวอร์ชัน และมักถูกรวมเป็นบริการระบบ พื้นฐาน ในระบบปฏิบัติการที่ใช้ Unix อื่นๆ ด้วย Samba เผยแพร่ภายใต้เงื่อนไขของGNU General Public Licenseชื่อSambaมาจาก SMB ( Server Message Block ) ซึ่งเป็นชื่อของโปรโตคอลเฉพาะที่ใช้โดยระบบไฟล์เครือข่ายของ Microsoft Windows
ประวัติศาสตร์ยุคแรก
แอนดรูว์ ทริดเจลล์พัฒนา Samba Unix เวอร์ชันแรกในเดือนธันวาคม 1991 และมกราคม 1992 ขณะเป็นนักศึกษาปริญญาเอกที่มหาวิทยาลัยแห่งชาติออสเตรเลียโดยใช้ โปรแกรม ดักจับแพ็กเก็ตเพื่อวิเคราะห์เครือข่ายของโปรโตคอลที่ใช้โดย ซอฟต์แวร์เซิร์ฟเวอร์ DEC Pathworksในขณะที่เวอร์ชันแรก ๆ ที่วางจำหน่าย (เวอร์ชัน 0.1, 0.5 และ 1.0) ในช่วงครึ่งแรกของเดือนมกราคม 1992 ยังไม่มีชื่ออย่างเป็นทางการ ทริดเจลล์เรียกมันว่า "เซิร์ฟเวอร์ไฟล์ Unix สำหรับ Dos Pathworks" เขาเข้าใจว่า "ที่จริงแล้วเขาได้นำโปรโตคอล netbios มาใช้งาน" ในเวอร์ชัน 1.0 และ "ซอฟต์แวร์นี้สามารถใช้กับไคลเอ็นต์พีซีอื่น ๆ ได้"
ด้วยความมุ่งเน้นที่การทำงานร่วมกัน กับ LAN Managerของ Microsoft นั้น Tridgell ได้ออก "netbios for unix" เวอร์ชัน 1.5 ซึ่งเป็นเวอร์ชันแรกที่รวมซอฟต์แวร์ไคลเอ็นต์และเซิร์ฟเวอร์ไว้ด้วยกัน นอกจากนี้ ในเวลานั้นยังได้เลือกใช้ GPL2 เป็นใบอนุญาตอีกด้วย
ในช่วงกลางของซีรีส์ 1.5 ชื่อถูกเปลี่ยนเป็นsmbserverอย่างไรก็ตาม Tridgell ได้รับ การแจ้งเตือน เรื่องเครื่องหมายการค้าจากบริษัท "Syntax" ซึ่งจำหน่ายผลิตภัณฑ์ชื่อTotalNet Advanced Serverและเป็นเจ้าของเครื่องหมายการค้า "SMBserver" ชื่อ "Samba" มาจากการใช้คำสั่งgrep ของ Unix ค้นหาคำ ในพจนานุกรมระบบที่มีตัวอักษร S, M และ B ตามลำดับ (เช่น) [ 6 ]grep-i'^s.*m.*b'/usr/share/dict/words
เวอร์ชัน 1.6, 1.7, 1.8 และ 1.9 ตามมาอย่างรวดเร็ว โดยเวอร์ชันสุดท้ายออกวางจำหน่ายในเดือนมกราคม พ.ศ. 2538 Tridgell ถือว่าการนำCVS มาใช้ ในเดือนพฤษภาคม พ.ศ. 2539 ถือเป็นจุดเริ่มต้นของทีม Samba แม้ว่าจะมีการมีส่วนร่วมจากบุคคลอื่น โดยเฉพาะJeremy Allisonมาก่อนหน้านี้ก็ตาม[ 7 ]
เวอร์ชัน 2.0.0 ซึ่งวางจำหน่ายในเดือนมกราคม พ.ศ. 2542 เป็นเวอร์ชันหลักที่มีการปรับปรุงหลายอย่าง เช่น การรองรับการตรวจสอบสิทธิ์จาก Windows NT Primary Domain Controller, การรองรับระบบไฟล์ 64 บิตสำหรับไฟล์ขนาดใหญ่มาก และการเปิดเผย OPLOCKS ให้กับระบบ Unix เวอร์ชัน 2.2.0 วางจำหน่ายในเดือนเมษายน พ.ศ. 2544
ประวัติเวอร์ชัน
| วันที่ | เวอร์ชั่น | คำอธิบาย |
|---|---|---|
| 23 กันยายน 2546 | ไม่รองรับ: 3.0 | รองรับ Active Directory [ 8 ]ซีรี่ส์ 3.0.x สิ้นสุดการสนับสนุนอย่างเป็นทางการเมื่อวันที่ 5 สิงหาคม พ.ศ. 2552 [ 9 ] |
| 1 กรกฎาคม 2551 [ 10 ] | ไม่รองรับ: 3.2 | จะมีการอัปเดตตามความจำเป็นเฉพาะเรื่องความปลอดภัยเท่านั้น[ 11 ] [ 12 ]มีการเปลี่ยนแปลงใบอนุญาตจาก GPL2 เป็น GPL3 โดยบางส่วนเผยแพร่ภายใต้ LGPL3 [ 4 ]ซีรี่ส์ 3.2.x สิ้นสุดการสนับสนุนอย่างเป็นทางการเมื่อวันที่ 1 มีนาคม 2553 [ 10 ] |
| 27 มกราคม 2552 | ไม่รองรับ: 3.3 | |
| 3 กรกฎาคม 2552 | ไม่รองรับ: 3.4 | นี่เป็นการเผยแพร่ครั้งแรกที่รวมทั้งซอร์สโค้ดของ Samba 3 และ Samba 4 ไว้ด้วย[ 13 ] |
| 1 มีนาคม 2553 | ไม่รองรับ: 3.5 | นี่เป็นเวอร์ชันแรกที่รวมการสนับสนุนแบบทดลองสำหรับ SMB2 [ 14 ] |
| 9 สิงหาคม 2554 | ไม่รองรับ: 3.6 | นี่เป็นสาขาแรกที่รวมการสนับสนุน SMB2 อย่างเต็มรูปแบบ[ 15 ] |
| 11 ธันวาคม 2555 | ไม่รองรับ: 4.0 | การเขียนใหม่ครั้งใหญ่ที่ทำให้ Samba สามารถเป็นตัวควบคุมโดเมน Active Directory โดยมีส่วนร่วมอย่างเต็มที่ในโดเมน Windows Active Directory เวอร์ชันทดลองทางเทคนิคแรก (4.0.0TP1) เปิดตัวในเดือนมกราคม พ.ศ. 2549 หลังจากการพัฒนามา 3 ปี[ 16 ] [ 17 ] |
| 10 ตุลาคม 2556 | ไม่รองรับ: 4.1 | รองรับSMB3 |
| 4 มีนาคม 2558 | ไม่รองรับ: 4.2 | การบีบอัดไฟล์ตาม Btrfs , สแนปช็อต และการรวมwinbind [ 18 ] |
| 8 กันยายน 2558 | ไม่รองรับ: 4.3 | คุณสมบัติการบันทึกใหม่ รองรับ SMB 3.1.1 [ 19 ] |
| 22 มีนาคม 2559 | ไม่รองรับ: 4.4 | คำขอการล้างแบบอะซิงโครนัส[ 20 ] |
| 7 กันยายน 2559 | ไม่รองรับ: 4.5 | NTLM v1 ถูกปิดใช้งานโดยค่าเริ่มต้น, มุมมองรายการเสมือน (Virtual List View), การปรับปรุงประสิทธิภาพต่างๆ |
| 7 มีนาคม 2560 | ไม่รองรับ: 4.6 | รองรับการเข้าสู่ระบบ Netlogonแบบหลายกระบวนการ |
| 21 กันยายน 2560 | ไม่รองรับ: 4.7 | Samba AD ร่วมกับMIT Kerberos |
| 13 มีนาคม 2561 | ไม่รองรับ: 4.8 | รองรับ Apple Time Machineการตั้งค่าที่ใช้โหมดความปลอดภัย 'domain' หรือ 'ads' ตอนนี้ต้องใช้ 'winbindd' ในการทำงาน[ 21 ] |
| 13 กันยายน 2561 | ไม่รองรับ: 4.9 | มีการเปลี่ยนแปลงหลายอย่าง[ 22 ] |
| 19 มีนาคม 2562 | ไม่รองรับ: 4.10 | |
| 17 กันยายน 2562 | ไม่รองรับ: 4.11 | โดยค่าเริ่มต้น SMB1 ถูกปิดใช้งานเพื่อเป็นการบรรเทาผลกระทบจากช่องโหว่WannaCry |
| 3 มีนาคม 2563 | ไม่รองรับ: 4.12 | |
| 22 กันยายน 2020 | ไม่รองรับ: 4.13 | Samba 4.13 เพิ่มเวอร์ชันขั้นต่ำของ Python เป็น 3.6 |
| 9 มีนาคม 2564 | ไม่รองรับ: 4.14 | การปรับปรุงระบบย่อย VFS ครั้งใหญ่และอื่นๆ[ 23 ] |
| 20 กันยายน 2021 | ไม่รองรับ: 4.15 | มีการเปลี่ยนแปลงหลายอย่าง[ 24 ] |
| 21 มีนาคม 2565 | ไม่รองรับ: 4.16 | มีการเปลี่ยนแปลงหลายอย่าง[ 25 ] |
| 13 กันยายน 2565 | ไม่รองรับ: 4.17 | มีการเปลี่ยนแปลงหลายอย่าง[ 26 ] |
| 8 มีนาคม 2566 | ไม่รองรับ: 4.18 | มีการเปลี่ยนแปลงหลายอย่าง[ 27 ] |
| 4 กันยายน 2023 | ไม่รองรับ: 4.19 | มีการเปลี่ยนแปลงหลายอย่าง[ 28 ] |
| 27 มีนาคม 2567 | รองรับเวอร์ชัน: 4.20 | มีการเปลี่ยนแปลงหลายอย่าง[ 29 ] |
| 2 กันยายน 2567 | รองรับเวอร์ชัน: 4.21 | มีการเปลี่ยนแปลงหลายอย่าง[ 30 ] |
| 6 มีนาคม 2568 | รองรับเวอร์ชัน: 4.22 | รองรับการเช่าไดเร็กทอรี SMB3, สามารถทำการ Ping ของ Netlogon ผ่าน LDAP และ LDAPS ได้, การตรวจสอบสิทธิ์ Himmelblau แบบทดลองสำหรับ Azure Entra ID, การปรับปรุงประสิทธิภาพ, ลบคุณสมบัติการเข้าสู่ระบบพร็อกซี nmbd ออก[ 31 ] |
| 12 กันยายน 2568 | รองรับเวอร์ชัน: 4.23 | มีการเปลี่ยนแปลงหลายอย่าง[ 32 ] |
| 18 มีนาคม 2569 | เวอร์ชันล่าสุด: 4.24 | มีการเปลี่ยนแปลงหลายอย่าง[ 33 ] |
ความปลอดภัย
Samba บางเวอร์ชัน 3.6.3 และต่ำกว่านั้นประสบปัญหาด้านความปลอดภัยร้ายแรง ซึ่งอาจทำให้ผู้ใช้ที่ไม่ระบุตัวตนสามารถเข้าถึง สิทธิ์ ระดับรูท ในระบบได้จากการเชื่อมต่อที่ไม่ระบุตัวตน ผ่านการใช้ประโยชน์จากข้อผิดพลาดใน การเรียกใช้ขั้นตอนระยะไกลของ Samba [ 34 ]
เมื่อวันที่ 12 เมษายน 2559 Badlock [ 35 ]ซึ่งเป็นช่องโหว่ด้านความปลอดภัยที่สำคัญใน Windows และ Samba ได้ถูกเปิดเผย Badlock สำหรับ Samba ถูกอ้างอิงโดย CVE-2016-2118 (การโจมตีแบบ man in the middle ของ SAMR และ LSA เป็นไปได้) [ 36 ]
เมื่อวันที่ 24 พฤษภาคม 2560 มีการประกาศว่าพบช่องโหว่การเรียกใช้โค้ดจากระยะไกลใน Samba ชื่อEternalRedหรือSambaCryซึ่งส่งผลกระทบต่อทุกเวอร์ชันตั้งแต่ 3.5.0 เป็นต้นไป[ 37 ]ช่องโหว่นี้ได้รับการกำหนดรหัส CVE-2017-7494 [ 37 ] [ 38 ]
เมื่อวันที่ 14 กันยายน 2020 มี การเผยแพร่การโจมตีแบบพิสูจน์แนวคิด สำหรับ ช่องโหว่ netlogon ที่เรียกว่าZerologon (CVE-2020-1472) ซึ่ง มี แพทช์ออกมาตั้งแต่เดือนสิงหาคม[ 39 ]หน่วยงานรัฐบาลกลางบางแห่งที่ใช้ซอฟต์แวร์นี้ได้รับคำสั่งให้ติดตั้งแพทช์[ 40 ]
คุณสมบัติ
Samba ช่วยให้สามารถแชร์ไฟล์และเครื่องพิมพ์ระหว่างคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Microsoft Windows และคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Unix ได้ Samba เป็นการนำบริการและโปรโตคอลต่างๆ มาใช้มากมาย รวมถึง:
- NetBIOSผ่านTCP/IP ( NBT )
- SMB (หรือที่รู้จักในชื่อ CIFS ในบางเวอร์ชัน)
- Samba รองรับส่วนขยาย POSIX สำหรับ CIFS/SMB ส่วนขยายเริ่มต้นคือ CIFS VFS (CAP_UNIX) ตั้งแต่ปี 2004 ซึ่งถูกแทนที่บางส่วนโดย SMB3 [ 41 ]
- DCE/RPCหรือโดยเฉพาะอย่างยิ่งMSRPCซึ่งเป็นชุดโปรโตคอล Network Neighborhood
- เซิร์ฟเวอร์WINSหรือที่รู้จักกันในชื่อ NetBIOS Name Server (NBNS)
- ชุดโปรโตคอล NT Domain ซึ่งรวมถึงการเข้าสู่ระบบ NT Domain
- ฐานข้อมูล ผู้จัดการบัญชีความปลอดภัย (SAM)
- บริการของ หน่วยงานรักษาความปลอดภัยท้องถิ่น (LSA)
- บริการพิมพ์แบบ NT (SPOOLSS)
- เอ็นทีแอลเอ็ม
- การเข้าสู่ระบบ Active Directory โดยใช้ KerberosและLDAPเวอร์ชันที่ดัดแปลง
- เซิร์ฟเวอร์DFS
บริการและโปรโตคอลเหล่านี้มักถูกเรียกอย่างไม่ถูกต้องว่า NetBIOS หรือ SMB เฉยๆ โปรโตคอล NBT (NetBIOS over TCP/IP) และ WINS รวมถึงโปรโตคอล SMB เวอร์ชัน 1 ที่อยู่เบื้องหลังนั้น ถูกยกเลิกการใช้งานบน Windows แล้ว ตั้งแต่Windows Vista เป็นต้นมา โปรโตคอลWS-Discoveryได้ถูกรวมเข้าไว้กับ SMB2 และรุ่นต่อๆ มา ซึ่งเข้ามาแทนที่โปรโตคอลเหล่านี้ (WS-Discovery ถูกนำไปใช้บน แพลตฟอร์ม ที่คล้าย Unixโดยโปรแกรมเบื้องหลังของ บุคคลที่สาม ซึ่งช่วยให้สามารถค้นหาไฟล์ที่แชร์ใน Samba ได้เมื่อปิดใช้งานโปรโตคอลที่ถูกยกเลิกการใช้งาน)
Samba จะตั้งค่าการแชร์เครือข่าย สำหรับ ไดเร็กทอรี Unix ที่เลือก(รวมถึงไดเร็กทอรีย่อยทั้งหมดที่อยู่ภายใน) ผู้ใช้ Microsoft Windows จะเห็นไดเร็กทอรีเหล่านี้เหมือนกับโฟลเดอร์ Windows ทั่วไปที่สามารถเข้าถึงได้ผ่านเครือข่าย ส่วนผู้ใช้ Unix สามารถเมานต์การแชร์โดยตรงเป็นส่วนหนึ่งของโครงสร้างไฟล์โดยใช้mount.cifsคำสั่ง หรืออีกทางเลือกหนึ่งคือสามารถใช้ยูทิลิตี้smbclient(libsmb) ที่ติดตั้งมาพร้อมกับ Samba เพื่ออ่านการแชร์ด้วยอินเทอร์เฟซที่คล้ายกับ โปรแกรม FTP บรรทัดคำสั่งมาตรฐาน แต่ละไดเร็กทอรีสามารถมีสิทธิ์การเข้าถึงที่แตกต่างกันได้ โดยเพิ่มเติมจากระบบป้องกันไฟล์ Unix ปกติ ตัวอย่างเช่น ไดเร็กทอรีโฮมจะมีสิทธิ์อ่าน/เขียนสำหรับผู้ใช้ที่รู้จักทั้งหมด ทำให้แต่ละคนสามารถเข้าถึงไฟล์ของตนเองได้ อย่างไรก็ตาม พวกเขาจะไม่สามารถเข้าถึงไฟล์ของผู้อื่นได้ เว้นแต่ จะมี สิทธิ์ นั้น อยู่แล้ว โปรดทราบว่าการแชร์ netlogon ซึ่งโดยทั่วไปจะแจกจ่ายเป็นการแชร์แบบอ่านอย่างเดียวจาก/etc/samba/netlogonคือไดเร็กทอรีล็อกอินสำหรับสคริปต์การล็อกอินของผู้ใช้
บริการ Samba ถูกใช้งานในรูปแบบของโปรแกรมเบื้องหลัง สองตัว :
- smbd ซึ่งให้บริการแชร์ไฟล์และเครื่องพิมพ์ และ
- nmbd คือโปรแกรมที่ให้บริการแปลงชื่อ NetBIOS เป็นที่อยู่ IP การใช้งาน NetBIOS ผ่าน TCP/IP จำเป็นต้องมีวิธีการบางอย่างในการแมปชื่อคอมพิวเตอร์ NetBIOS กับที่อยู่ IP ของเครือข่าย TCP/IP
การกำหนดค่า Samba ทำได้โดยการแก้ไขไฟล์เดียว (โดยทั่วไปจะติดตั้งเป็น/etc/smb.confหรือ/etc/samba/smb.conf) นอกจากนี้ Samba ยังสามารถจัดเตรียมสคริปต์การเข้าสู่ระบบของผู้ใช้และการใช้งานนโยบายกลุ่มผ่านทาง ได้poleditอีก ด้วย
Samba รวมอยู่ในระบบปฏิบัติการ Linux ส่วนใหญ่และจะเริ่มต้นระหว่างกระบวนการบูต ตัวอย่างเช่น ใน Red Hat /etc/rc.d/init.d/smbสคริปต์จะทำงานเมื่อบูตเครื่องและเริ่มต้นทั้งสอง daemon Samba ไม่ได้รวมอยู่ใน Solaris 8 แต่มีเวอร์ชันที่เข้ากันได้กับ Solaris 8 ให้ดาวน์โหลดได้จากเว็บไซต์ Samba ArcaOSที่ใช้OS/2มี Samba เพื่อทดแทนซอฟต์แวร์IBM LAN Server รุ่นเก่า [ 42 ]
Samba เวอร์ชันก่อนหน้ามีเครื่องมือบริหารจัดการเว็บที่เรียกว่าSamba Web Administration Tool (SWAT) [ 43 ] [ 44 ] ซึ่งถูกลบออกตั้งแต่เวอร์ชัน 4.1 เป็นต้นไป[ 45 ]
แซมบ้า ทีเอ็นจี
Samba TNG (The Next Generation) แยกตัวออกมาในช่วงปลายปี 1999 หลังจากเกิดความขัดแย้งระหว่างผู้นำทีม Samba และ Luke Leighton เกี่ยวกับทิศทางของโครงการ Samba พวกเขาไม่สามารถตกลงกันได้เกี่ยวกับเส้นทางการเปลี่ยนผ่านการพัฒนา ซึ่งทำให้เวอร์ชันวิจัยของ Samba ที่เขากำลังพัฒนา (ซึ่งในขณะนั้นรู้จักกันในชื่อ Samba-NTDOM) ค่อยๆ ถูกรวมเข้ากับ Samba [ 46 ]การพัฒนาเป็นไปอย่างจำกัดเนื่องจากขาดนักพัฒนา ทีม Samba TNG มักแนะนำผู้ใช้ที่มีศักยภาพให้ไปใช้ Samba เนื่องจากมีการสนับสนุนและการพัฒนาที่ดีกว่า[ 47 ]
เป้าหมายหลักของโครงการ Samba TNG คือการเขียนบริการ NT Domains ทั้งหมดใหม่เป็นโครงการFreeDCE [ 48 ]ซึ่งทำได้ยากเนื่องจากบริการเหล่านี้ได้รับการพัฒนาด้วยตนเองผ่านการวิศวกรรมย้อนกลับเครือข่าย โดยมีการอ้างอิงถึงเอกสาร DCE/RPC เพียงเล็กน้อยหรือไม่เลย
ความแตกต่างที่สำคัญจาก Samba คือวิธีการใช้งานชุดโปรโตคอล NT Domains และ บริการ MSRPC Samba ทำให้บริการ NT Domains ทั้งหมดพร้อมใช้งานได้จากที่เดียว ในขณะที่ Samba TNG แยกแต่ละบริการออกเป็นโปรแกรมของตัวเอง
ReactOSเริ่มใช้บริการ Samba TNG สำหรับการใช้งาน SMB นักพัฒนาของทั้งสองโครงการต่างสนใจที่จะเห็นการออกแบบ Samba TNG ถูกนำมาใช้เพื่อช่วยให้ ReactOS สามารถสื่อสารกับเครือข่าย Windows ได้ พวกเขาทำงานร่วมกันเพื่อปรับโค้ดเครือข่ายและระบบการสร้าง แนวทางแบบหลายชั้นและแบบโมดูลาร์ทำให้ง่ายต่อการย้ายบริการแต่ละรายการไปยัง ReactOS [ 49 ]
ปัจจุบัน Samba TNG ดูเหมือนจะถูกทิ้งร้างและไม่มีการบำรุงรักษา เว็บไซต์ของพวกเขาปิดให้บริการแล้ว โดยมีคลังเก็บข้อมูลที่ใช้งานได้ตั้งแต่ปี 2016 [ 50 ]การเผยแพร่ครั้งสุดท้ายของ ReactOS คือในปี 2009
ดูเพิ่มเติม
หมายเหตุ
- ↑ GPL-3.0 หรือเวอร์ชันที่ใหม่กว่าและ LGPL-3.0 หรือเวอร์ชันที่ใหม่กว่าตั้งแต่ 2008-07-01 เวอร์ชัน 3.2.0 [ 3 ] [ 4 ]
- ↑ GPL-2.0 หรือเวอร์ชันที่ใหม่กว่าตั้งแต่ปี 1993 เวอร์ชัน 1.5 จนถึงวันที่ 1 ตุลาคม 2009 เวอร์ชัน 3.0.37
- ↑เป็นกรรมสิทธิ์เฉพาะตั้งแต่ปี 1992 ถึง 1993
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ