ทั้งการใช้ประโยชน์และช่องโหว่เปิดเผยเกือบทุกวัน และรายงานประกาศเรื่องอาชญากรรมไซเบอร์เพิ่มขึ้น ความปลอดภัยอยู่ในใจของทุกคน มีหลายวิธีในการปรับปรุงความปลอดภัยของระบบของคุณ ถ้าคุณใช้ (หรือวางแผนที่จะใช้) เซิร์ฟเวอร์ CentOS หรือ Fedora แล้ว SELinux เป็นจุดเริ่มต้นที่เหมาะสม SELinux เป็นโปรโตคอลและแอปพลิเคชันความปลอดภัยที่รวดเร็วและเข็มขัด ช่วยให้คุณตรวจสอบและควบคุมผู้ใช้และระดับการเข้าถึงของพวกเขาไปยังไฟล์และแอปพลิเคชันบนระบบ ในบทความนี้ ฉันจะให้บทนำสั้นๆ เกี่ยวกับ SELinux ก่อนแสดงให้คุณเห็นวิธีการเปิดใช้งาน SELinux บน CentOS 7
SELinux คืออะไร
Security-Enhanced Linux (SELinux) คือโครงสร้างด้านความปลอดภัยที่ออกแบบมาเพื่อให้ผู้ดูแลระบบ Linux ควบคุมการเข้าถึงระบบของผู้ใช้ได้มากขึ้น พัฒนาขึ้นครั้งแรกโดยสำนักงานความมั่นคงแห่งชาติสหรัฐอเมริกา (NSA) ในรูปแบบชุดแพตช์และการอัปเกรดเคอร์เนล Linux โดยใช้ Linux Security Modules (LSM) SELinux เผยแพร่เป็นเครื่องมือโอเพนซอร์สในปี ค.ศ. 2000 จากนั้นรวมเข้ากับ Linux Kernel ทั้งหมดในปี ค.ศ. 2003
SELinux ทำงานอย่างไร?
SELinux ควบคุมการเข้าถึงไฟล์ กระบวนการ และแอปพลิเคชันทั้งหมดบนระบบของคุณ โดยใช้ชุดกฎที่กำหนดไว้ล่วงหน้าเป็นนโยบายความปลอดภัย SELinux สามารถกำหนดนโยบายการเข้าถึงที่ปลอดภัยและมีประสิทธิภาพได้ SELinux จะปกป้องระบบและป้องกันความพยายามเข้าถึงทรัพยากรโดยไม่ได้รับอนุญาต แนวทางนี้ใช้หลักการสิทธิ์น้อยที่สุด (Least Privilege) ซึ่งหมายความว่าผู้ใช้โปรแกรมจะต้องได้รับอนุญาตอย่างชัดเจนก่อนจึงจะเข้าถึงไฟล์ ไดเรกทอรี ซ็อกเก็ต และบริการอื่น ๆ ได้
เมื่อแอปพลิเคชันหรือกระบวนการ (เรียกว่า "subject") ร้องขอการเข้าถึงไฟล์ในฐานะ object SELinux จะใช้ Access Vector Cache (AVC) ในการประเมินคำขอนั้น แคชนี้เก็บข้อมูลสิทธิ์ทั้งหมดของ subject และ object ได้แก่ กระบวนการต่าง ๆ และสิ่งที่กระบวนการเหล่านั้นพยายามเข้าถึง หากไม่มีข้อมูลสิทธิ์เก็บอยู่ SELinux จะไม่สามารถตัดสินใจได้ ในกรณีนั้น SELinux จะติดต่อเซิร์ฟเวอร์ความปลอดภัยเพื่อขอข้อมูลมาประเมินคำขอการเข้าถึง เซิร์ฟเวอร์จะนำนโยบาย SELinux มาใช้ประเมิน แล้วอนุมัติหรือปฏิเสธคำขอตามผลนั้น คุณสามารถดูบันทึกข้อความได้ที่ "/var/log.messages" เพื่อตรวจสอบว่าคำขอใดถูกอนุมัติหรือปฏิเสธ
โหมด SELinux คืออะไร?
SELinux ให้ผู้ดูแลระบบตั้งค่าการทำงานเป็นหนึ่งในสามโหมดต่อไปนี้ แต่ละโหมดมีข้อจำกัดด้านความปลอดภัยและการใช้งานที่แตกต่างกัน:
โหมดการบังคับใช้: นี่คือโหมดเริ่มต้น ซึ่งจะบล็อกและบันทึกการกระทำที่ไม่เป็นไปตามมาตรฐานนโยบาย
โหมดอนุญาต โหมดนี้ช่วยให้คุณทำงานกับล็อกและเหตุการณ์ได้อย่างละเอียด และเหมาะสำหรับทดสอบฟีเจอร์ SELinux เป็นพิเศษ การสลับระหว่างโหมด Enforcing และ Permissive ในโหมดนี้ไม่จำเป็นต้องรีบูตระบบ
โหมดปิดการใช้งาน: โหมดนี้ให้คุณดำเนินการทุกอย่างได้โดยไม่มีการบันทึกการกระทำ การเปลี่ยนมาใช้โหมดนี้จำเป็นต้องรีบูตระบบ
วิธีเปิดใช้งาน SElinux ใน CentOS 7
-
ตรวจสอบสถานะ SELinux :
ขั้นตอนที่ ๑: ตรวจสอบสถานะเปิด/ปิด SELinux
ก่อนที่จะเปิดใช้งาน SELinux ให้ตรวจสอบก่อนว่าปิดการใช้งานอยู่หรือไม่
ป้อนคำสั่งต่อไปนี้เพื่อตรวจสอบการตั้งค่าในเทอร์มินัล
sestatus
ผลลัพธ์แสดงว่า SELinux ถูกปิดใช้งานบนระบบแล้ว
ขั้นตอนที่ ๒: ตรวจสอบข้อกำหนดเบื้องต้นสำหรับการเปิดใช้งาน SELinux
- บัญชีผู้ใช้ที่มีสิทธิ์ sudo
- การเข้าถึงเทอร์มินัลหรือคอนโซล
- ระบบที่ใช้ RHEL เช่น CentOS 7
- โปรแกรมแก้ไขข้อความ nano
พัฒนาบน Linux VPS พร้อมสิทธิ์รูท, NVMe และพลัง AMD EPYC
ดูแพ็กเกจ Linux-
เริ่มต้น SELinux :
ขั้นตอนที่ ๓: ใช้ nano เปิดไฟล์คอนฟิก
ตั้งค่าสถานะ SELinux ของบริการ โดยไปที่ไฟล์ /etc/selinux/config และใช้โปรแกรมแก้ไขข้อความ เช่น Nano
sudo nano /etc/selinux/config
ขั้นตอนที่ ๔: เปลี่ยนโหมด SELinux
ตอนนี้คุณสามารถเปลี่ยนโหมด SELinux เป็น อนุญาตให้ or enforcing.
ที่นี่คุณสามารถเปลี่ยนบรรทัดที่ทำเครื่องหมายไว้เป็นโหมดที่ต้องการได้

ขั้นตอนที่ 5: บันทึกการเปลี่ยนแปลง
แล้วกด CTRL + X เพื่อใช้งานและบันทึก จากนั้นกด ย, แล้ว Enter เพื่อยืนยันขั้นตอนทั้งหมด
ขั้นตอนที่ 6: รีบูตเซิร์ฟเวอร์
ตอนนี้ให้รีบูตระบบ โดยพิมพ์คำสั่งด้านล่างแล้วกด <Enter>:
sudo reboot
ขั้นตอนที่ 7: ตรวจสอบสถานะ SELinux อีกครั้ง
หากต้องการตรวจสอบสถานะของ SELinux ให้ป้อน ""sestatus” ในบรรทัดคำสั่งอีกครั้ง
ผลลัพธ์นี้ยืนยันว่าระบบเปิดใช้งาน enforcing mode อยู่แล้ว
วิธีปิดใช้งาน SELinux บน CentOS 7
ทำตามคำสั่งด้านล่างเพื่อสลับโหมด SELinux จาก targeted เป็น permissive ชั่วคราว:
sudo setenforce
แต่โปรดทราบว่าการเปลี่ยนแปลงนี้มีผลเฉพาะในเซสชันรันไทม์ปัจจุบันเท่านั้น
หากต้องการปิดใช้งาน SELinux บนระบบ CentOS 7 ของคุณอย่างถาวร ให้ทำตามขั้นตอนเหล่านี้:
ขั้นตอนที่ 1: ตั้งค่าโหมด SELinux เป็น "disabled"
Open the /etc/selinux/config file, then you should set the SELINUX mode to “disabled”
ขั้นตอนที่ 2: บันทึกการเปลี่ยนแปลงและรีบูต
ตอนนี้ให้บันทึกไฟล์ จากนั้นรีบูตระบบ CentOS ของคุณด้วยคำสั่ง:
sudo shutdown -r now
ขั้นตอนที่ ๓: ตรวจสอบสถานะ SELinux อีกครั้ง
เมื่อระบบบูตขึ้นมา ให้ยืนยันการเปลี่ยนแปลงโดยการให้ sestatus คำสั่ง
sestatus
วิธีเปลี่ยนโหมด SELinux
แทนที่จะปิดใช้งาน SELinux ทั้งหมด คุณเปลี่ยนโหมดเป็น permissive แทน การดำเนินการต่าง ๆ ที่เกิดขึ้นจะถูกบันทึกไว้ในไฟล์ log
ตอนนี้ให้ทำตามขั้นตอนด้านล่างเพื่อเปลี่ยนโหมด SELinux จาก enforcing to อนุญาตให้ พิมพ์:
sudo setenforce 0
ตอนนี้คุณควรเปิด enforcing เปิดโหมดนี้ไว้ ให้รันคำสั่งด้านล่าง:
sudo setenforce 1
การเปลี่ยนแปลงเหล่านี้มีผลเฉพาะในเซสชันปัจจุบันเท่านั้น หลังจากรีบูตระบบ ค่าต่างๆ จะกลับไปเป็นค่าเริ่มต้น หากต้องการให้การตั้งค่านี้มีผลถาวร ให้แก้ไขไฟล์คอนฟิกด้วยโปรแกรมแก้ไขข้อความ (เช่น nano, ยกตัวอย่างเช่น
พัฒนาบน Linux VPS พร้อมสิทธิ์รูท, NVMe และพลัง AMD EPYC
ดูแพ็กเกจ Linuxการเสริมความปลอดภัยให้กับเซิร์ฟเวอร์ CentOS 7 นอกเหนือจาก SELinux
ตอนนี้ที่คุณติดตั้ง SELinux บน CentOS 7 แล้ว คุณวางใจได้ว่าระบบของคุณปลอดภัยมากขึ้นกว่าเดิม แน่นอนว่าไม่มีระบบใดที่ปลอดภัยได้ร้อยเปอร์เซ็นต์ ยังมีสิ่งที่ต้องดูแลอยู่เสมอ ลองดูรายการใน คู่มือการรักษาความปลอดภัย Linux VPS ของคุณความจริงแล้ว แม้แต่กับ SELinux เราก็ยังใช้เพียงมาตรการความปลอดภัยพื้นฐานที่สุดเท่านั้น ยิ่งไปกว่านั้น ไม่ว่าคุณจะตั้งค่าการป้องกันไว้ดีเพียงใด ทั้งหมดนั้นก็ไม่มีความหมาย หาก hosting provider ของเซิร์ฟเวอร์คุณไม่ปลอดภัยพอ นั่นคือเหตุผลที่ Cloudzy ดูแลความปลอดภัยในระดับสูงสุด ด้วย firewall ทั้งแบบ hardware และ AI รวมถึงการป้องกัน DDoS อัจฉริยะ และมาตรการเฉพาะอื่น ๆ อีกมากมาย สัมผัสประสบการณ์กับ โซลูชัน CentOS VPS และรัน server ที่ปลอดภัยอย่างแท้จริง
