ข้ามไปยังเนื้อหาหลัก
ลด 50% ทุกแพลน เวลาจำกัด เริ่มต้นที่ $2.48/mo
6 min left
ความปลอดภัยและเครือข่าย

วิธี Enable SELinux บน CentOS 7: รักษาความปลอดภัย CentOS Server ของคุณ

Alex Robbins โดย Alex Robbins 6 นาทีในการอ่าน อัปเดตเมื่อ May 30, 2023
Enable-SELinux-on-CentO

   ทั้งการใช้ประโยชน์และช่องโหว่เปิดเผยเกือบทุกวัน และรายงานประกาศเรื่องอาชญากรรมไซเบอร์เพิ่มขึ้น ความปลอดภัยอยู่ในใจของทุกคน มีหลายวิธีในการปรับปรุงความปลอดภัยของระบบของคุณ ถ้าคุณใช้ (หรือวางแผนที่จะใช้) เซิร์ฟเวอร์ 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 ถูกปิดใช้งานบนระบบแล้ว

Disable SELinux

ขั้นตอนที่ ๒: ตรวจสอบข้อกำหนดเบื้องต้นสำหรับการเปิดใช้งาน SELinux

  • บัญชีผู้ใช้ที่มีสิทธิ์ sudo
  • การเข้าถึงเทอร์มินัลหรือคอนโซล
  • ระบบที่ใช้ RHEL เช่น CentOS 7
  • โปรแกรมแก้ไขข้อความ nano
ดูแพ็กเกจ Linux

พัฒนาบน Linux VPS พร้อมสิทธิ์รูท, NVMe และพลัง AMD EPYC

ดูแพ็กเกจ Linux
  • เริ่มต้น SELinux :

ขั้นตอนที่ ๓: ใช้ nano เปิดไฟล์คอนฟิก

ตั้งค่าสถานะ SELinux ของบริการ โดยไปที่ไฟล์  /etc/selinux/config และใช้โปรแกรมแก้ไขข้อความ เช่น Nano

sudo nano /etc/selinux/config

 

ขั้นตอนที่ ๔: เปลี่ยนโหมด SELinux

ตอนนี้คุณสามารถเปลี่ยนโหมด SELinux เป็น อนุญาตให้ or enforcing.

ที่นี่คุณสามารถเปลี่ยนบรรทัดที่ทำเครื่องหมายไว้เป็นโหมดที่ต้องการได้

SELinux Status

 

ขั้นตอนที่ 5: บันทึกการเปลี่ยนแปลง

แล้วกด CTRL + X เพื่อใช้งานและบันทึก จากนั้นกด, แล้ว Enter เพื่อยืนยันขั้นตอนทั้งหมด

 

ขั้นตอนที่ 6: รีบูตเซิร์ฟเวอร์

ตอนนี้ให้รีบูตระบบ โดยพิมพ์คำสั่งด้านล่างแล้วกด <Enter>:

sudo reboot

ขั้นตอนที่ 7: ตรวจสอบสถานะ SELinux อีกครั้ง

หากต้องการตรวจสอบสถานะของ SELinux ให้ป้อน ""sestatus”  ในบรรทัดคำสั่งอีกครั้ง

ผลลัพธ์นี้ยืนยันว่าระบบเปิดใช้งาน enforcing mode อยู่แล้ว

Enable SELinux

วิธีปิดใช้งาน 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

พัฒนาบน 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 ที่ปลอดภัยอย่างแท้จริง

 

แชร์

บทความเพิ่มเติมจากบล็อก

อ่านต่อ

Best self-hosted VPN solutions guide: WireGuard, Tailscale, Hiddify compared by use case
ความปลอดภัยและเครือข่าย

โซลูชัน VPN ที่โฮสต์เองที่ดีที่สุด ข้อดีข้อเสีย กรณีการใช้งาน และรายละเอียดเฉพาะทาง

Self-hosted VPN solutions compared by use case: privacy exit node, team mesh, and anti-censorship. WireGuard, Tailscale, Hiddify, and honest trade-offs.

Jonas 16 นาทีในการอ่าน

พร้อมติดตั้งหรือยัง? เริ่มต้น $2.48/เดือน

คลาวด์อิสระ ตั้งแต่ปี 2008 AMD EPYC, NVMe, 40 Gbps คืนเงินภายใน 14 วัน