ที่จริงแล้วถ้าคุณใช้งานลีนุกซ์รุ่นใหม่เช่น Fedora หรือ CentOS, โอกาสดีที่คุณมี "ระบบ SELinux" อยู่แล้ว
คิดว่ามันคล้ายการเปรียบเทียบนี้: ลองจินตนาการถึงสังคมที่ระบบของรัฐบาลเป็น "อนาธิปไตย" ทุกคนสามารถทำอะไรก็ได้ แต่ละเผ่าสามารถกำหนดพื้นที่ควบคุมระดับพื้นฐานของคำสั่ง แต่ในระดับภูมิภาคหรือระดับโลกอารยธรรมอยู่ในอนาธิปไตยและบุคคลหรือบุคคลที่มีอิทธิพลหรืออำนาจที่แท้จริงที่สุด (ความแข็งแกร่งทางกายภาพเทคโนโลยี ฯลฯ ) สามารถทำสิ่งที่พวกเขาต้องการได้โดยไม่กระทบอะไรเลย
นี่คือลักษณะของระบบเมื่อไม่ได้ติดตั้ง SELinux หรือติดตั้ง แต่ไม่บังคับใช้
ตอนนี้ลองนึกภาพสังคมที่ระบบของรัฐบาลเกี่ยวข้องกับ "กฎแห่งกฎหมาย" ซึ่งเป็นแนวคิดที่มีความหมายว่าแทนที่จะเป็นคนที่ปกครองสังคมในที่สุดแทนที่จะเป็นกฎที่เป็นทางการซึ่งเขียนไว้ในสังคมหนังสือกฎ
นี่คือสิ่งที่ระบบเป็นเหมือนเมื่อติดตั้งและบังคับใช้ SELinux
ตอนนี้ได้รับแล้วเป็นไปได้ที่จะเปิดใช้งาน SELinux ตั้งค่าให้บังคับใช้และล้างหนังสือกฎหมายและมีหนังสือว่างหรือเขียนว่า "คุณได้รับอนุญาตให้ทำทุกอย่างที่คุณต้องการ" - ซึ่งทำให้เรา กลับไปที่อนาธิปไตย การเรียงลำดับของ แต่ถ้าหนังสือกฎหมายเปลี่ยนแปลงอย่างกระทันหันเพื่อให้มีข้อ จำกัด จริง ๆ เช่นการฆาตกรรมนั้นผิดกฎหมายการขโมยนั้นผิดกฎหมาย ฯลฯ จากนั้นสังคมก็เริ่มมีความสงบเรียบร้อยในระดับหนึ่ง และโดยทั่วไปแล้วผู้คนที่มีอำนาจจำนวนมากจะไม่สามารถใช้สิ่งนั้นเพื่อทำสิ่งที่พวกเขาต้องการได้เพราะกฎหมายสามารถ จำกัด สิ่งที่พวกเขาได้รับอนุญาตให้ทำ
สำหรับวัตถุประสงค์ของการเปรียบเทียบเราจะแกล้งทำเป็นว่าคนที่ไม่เคยทำสิ่งที่ผิดกฎหมายเพราะในโลกซอฟต์แวร์โปรแกรมที่ไม่สามารถหลีกเลี่ยงนโยบาย SELinux (aka "ผิดกฎหมาย") เพียงเพราะต้องการจริงๆ ในสังคมมนุษย์ปกติเราสามารถฝ่าฝืนกฎหมายและจากนั้นก็มีผลที่ตามมา ในสังคมของ SELinux คุณไม่ผิดกฎหมายตลอดไป
อย่างที่คุณสามารถจินตนาการได้จำนวนของค่าใช้จ่ายในการดูแลระบบในระบบ SELinux นั้นขึ้นอยู่กับ:
- คุณเปิดใช้งานนโยบายจำนวนเท่าใด
- นโยบายเหล่านั้นมีความเข้มงวดเพียงใด
- นโยบายเหล่านั้นมีความเฉพาะเจาะจงอย่างไร
- ไม่ว่าคุณจะมีนโยบายการตั้งค่าที่เป็นบัญชีดำหรือบัญชีขาว (บัญชีดำบล็อกสิ่งที่คุณรู้ว่าไม่ดีในขณะที่บัญชีขาวต้องการให้คุณเพิ่มการสนับสนุนอย่างชัดเจนสำหรับสิ่งที่คุณต้องการอนุญาตเพราะทุกอย่างถูกบล็อกโดยค่าเริ่มต้น)
SELinux สามารถ จำกัด เกือบทุกแง่มุมของระบบที่สามารถควบคุมได้จากภายในเคอร์เนล Linux: การเข้าถึงอุปกรณ์ฮาร์ดแวร์การเข้าถึงการอ่านหรือเขียนไฟล์การเข้าถึง API ของระบบการเข้าถึงเครือข่ายบางประเภทหรือขอบเขตของเครือข่ายและอื่น ๆ . SELinux ได้อย่างมีประสิทธิภาพการดำเนินการควบคุมบังคับเข้าถึงที่คุณควรอ่านต่อเกี่ยวกับเกี่ยวกับวิกิพีเดีย
จุดสำคัญที่ฉันต้องการปลูกฝังกับคุณด้วยคำตอบนี้คือจำนวนงานพิเศษและเวลาที่ใช้จัดการกับ SELinux นั้นขึ้นอยู่กับว่าคุณ จำกัด นโยบายอย่างไร ตัวอย่างเช่นลองนึกภาพการใช้ชีวิตในสังคมที่คุณต้องได้รับการอนุมัติจากคนสี่คนทุกครั้งที่คุณต้องการขึ้นเครื่องบิน: ผู้พิพากษาศาลฎีกาศาลฎีกาประธานาธิบดีสมาชิกสภาผู้แทนราษฎรและวุฒิสมาชิก นี่เป็นนโยบายที่เข้มงวดมากและคุณต้องผ่านการอนุมัติจำนวนมากเพื่อขึ้นเครื่องบิน ในโลก SELinux สิ่งนี้จะคล้ายกับการขึ้นบัญชีดำการเข้าถึงระบบไฟล์ทั้งหมดโดยค่าเริ่มต้นและต้องการการอนุญาตพิเศษอย่างชัดเจนของการเข้าถึงของผู้ใช้แต่ละคนในแต่ละไฟล์
จำไว้ว่าฉันบอกไปก่อนหน้านี้ว่า Fedora และ CentOS ใช้งาน SELinux แล้วหรือยัง คุณอาจไม่ได้สังเกตว่าพวกเขาทำเว้นแต่คุณจะดาวน์โหลดและเรียกใช้โปรแกรมเฉพาะที่พยายามทำสิ่งต่าง ๆ ที่เดินทางไปกับตัวกรอง SELinux Red Hat ได้ปรับจูนตัวกรอง SELinux อย่างระมัดระวังตลอดเวลาเพื่อให้กิจกรรมของโปรแกรมที่ไม่เป็นอันตรายเกือบทั้งหมดผ่านไปได้โดยไม่ จำกัด แต่มีนโยบายอยู่สองสามที่ที่จะช่วยยับยั้งการโจมตีได้
กล่าวโดยย่อคือ SELinux ในการนำวิธีการใช้งานออกนอกกรอบบน Red Hat based distros ช่วยเพิ่มความปลอดภัยโดยไม่ส่งผลกระทบต่อการใช้งานอย่างมีนัยสำคัญ แน่นอนคุณสามารถทำให้ปลอดภัยยิ่งขึ้นจากที่นั่น แต่มันจะลดการใช้งานในทางกลับกัน หรือคุณสามารถทำให้มันใช้งานได้มากขึ้นแต่มันจะลดความปลอดภัยในทางกลับกัน