ในบทช่วยสอนนี้ คุณจะได้เรียนรู้ว่ามันคืออะไร SELinux และวิธีแก้ไขข้อผิดพลาด "ไม่สามารถโหลดได้ SELinux นโยบาย" ที่ปรากฏในระบบปฏิบัติการ CentOS.
ก่อนอื่น เรามาอธิบายโดยย่อเกี่ยวกับโหมดความปลอดภัยกันก่อน SELinux. มันคืออะไร SELinux และมีบทบาทอย่างไรต่อระบบปฏิบัติการ Linux?
SELinux เป็นโมดูลความปลอดภัยของเคอร์เนลซึ่งมีบทบาทในการควบคุมการเข้าถึงแอปพลิเคชันซอฟต์แวร์และผู้ใช้ไปยังระบบปฏิบัติการ เปิดตัวประมาณกลางปี 2000 SELinux ในช่วงหลายปีที่ผ่านมามีการกระจายสินค้ามากขึ้นเรื่อยๆ Linux.
กิจกรรมของโมดูลนี้ประกอบด้วยการกระจายและการควบคุมนโยบายความปลอดภัยในระบบ โดยจำกัดการเข้าถึงแอปพลิเคชันในระดับของระบบย่อยหลักของเคอร์เนล
กลไกการรักษาความปลอดภัยนี้ทำงานโดยไม่ขึ้นอยู่กับระบบควบคุมและการบล็อกแบบดั้งเดิมของกิจกรรมที่น่าสงสัยที่มีอยู่ Linux. ไม่สามารถควบคุมโดย superuser ได้ "root
” และไม่มีการโต้ตอบกับแอปพลิเคชันหรือสคริปต์ของบุคคลที่สาม SELinux ให้ความมั่นคงหลัก
ความปลอดภัยของระบบ Linux โดยไม่มีโมดูลนี้ SELinux มันจะขึ้นอยู่กับความถูกต้องของการกำหนดค่าเคอร์เนล แอปพลิเคชันที่มีสิทธิ์ใช้งาน และการกำหนดค่าโดยอัตโนมัติ ข้อผิดพลาดง่ายๆ ในองค์ประกอบที่กล่าวถึงก่อนหน้านี้อาจทำให้การทำงานที่ถูกต้องของทั้งระบบลดลง
สรุปแล้ว, SELinux เรียกได้ว่าเป็นผู้พิทักษ์ระบบปฏิบัติการอย่างแท้จริง Linuxมั่นใจในความสมบูรณ์ ความปลอดภัย และความมั่นคง อย่าสับสนระหว่างโมดูลนี้กับโปรแกรมป้องกันไวรัสหรือไฟร์วอลล์ มันแตกต่างอย่างสิ้นเชิง
ผู้ใช้ที่ใช้ Linux สำหรับเว็บและเซิร์ฟเวอร์คลาวด์ฉันรู้ดี SELinux อาจทำให้เกิดปัญหาในการรันแอพพลิเคชั่นซอฟต์แวร์ที่มีสิทธิ์การเข้าถึงระบบและระดับการควบคุม
SELinux สามารถควบคุมกิจกรรมระบบปฏิบัติการสำหรับผู้ใช้แต่ละราย แอปพลิเคชัน และ daemon บางส่วนและอาจใช้นโยบายและข้อจำกัดด้านความปลอดภัยที่แม่นยำ นี่มักจะเป็นปัญหาสำหรับเว็บเซิร์ฟเวอร์ ซึ่งกระบวนการซอฟต์แวร์เฉพาะส่วนใหญ่มีสิทธิ์และโต้ตอบกับเคอร์เนลของระบบปฏิบัติการ
ผู้ที่ตัดสินใจปิดการใช้งานโมดูลเคอร์เนลนี้มักจะทำผิดพลาดในการแก้ไขคำสั่งซึ่งทำให้ไม่สามารถโหลดได้ SELinux เมื่อรีสตาร์ทระบบปฏิบัติการ “Failed to load SELinux policy"
ฉันแสดงให้เห็นใน บทความว่าสามารถปิดการใช้งานได้อย่างไร SELinuxเพื่อป้องกันการขัดจังหวะกระบวนการที่ทำโดยบริการ NGINX บนเว็บเซิร์ฟเวอร์
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=disabled (WRONG)
ข้อผิดพลาดที่เราทำโดยไม่ตั้งใจ และเนื่องจากเป็นเซิร์ฟเวอร์ระยะไกล วิธีแก้ไขจึงเป็นเช่นนั้น การติดตั้งระบบปฏิบัติการใหม่โดยสมบูรณ์.
หากคุณโชคดีกว่านี้อีกเล็กน้อย คุณสามารถแก้ไขได้ SELinux เฉพาะในกรณีที่คุณมีดีวีดีอยู่ในมือหรือมีความสามารถในการโหลดอิมเมจ ISO ของระบบปฏิบัติการใน "rescue"
Failed to load SELinux Policy พบได้โดยเฉพาะในเวอร์ชัน CentOS 6, CentOS 7, RHEL 7.x.
ขอบคุณสำหรับบทความ คุณได้รับสาเหตุ แต่พลาดวิธีแก้ไข: จริง add selinux=0 ในรายการระบบปฏิบัติการที่เสนอโดยด้วงก็เพียงพอที่จะปิดการใช้งาน selinux และทำให้ระบบปฏิบัติการสามารถบูตได้อีกครั้ง
ขอบคุณสำหรับการแก้ปัญหานี้!
selinux=0
ฉันคิดว่าในขณะที่ฉันเขียนบทความ ไม่มีตัวเลือกนี้ ฉันอาจจะเข้าใจผิด ขอบคุณสำหรับการแก้ปัญหา!