Contents

10 วิธีในการรักษาความปลอดภัยเซิร์ฟเวอร์ Samba ของคุณบน Linux

Contents

ประเด็นที่สำคัญ

เพื่อป้องกันการบุกรุกที่ไม่ได้รับอนุญาตและการโจมตีทางดิจิทัล ขอแนะนำให้เปิดใช้งานการเข้ารหัสสำหรับการสื่อสาร Small Computer System Interface (SMB) บนเซิร์ฟเวอร์ Samba บน Linux โดยใช้ Transport Layer Security (TLS)

เพื่อรักษาความปลอดภัยภายในเครือข่าย SAMBA สิ่งสำคัญคือต้องใช้มาตรการควบคุมการเข้าถึงที่เข้มงวดผ่านการใช้ไฟล์การกำหนดค่า’/etc/samba/smb.conf’ด้วยการกำหนดหลักเกณฑ์ที่ชัดเจนเกี่ยวกับการให้สิทธิ์ผู้ใช้ การตั้งค่าการอนุญาต และข้อจำกัดในการเข้าถึงทรัพยากร เราสามารถจำกัดบุคคลที่ไม่ได้รับอนุญาตไม่ให้เข้าถึงข้อมูลหรือระบบที่ละเอียดอ่อนได้อย่างมีประสิทธิภาพ

ขอแนะนำให้ใช้นโยบายรหัสผ่านที่แข็งแกร่งและโดดเด่นสำหรับบัญชีผู้ใช้ Small Business เพื่อเป็นมาตรการเสริมความปลอดภัย นอกจากนี้ จำเป็นอย่างยิ่งที่จะต้องอัปเกรดทั้งระบบ Linux และ Samba เป็นประจำเพื่อป้องกันภัยคุกคามที่อาจเกิดขึ้นและความพยายามในการแฮ็ก ในขณะเดียวกันก็ควบคุมไม่ให้ใช้โปรโตคอล SMBv1 ที่ล้าสมัยและไม่ปลอดภัย

เพื่อเพิ่มความปลอดภัยให้กับโครงสร้างพื้นฐานของคุณ ขอแนะนำให้คุณสร้างชุดกฎไฟร์วอลล์ซึ่งจะห้ามการเข้าถึงพอร์ต SMB โดยไม่ได้รับอนุญาต นอกจากนี้ การใช้การแบ่งส่วนเครือข่ายสามารถช่วยแยกทราฟฟิก SMB ออกจากเครือข่ายภายนอกใดๆ ที่ถือว่าเป็นอันตรายได้ ด้วยการตรวจสอบบันทึกกิจกรรม SMB อย่างใกล้ชิด พฤติกรรมที่ผิดปกติหรือเป็นอันตรายสามารถระบุและแก้ไขได้ทันที นอกจากนี้ ควรจำกัดการเข้าถึงของแขกและไม่อนุญาตให้ผู้ใช้ที่ไม่ระบุชื่อเชื่อมต่อกับทรัพยากรเหล่านี้

พิจารณาใช้การควบคุมการเข้าถึงเฉพาะโฮสต์เพื่อจำกัดการเข้าถึงโฮสต์เฉพาะ ในขณะที่จำกัดการเข้าถึงโดยไม่ได้รับอนุญาตจากผู้อื่น นอกจากนี้ ใช้มาตรการรักษาความปลอดภัยที่ได้รับการปรับปรุงเพื่อเสริมความแข็งแกร่งให้กับโครงสร้างพื้นฐานของเครือข่ายและหนุนความยืดหยุ่นของระบบที่ใช้ Linux ของคุณ

โปรโตคอล Server Message Block (SMB) ทำหน้าที่เป็นรากฐานสำหรับการแชร์ไฟล์และเครื่องพิมพ์ภายในระบบที่เชื่อมต่อถึงกัน อย่างไรก็ตาม การตั้งค่ามาตรฐานของ Samba นำเสนอภัยคุกคามด้านความปลอดภัยจำนวนมากที่อาจส่งผลต่อความสมบูรณ์ของเครือข่ายโดยการเปิดใช้งานรายการที่ไม่ผ่านการอนุมัติและการโจมตีทางไซเบอร์

เมื่อใช้งานเซิร์ฟเวอร์ Samba สิ่งสำคัญที่สุดคือการใช้ความระมัดระวังเมื่อกำหนดการตั้งค่า เพื่อป้องกันภัยคุกคามด้านความปลอดภัยที่อาจเกิดขึ้น ให้พิจารณาดำเนินการตามมาตรการสำคัญ 10 ประการที่จะรักษาความสมบูรณ์และการป้องกันของเซิร์ฟเวอร์ SMB ของคุณ

เปิดใช้งานการเข้ารหัสสำหรับการรับส่งข้อมูล SMB

การกำหนดค่ามาตรฐานของการรับส่งข้อมูล Server Message Block (SMB) ไม่เกี่ยวข้องกับการเข้ารหัส สิ่งนี้สามารถยืนยันได้ผ่านการใช้เครื่องมือเช่น tcpdump หรือ Wireshark ซึ่งจับแพ็กเก็ตเครือข่ายสำหรับการวิเคราะห์ ความสำคัญของการเข้ารหัสทราฟฟิก SMB ไม่สามารถพูดเกินจริงได้ เนื่องจากข้อมูลที่ไม่ได้เข้ารหัสทำให้เสี่ยงต่อการสกัดกั้นและตรวจสอบโดยบุคคลที่ไม่ได้รับอนุญาต

ขอแนะนำให้ใช้ Transport Layer Security (TLS) เพื่อรักษาความปลอดภัยและเข้ารหัสการสื่อสารของเซิร์ฟเวอร์ Linux Samba

ใช้การควบคุมการเข้าถึงที่เข้มงวดและการอนุญาตสำหรับทรัพยากรที่ใช้ร่วมกัน

เพื่อป้องกันการเข้าถึงทรัพยากรโดยไม่ได้รับอนุญาต ขอแนะนำให้ใช้มาตรการควบคุมการเข้าถึงที่เข้มงวดและการอนุญาตบนเครือข่าย ระบบ Samba ใช้ไฟล์การกำหนดค่าหลักซึ่งอยู่ที่ /etc/samba/smb.conf ซึ่งช่วยให้ผู้ดูแลระบบสามารถสร้างพารามิเตอร์ที่ควบคุมสิทธิ์การเข้าถึงและสิทธิพิเศษต่างๆ

ใช้วิธีการทางภาษาศาสตร์ขั้นสูง อาจพูดได้ว่าการใช้กฎไวยากรณ์เฉพาะ เป็นไปได้ที่จะแยกเนื้อหาที่ต้องการแบ่งปันระหว่างผู้ใช้ กำหนดให้บุคคลหรือกลุ่มเฉพาะเจาะจงมีสิทธิ์เข้าถึงทรัพยากรเหล่านี้ และพิจารณาว่าได้รับอนุญาตให้อ่านหรือไม่ จารึกหรือตรวจสอบเนื้อหาของสินทรัพย์ดังกล่าว ข้อมูลต่อไปนี้แสดงตัวอย่างทั่วไปของสัญลักษณ์ที่ใช้ในการประกาศทรัพยากรและกำหนดข้อจำกัดในการเข้าถึง:

 [sambashare]
comment= Samba Example
path = /home/your_username/sambashare
browseable = yes
writable = yes
valid users = @groupname

เราได้เพิ่มไดเร็กทอรีที่ใช้ร่วมกันใหม่ในพาธที่ระบุกับผู้ใช้ที่ได้รับอนุญาต ในขณะที่จำกัดการเข้าถึงการแชร์นี้ไว้เพียงกลุ่มเดียวเท่านั้น นี่เป็นเพียงตัวอย่างหนึ่งของการควบคุมและควบคุมการอนุญาตสำหรับทรัพยากรที่ใช้ร่วมกัน มีวิธีอื่นให้เลือกมากมาย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าโฟลเดอร์แชร์บนเครือข่ายโดยใช้ Samba บนระบบ Linux โปรดดูบทช่วยสอนที่ครอบคลุมในหัวข้อนี้

ใช้รหัสผ่านที่แข็งแกร่งและไม่ซ้ำใครสำหรับบัญชีผู้ใช้ SMB

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

คุณสามารถเร่งกระบวนการโดยใช้เครื่องมือสร้างรหัสผ่านเพื่อสร้างรหัสผ่านที่มีประสิทธิภาพ นอกจากนี้ ให้พิจารณาแก้ไขข้อมูลรับรองของคุณเป็นระยะๆ เพื่อลดโอกาสในการละเมิดข้อมูลและการป้อนข้อมูลโดยไม่ได้รับอนุญาต

อัปเดต Linux และ Samba เป็นประจำ

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

จากกรณีก่อนหน้านี้ที่ช่องโหว่รุนแรงใน SMB ปรากฏขึ้น ส่งผลให้เกิดการประนีประนอมต่อความสมบูรณ์ของระบบหรือการเปิดเผยข้อมูลที่ละเอียดอ่อน จึงจำเป็นต้องบำรุงรักษาระบบปฏิบัติการและบริการสำคัญใดๆ ที่ทำงานอยู่ในสถานะ การปรับปรุงปัจจุบัน

หลีกเลี่ยงการใช้โปรโตคอล SMBv1

/th/images/disabling-smbv1-in-samba-config.jpg

การใช้งาน SMBv1 ได้รับการระบุว่าเป็นช่องโหว่ด้านความปลอดภัย จำเป็นต้องหลีกเลี่ยงการใช้งานทั้งบนแพลตฟอร์ม Windows และ Linux เพื่อที่จะหลีกเลี่ยงการใช้งาน SMBv1 จะต้องรวมคำสั่งต่อไปนี้ไว้ในไฟล์การกำหนดค่าระบบ:

 min protocol = SMB2 

สิ่งนี้รับประกันว่าเวอร์ชันต่ำสุดของโปรโตคอล Server Message Block (SMB) ที่ใช้จะเป็น SMBv2

บังคับใช้กฎไฟร์วอลล์เพื่อจำกัดการเข้าถึงพอร์ต SMB

แก้ไขการตั้งค่าไฟร์วอลล์ของเครือข่ายของคุณเพื่ออนุญาตการเข้าถึงพอร์ต SMB (เช่น พอร์ต 139 และ 445) จากแหล่งที่เชื่อถือได้เท่านั้น เมื่อใช้มาตรการนี้ คุณสามารถจำกัดการเข้ามาโดยไม่ได้รับอนุญาต และลดโอกาสที่การโจมตีทางไซเบอร์จะใช้ประโยชน์จากโปรโตคอล Server Message Block จากแหล่งที่มาที่ไม่ระบุตัวตน

นอกจากนี้ ขอแนะนำให้ใช้ระบบตรวจจับการบุกรุก (IDS) ร่วมกับไฟร์วอลล์ที่แข็งแกร่งเพื่อเพิ่มความสามารถในการตรวจสอบและบันทึก หากไม่แน่ใจเกี่ยวกับตัวเลือกไฟร์วอลล์ที่เหมาะสมที่สุด ให้อ่านตัวเลือกไฟร์วอลล์ฟรีของ Linux ที่มีคะแนนสูงสุดเพื่อทำการตัดสินใจอย่างมีข้อมูล

ใช้การแบ่งส่วนเครือข่ายเพื่อแยกการรับส่งข้อมูล SMB จากเครือข่ายที่ไม่น่าเชื่อถือ

การแบ่งส่วนเครือข่ายเกี่ยวข้องกับกระบวนการแบ่งพาร์ติชันของเครือข่ายคอมพิวเตอร์ในรูปแบบเอกภาพแบบรวมเป็นหนึ่งเดียวออกเป็นส่วนประกอบที่แตกต่างกันหลายส่วน เรียกว่า ส่วนของเครือข่าย วัตถุประสงค์ของวิธีการนี้คือเพื่อเพิ่มความปลอดภัยโดยรวม ประสิทธิภาพ และความง่ายในการจัดการที่เกี่ยวข้องกับเครือข่ายที่เป็นปัญหา

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

เพื่อควบคุมการส่งข้อมูลผ่านส่วนต่างๆ ของเครือข่ายบนระบบ Linux ผู้ใช้อาจใช้ทรัพยากรที่เรียกว่า"iptables"หรือเครื่องมือที่เทียบเท่าสำหรับการจัดการโปรโตคอลความปลอดภัยเครือข่าย การดำเนินการตามหลักเกณฑ์เฉพาะทำให้สามารถแลกเปลี่ยนข้อมูลภายในโดเมน SMB ที่กำหนดได้ ในขณะเดียวกันก็ขัดขวางการถ่ายโอนข้อมูลอื่นๆ ทั้งหมด ด้วยวิธีการนี้ ความสมบูรณ์ของการสื่อสาร SMB สามารถรักษาได้โดยแยกออกจากสภาพแวดล้อมที่อาจเป็นอันตราย

ตรวจสอบบันทึก SMB สำหรับกิจกรรมที่น่าสงสัยและเหตุการณ์ด้านความปลอดภัย

/th/images/running-journalctl-command-to-view-logs.jpg

การตรวจสอบไฟล์บันทึกของ Small Business Server (SBS) สำหรับกิจกรรมที่ผิดปกติและการละเมิดความปลอดภัยถือเป็นส่วนสำคัญในการรักษาความสมบูรณ์ของโครงสร้างพื้นฐานของเครือข่าย ไฟล์บันทึกเหล่านี้จะบันทึกข้อมูลที่เกี่ยวข้องกับธุรกรรม Server Message Block (SMB) ซึ่งรวมถึงการรับรองความถูกต้องของผู้ใช้ การเข้าถึงไฟล์ ตลอดจนเหตุการณ์เพิ่มเติม ด้วยการเฝ้าติดตามบันทึกดังกล่าวอย่างสม่ำเสมอ ทำให้สามารถรับรู้ถึงความเสี่ยงด้านความปลอดภัยที่เป็นไปได้และใช้มาตรการป้องกันเพื่อตอบโต้

การใช้ระบบปฏิบัติการ Linux อาจใช้การใช้คำสั่ง"journalctl"ร่วมกับคำสั่ง"grep"เพื่อวัตถุประสงค์ในการวิเคราะห์ System Maintenance Logs (SML) กระบวนการนี้เกี่ยวข้องกับการไพพ์เอาต์พุตจากคำสั่งเดิมไปยังคำสั่งหลังเพื่อดึงข้อมูลเฉพาะหรือค้นหารูปแบบเฉพาะภายในข้อมูลบันทึก

 journalctl -u smbd.service 

คำสั่งที่ให้ไว้จะแสดงข้อมูลบันทึกที่เกี่ยวข้องกับ “smbd.service” ซึ่งเป็นบริการที่รับผิดชอบดูแลการจัดการการรับส่งข้อมูล SMB การใช้แฟล็ก"-f"ช่วยให้สามารถตรวจสอบการอัปเดตบันทึกได้พร้อมกัน ในขณะที่การปรับใช้แฟล็ก"-r"ช่วยให้สามารถจัดเรียงรายการด้วยรายการล่าสุดที่กำหนดตามความชอบ

ในการระบุตำแหน่งเหตุการณ์หรือแนวโน้มเฉพาะภายในไฟล์บันทึกของระบบโดยใช้ journalsctl เราสามารถใช้ grep ได้ โดยการกำหนดผลลัพธ์ผลลัพธ์จาก journalctl'ไปยัง grep ` บุคคลสามารถกรองและค้นหาข้อมูลที่เกี่ยวข้องที่เกี่ยวข้องกับเหตุการณ์หรือรูปแบบที่ระบุได้อย่างมีประสิทธิภาพ ตามภาพประกอบ เพื่อระบุกรณีของการพยายามเข้าสู่ระบบที่ไม่สำเร็จ คุณต้องใช้คำสั่งต่อไปนี้:

 journalctl -u smbd.service | grep -i "authentication failure" 

วิธีการดังกล่าวข้างต้นแสดงรายการบันทึกทั้งหมดที่ครอบคลุมสตริงของอักขระ"การตรวจสอบความถูกต้องล้มเหลว"ซึ่งช่วยอำนวยความสะดวกในการระบุพฤติกรรมที่ผิดปกติหรือความพยายามร่วมกันที่ตั้งใจให้เข้าถึงโดยไม่ได้รับอนุญาตผ่านกลยุทธ์การลองผิดลองถูกที่มากเกินไป

จำกัดการใช้การเข้าถึงของแขกและการเชื่อมต่อที่ไม่ระบุตัวตน

การให้สิทธิ์สำหรับการเข้าถึงที่ไม่ผ่านการรับรองความถูกต้องทำให้บุคคลสามารถสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ Samba ได้โดยไม่ต้องใช้ชื่อผู้ใช้หรือรหัสผ่าน ในขณะที่การเปิดใช้งานการเชื่อมต่อแบบไม่ระบุตัวตนจะอนุญาตให้ผู้ใช้เข้าสู่ระบบได้อย่างปลอดภัยโดยไม่ต้องส่งข้อมูลรับรองใดๆ เพื่อวัตถุประสงค์ในการตรวจสอบ

คุณลักษณะทั้งสองนี้แม้ว่าจะมีประโยชน์เมื่อใช้อย่างถูกต้อง แต่ก็สามารถนำเสนอช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นได้หากใช้งานไม่ถูกต้อง ดังนั้น ขอแนะนำให้ปิดการใช้งานโดยทำการปรับเปลี่ยนไฟล์การกำหนดค่า Samba อย่างเหมาะสม กระบวนการนี้เกี่ยวข้องกับการเพิ่มหรือแก้ไขหลายบรรทัดภายในส่วน"ส่วนกลาง"ของไฟล์"smb.conf"โดยเฉพาะอย่างยิ่ง หนึ่งควรรวมการเปลี่ยนแปลงต่อไปนี้:

 map to guest = never
restrict anonymous = 2 

ใช้ข้อ จำกัด ตามโฮสต์

โดยไม่คำนึงถึงการตั้งค่าเริ่มต้น เซิร์ฟเวอร์ Samba ที่ไม่จำกัดจะอนุญาตการเชื่อมต่อจากที่อยู่ IP ใดก็ได้ ควรสังเกตว่า"การเข้าถึง"ในบริบทนี้หมายถึงการสร้างการเชื่อมต่อมากกว่าการเข้าถึงทรัพยากรโดยตรง

ในการให้สิทธิ์สำหรับชื่อโฮสต์บางชื่อในขณะที่ห้ามการเข้าถึงสำหรับชื่ออื่นทั้งหมด การใช้คำสั่ง"โฮสต์อนุญาต"และ"โฮสต์ปฏิเสธ"ภายในไฟล์การกำหนดค่าของคุณเป็นแนวทางที่เหมาะสม ด้านล่างนี้แสดงรูปแบบที่จำเป็นสำหรับการนำข้อจำกัดเหล่านี้ไปใช้:

 hosts allow = 127.0.0.1 192.168.1.0/24
hosts deny = 0.0.0.0/0 

เพื่อรับรองความปลอดภัยของเซิร์ฟเวอร์ SSH ของคุณ ขอแนะนำให้คุณจำกัดการเข้าถึงโดยอนุญาตการเชื่อมต่อจากโฮสต์ภายในเครื่องและช่วงที่อยู่ IP 192.168.1.0/24 เท่านั้น ซึ่งสามารถทำได้ผ่านการกำหนดค่ากฎไฟร์วอลล์ใน Samba การดำเนินการตามมาตรการนี้ คุณกำลังดำเนินการขั้นตอนสำคัญในการป้องกันความพยายามในการเข้าถึงโดยไม่ได้รับอนุญาต

ตอนนี้คุณรู้วิธีรักษาความปลอดภัยเซิร์ฟเวอร์ Samba Linux ของคุณแล้ว

ในขณะที่ Linux ทำหน้าที่เป็นแพลตฟอร์มที่ยอดเยี่ยมสำหรับการโฮสต์เซิร์ฟเวอร์ สิ่งสำคัญคือต้องใช้ความระมัดระวังในการจัดการระบบดังกล่าว เนื่องจากพวกเขาดึงดูดผู้คุกคามที่กำลังมองหาเป้าหมายที่มีช่องโหว่

เพื่อรักษาความปลอดภัยเซิร์ฟเวอร์ Linux ของตน จำเป็นอย่างยิ่งที่จะต้องทุ่มเทความพยายามอย่างเต็มที่เพื่อเสริมความแข็งแกร่งให้กับโครงสร้างพื้นฐานของเครือข่าย ในขณะเดียวกันก็นำมาตรการรักษาความปลอดภัยที่แข็งแกร่งมาใช้กับระบบเหล่านี้ด้วย แม้ว่าการกำหนดค่าที่เหมาะสมของ Samba เป็นสิ่งสำคัญสำหรับการรักษาความปลอดภัย แต่ต้องมีขั้นตอนเพิ่มเติมเพื่อป้องกันภัยคุกคามที่อาจเกิดขึ้น