SELinux thực thi ý tưởng rằng chương trình nên được giới hạn trong những tập tin mà họ có thể truy cập và những hành động họ có thể làm. Tuy nhiên, theo mặc định nó được tắt trên máy chủ RHEL/CentOS 5.x? Làm thế nào để bật nó lên? Làm thế nào tôi có thể kích hoạt SELinux trên CentOS/RHEL 6 máy chủ IBM? SELinux là một tiện ích an ninh hạt nhân, có thể được sử dụng để bảo vệ chống lại các chương trình cấu hình sai hoặc bị tổn thương. Nó đi kèm với hệ thống Mandatory Access Control (MAC) dùng để cải thiện các mô hình truyền thống UNIX / Linux DAC (Discretionary Access Control). SELinux có thể là bất kỳ một trong những trạng thái sau: enforcing - chính sách bảo mật SELinux được thi hành. permissive - SELinux in cảnh báo thay vì thực thi. disabled - SELinux bị vô hiệu hóa hoàn toàn. Bước 1: Cài đặt gói bổ sung SELinux Nhập lệnh yum sau đây: Mã: yum install policycoreutils setroubleshoot Bước # 2: Chạy SELinux trong chế độ permissive Chỉnh sửa tập tin /etc/selinux/config, chạy lệnh: Mã: vi /etc/selinux/config Cập nhật tập tin cấu hình như sau: Mã: SELINUX=permissive SELINUXTYPE=targeted Lưu lại và đóng tập tin. Khởi động lại máy chủ: Mã: reboot Bước # 3: Hãy chắc chắn rằng SELinux không từ chối các hành động Gõ lệnh sau để xác nhận rằng SELinux không từ chối các hành động trong quá trình khởi động lại: Mã: grep "SELinux is preventing" /var/log/messages Nếu lệnh này không trả lại bất kỳ lỗi hoặc kết quả đầu ra thì hãy tới bước # 3. Nếu bạn nhận được bất kỳ đầu ra/lỗi, hãy thử lệnh chcon. Nó có thể được sử dụng để thay đổi nội dung SELinux của một tập tin. Tuy nhiên, nó được khuyến khích mà bạn relabel complete filesystem. Gõ lệnh sau đây để khôi phục lại các nội dung an ninh mặc định cho /home: Mã: restorecon -Rv -n /home Bạn có thể chạy trên hệ thống tập tin root (/): Mã: restorecon -Rv -n / Đừng bỏ qua bước này. Gõ các lệnh sau đây: Mã: touch /.autorelabel reboot Nó sẽ mất một thời gian để relabel complete filesystem. Nếu bạn nhận được bất kỳ lỗi nào hoặc các dịch vụ mysqld hoặc sshd thất bại, hãy thử các giải pháp sau đây (đi đến chế độ người dùng đơn): Mã: init 1 genhomedircon touch /.autorelabel reboot Bây giờ, đi đến bước # 4. Bước 4: Thiết lập SELinux để chế độ enforcing Chỉnh sửa /etc/selinux/config, hãy nhập: Mã: vi /etc/selinux/config Cập nhật tập tin cấu hình như sau: Mã: SELINUX=enforcing SELINUXTYPE=targeted Hiểu cấu hình SELinux SELINUX=enforcing: Enforcing là chế độ mặc định mà sẽ kích hoạt và thực thi các chính sách bảo mật SELinux trên Linux. Nó cũng sẽ từ chối truy cập trái phép và log hành động trong một tập tin log. SELINUXTYPE=targeted: Chỉ có các mục tiêu daemon mạng (như DNS, Apache và một số cái khác) được bảo vệ. Lưu lại và đóng tập tin. Bảo đảm nếu bạn tìm thấy dòng với selinux = 0 hoặc enforcing = 0, loại bỏ chúng và lưu các thay đổi. Khởi động lại máy chủ: Mã: reboot Bước 5: Hãy chắc chắn SELinux là được kích hoạt đúng Gõ lệnh sau đây: Mã: sestatus Ví dụ kết quả đầu ra: Mã: SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted Làm thế nào tôi in đầy đủ danh sách các cổng mạng được cho phép? Gõ các lệnh sau đây: Mã: semanage port -l semanage port -l | less #### look for port 80 #### semanage port -l | grep -w 80 Làm sao tôi cho phép Lighttpd/Apache/Nginx tại cổng 8181? Theo mặc định SELinux sẽ chặn truy cập vào nhiều cổng bao gồm 8181. Bạn cần phải cho phép truy cập vào một cổng 8181 để nó có thể ràng buộc và lắng nghe yêu cầu. Bạn cần phải sử dụng lệnh semanage như sau: Mã: semanage port -a -t http_port_t -p tcp 8181 Làm thế nào tôi tìm thấy các dịch vụ không an toàn? Gõ lệnh sau đây: Mã: ps -eZ | egrep "initrc" | egrep -vw "ps|tr|egrep|awk|bash" | tr ':' ' ' | awk '{ print $NF }' Bạn không thể thấy bất kỳ kết quả đầu ra nào trên hệ thống SELinux cấu hình đầy đủ. Tôi làm thế nào xem SELinux Labels? Gõ các lệnh sau đây: Mã: ls -lZ /path/to/file ls -lZd /path/to/dir ls -lZd /etc ls -lZ /dev/ | grep deviceName ls -lZ /etc/resolv.conf Ví dụ kết quả đầu ra: Mã: -rw-r--r-- root root system_u:object_r:net_conf_t /etc/resolv.conf Khắc phục sự cố lỗi chính sách SELinux SELinux là phần mềm hạt nhân khá phức tạp. Phải mất nhiều thời gian để sửa chữa lỗi. Sử dụng các công cụ sau đây để tìm và sửa chữa các vấn đề chính sách lỗi SELinux : ps -Z -p PID ls -Z fileName ausearch restorecon semodule audit2allow Log files: /var/log/audit/audit.log and /var/log/setroubleshoot/setroubleshootd.log