Có, SELinux làm cho Red Hat (và bất kỳ bản phân phối Linux nào thực sự sử dụng nó) an toàn hơn, giả sử nó thực sự được sử dụng.
SELinux thực hiện kiểm soát truy cập bắt buộc . Các quyền Unix, ACL thông thường, v.v., thực hiện kiểm soát truy cập tùy ý . Hai người bổ sung cho nhau.
Để hoạt động, SELinux yêu cầu một chính sách, xác định những hành động nào trên hệ thống có thể được cho phép. Mặc dù có thể tạo toàn bộ chính sách hệ thống từ đầu, hầu hết các bản phân phối Linux đều cung cấp chính sách dựa trên cái gọi là chính sách tham chiếu . Điều này có nghĩa, trong số những thứ khác, việc định cấu hình SELinux trên các bản phân phối sẽ rất giống nhau. (Hầu hết các bản phân phối Linux làm cho chính sách tham chiếu SELinux có sẵn trong kho gói của chúng, mặc dù nó có thể không được cài đặt theo mặc định.)
SELinux hoạt động bằng cách hạn chế người dùng và quy trình chỉ thực hiện các hành động được phép đối với họ trong chính sách. Theo mặc định, chính sách là từ chối, vì vậy nếu chính sách không cho phép một hành động rõ ràng thì điều đó sẽ không xảy ra. Đây là lý do tại sao bạn thường xuyên gặp rắc rối với SELinux không cho phép điều gì đó bạn đang cố gắng thực hiện.
Về mặt tươi sáng, điều này cũng ngăn chặn việc khai thác, thậm chí là khai thác 0 ngày, ra khỏi tầm tay. Chẳng hạn, nếu máy chủ web của bạn (Apache) bị khai thác, thiệt hại chỉ giới hạn ở những thứ mà Apache có thể truy cập. Nó sẽ không thể đọc /etc/shadow
tệp của bạn , ví dụ, ngay cả với khai thác root từ xa. Trong khi các quyền Unix (DAC) cho phép root đọc tệp, thì SELinux (MAC) không cho phép quá trình bị xâm phạm bước ra khỏi giới hạn.
Vấn đề lớn là phải có một mô-đun chính sách SELinux được tải cho dịch vụ. Nếu bạn cài đặt một dịch vụ trên hộp của mình mà không bao gồm mô-đun chính sách SELinux, thì nó sẽ chạy không kiểm soát và có thể làm bất cứ điều gì nó muốn. SELinux sẽ không áp dụng cho nó.
Một điều khác bạn nên biết là tất cả về booleans . Các tham số có thể điều chỉnh này được cung cấp bởi các chính sách của SELinux để tùy chỉnh chúng cho các cài đặt cụ thể và cho phép hoặc từ chối truy cập dựa trên nhu cầu cấu hình cục bộ. Chẳng hạn, bạn có thể cấp cho Apache quyền truy cập vào các chia sẻ Samba, cho phép Samba chia sẻ các thư mục nhà của người dùng và nhiều thứ hữu ích khác có thể cần thiết cho một số thiết lập nhưng không phải cho các thiết lập khác.
Hướng dẫn tốt nhất về SELinux mà tôi đã thấy hiện tại là Hướng dẫn sử dụng Linux được tăng cường bảo mật của Red Hat . Nó sẽ giúp bạn đứng dậy và chạy nhanh cũng như điền vào các chi tiết nền của những gì đang diễn ra. Nó cũng bao gồm một hướng dẫn xử lý sự cố toàn diện giúp bạn vận hành quy trình của mình dưới chế độ SELinux.
Nó khá hữu ích?
SELinux bảo vệ chống lại các quy trình (và người dùng, nếu bạn đã giới hạn người dùng của mình) làm những việc không mong muốn. Nó hạn chế nghiêm trọng thiệt hại mà một khai thác từ xa có thể gây ra. Nếu bạn chưa bao giờ phải chịu một sự thỏa hiệp từ xa, bạn là (1) may mắn và (2) có lẽ là người mới. Nếu bạn đã thực hiện một thỏa hiệp từ xa, bạn chắc chắn không muốn nó xảy ra lần nữa.
Nó không hữu ích trong cài đặt tại nhà , trừ khi bạn đang chạy các dịch vụ truy cập Internet tại nhà (và một số người làm). Trong trường hợp đó, tất cả mọi thứ nói ở trên áp dụng.
SELinux có thể là điều cuối cùng đứng giữa dữ liệu của bạn và kẻ tấn công với khai thác 0 ngày, người thực sự muốn nó. Nếu bạn có thể sử dụng nó, tại sao bạn lại không?