บอกแล้วว่าอย่าไปแซวคนใช้ Windows Server แล้วออกตัวว่าใช้ Samba บนลีนุกซ์จะปลอดภัย
ล่าสุดมีการแจ้งเตือนว่า Samba ที่ใช้งานกันอยู่ ตั้งแต่เวอร์ชัน 3.5 มีช่องโหว่อันตราย ที่ทำให้เครื่องอื่นสามารถรีโมทมารันโค้ด (exploit) ด้วยสิทธิ์ root ได้
มาดูวิธีการแก้ไขปัญหากัน
คำเตือน ทดสอบบนเครื่องทดลองให้แน่ใจก่อน แล้วค่อยแก้ไขบนเครื่องเซิร์ฟเวอร์ที่ใช้งานจริง
การแก้ไขปัญหามีอยู่ 2 อย่าง คืออัพเดทตัว Samba ให้เป็นเวอร์ชันล่าสุด และแก้ไขคอนฟิกของ Samba
การอัพเดทตัว Samba ขึ้นอยู่กับเวอร์ชันลีนุกซ์ที่คุณใช้งานอยู่ ถ้า Distribution ที่คุณใช้ มีแพ็คเกจอัพเดทออกมาแล้ว ก็รันคำสั่ง update ได้เลย
โดยในที่นี้จะลองบน CentOS 6 ซึ่งมีแพ็คเกจอัพเดทออกมาแล้ว
แต่ถ้ายังไม่มีเวอร์ชันอัพเดทออกมา เบื้องต้นแนะนำให้แก้ไขคอนฟิก smb.conf เพื่อปิดการใช้งาน nt pipe support
อัพเดทเวอร์ชัน samba
ใช้คำสั่ง rpm เพื่อดูเวอร์ชันของแพ็คเกจก่อนจะอัพเดท
[root@centos-6 ~]# rpm -qa | grep samba samba-winbind-clients-3.6.23-42.el6_9.x86_64 samba-3.6.23-42.el6_9.x86_64 samba-doc-3.6.23-42.el6_9.x86_64 samba-winbind-3.6.23-42.el6_9.x86_64 samba-common-3.6.23-42.el6_9.x86_64 samba-client-3.6.23-42.el6_9.x86_64
รันคำสั่ง yum update โดยระบุเฉพาะชื่อแพ็คเกจ samba
[root@centos-6 ~]# yum update samba
ตรวจสอบเวอร์ชันแพ็คเกจหลังการอัพเดท สังเกตตัวเลขเวอร์ชันจะเปลี่ยนไป
[root@centos-6 ~]# rpm -qa | grep samba samba-winbind-clients-3.6.23-43.el6_9.x86_64 samba-3.6.23-43.el6_9.x86_64 samba-doc-3.6.23-43.el6_9.x86_64 samba-common-3.6.23-43.el6_9.x86_64 samba-winbind-3.6.23-43.el6_9.x86_64 samba-client-3.6.23-43.el6_9.x86_64
รีสตาร์ตเซอร์วิส smb
[root@centos-6 ~]# service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ]
แก้ไขไฟล์คอนฟิก smb.conf
ดีฟอลต์คอนฟิกของ samba จะเปิดออปชัน nt pipe support ไว้
[root@centos-6 ~]# testparm -v | grep "nt pipe support"
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
nt pipe support = Yes
เพื่อป้องกันปัญหานี้ เราจะใส่บรรทัดคอนฟิกเพิ่มเติม ในส่วนของ [global] โดยคอนฟิกค่า nt pipe support เป็น no
คำเตือน ทดสอบให้แน่ใจว่าคุณไม่ได้ใช้คุณสมบัตินี้ รายละเอียดดูได้จาก man smb.conf
[root@centos-6 ~]# vi /etc/samba/smb.conf
...
[global]
nt pipe support = no
รีสตาร์ตเซอร์วิส smb
[root@centos-6 ~]# service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ]
เท่านี้ก็น่าจะพอบรรเทาปัญหาได้
ทางที่ดี คอยติดตามข่าวสารทางด้านความปลอดภัย