HƯỚNG DẪN Bật bảo vệ SELinux trên CentOS/Redhat

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 15/12/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    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
     

Chia sẻ trang này

Đang tải...