CodeGym /Các khóa học /Docker SELF /Cấu hình tường lửa, SELinux và các quy tắc ACL cơ bản

Cấu hình tường lửa, SELinux và các quy tắc ACL cơ bản

Docker SELF
Mức độ , Bài học
Có sẵn

Cấu hình tường lửa, SELinux và các quy tắc ACL cơ bản

1. Bước 1: Cài đặt và cấu hình tường lửa

Chào mấy bạn! Hôm nay mình sẽ thực hành thật, áp dụng tất cả những gì bạn đã học về bảo mật Linux. Chúng ta sẽ cấu hình tường lửa, kiểm tra hoạt động của SELinux và tìm hiểu sự tiện lợi của ACL để quản lý quyền truy cập vào tệp. Bài giảng này giống như "sân tập" của bạn vậy. Giờ thì chuẩn bị "nón bảo mật" của admin và bắt tay vào thôi!

Mấy bạn biết rồi đó, một tường lửa tốt giống như một anh bảo vệ ở cổng. Nó quyết định ai được vào và ai phải nghe "Không vào được đâu!". Đầu tiên, chúng ta sẽ bảo vệ hệ thống, chỉ cho phép quyền truy cập vào các dịch vụ SSH và HTTP.

Làm việc với UFW

  1. Kiểm tra trạng thái UFW. Chưa cài đặt? Ta cài luôn!

    # Kiểm tra UFW
    sudo ufw status
  2. Nếu lệnh cho biết rằng "tường lửa đã tắt", thì điều này cần được sửa ngay.

  3. Cài đặt và kích hoạt UFW.

    # Cài đặt (nếu cần)
    sudo apt install ufw
    
    # Bật tường lửa
        sudo ufw enable
  4. Cấu hình quyền truy cập. Chúng ta muốn chỉ cho phép SSH (port 22) và HTTP (port 80), chặn hết mấy thứ khác. Logic là vậy đó: server không phải khách sạn 3 sao dành cho tất cả mọi người.

    # Cho phép SSH
    sudo ufw allow 22
    
    # Cho phép HTTP
    sudo ufw allow 80
    
    # Kiểm tra cấu hình
    sudo ufw status
  5. Kiểm tra: Sau khi cài đặt, bạn sẽ thấy cái gì đó như thế này:

    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    80                         ALLOW       Anywhere
    

Nếu bạn sử dụng iptables, cấu hình sẽ hơi phức tạp hơn chút, nhưng logic vẫn như cũ: tạo quy tắc cho SSH và HTTP, rồi chặn hết mấy cái khác.


2. Bước 2: Làm việc với SELinux

SELinux chính là "thầy giám thị nghiêm khắc" luôn giám sát hành vi của các tệp và người dùng trên server của bạn. Châm ngôn của nó là: "Tin tưởng, nhưng cần kiểm tra". Hãy bật SELinux và kiểm tra cách nó hoạt động nhé.

Bật SELinux

  1. Kiểm tra trạng thái hiện tại:

    # Kiểm tra xem SELinux có bật không
    sestatus

    Nếu chế độ hiển thị là disabled, bạn cần bật nó thông qua file cấu hình.

  2. Bật SELinux qua cấu hình:

    File cấu hình SELinux nằm tại đường dẫn /etc/selinux/config. Mở file này bằng trình soạn thảo văn bản (ví dụ nano).

    sudo nano /etc/selinux/config
    

    Tìm dòng:

    SELINUX=disabled
    

    Thay đổi thành:

    SELINUX=enforcing
    

    Lưu thay đổi và khởi động lại hệ thống để áp dụng:

    sudo reboot
    
  3. Kiểm tra sau khi khởi động lại.

    Sau khi server khởi động lại, kiểm tra lại trạng thái của SELinux:

    getenforce
    

    Nếu hệ thống trả về Enforcing, chúc mừng bạn, bạn đã bảo vệ an toàn cho server!


Ví dụ với SELinux và web server

Giả sử bạn có một web server lưu trữ các tệp trong thư mục /var/www/html. Kiểm tra cách SELinux bảo vệ thư mục này nhé.

  1. Xem ngữ cảnh của tệp: SELinux sử dụng ngữ cảnh để quản lý quyền truy cập. Hãy kiểm tra ngữ cảnh của thư mục /var/www/html.

    ls -Z /var/www/html
    

    Ví dụ kết quả:

    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
    

    Nếu có gì sai, bạn có thể tạm thời thay đổi ngữ cảnh:

    sudo chcon -t httpd_sys_content_t /var/www/html
    
  2. Kiểm tra hoạt động của web server: Sau khi cấu hình ngữ cảnh, hãy kiểm tra xem server của bạn có hoạt động ổn định không và có lỗi truy cập nào không.


3. Bước 3: Quản lý quyền truy cập với ACL

ACL (Access Control List) — giống như "chìa khóa bổ sung" để quản lý quyền truy cập. Khi quyền cơ bản rwx hạn chế, ACL cho phép bạn tinh chỉnh quyền truy cập cho người dùng cụ thể.

Tạo thư mục thử nghiệm

Hãy tạo thư mục project_dir và cấu hình nó để hai người dùng: user1user2 có thể truy cập.

  1. Tạo thư mục:

    sudo mkdir /project_dir
    
  2. Cài đặt quyền truy cập:

    Hãy cho phép user1 toàn quyền truy cập, và user2 chỉ được quyền đọc:

    # Toàn quyền truy cập cho user1
    sudo setfacl -m u:user1:rwx /project_dir
    
    # Chỉ quyền đọc cho user2
    sudo setfacl -m u:user2:r-- /project_dir
  3. Kiểm tra ACL:

    # Kiểm tra quyền hiện tại
    getfacl /project_dir

    Kết quả sẽ hiện các cài đặt của bạn:

    # file: /project_dir
    user::rwx
    user:user1:rwx
    user:user2:r--
  4. Cài đặt quyền mặc định:

    Để tất cả các tệp mới trong thư mục tự động kế thừa quyền ACL, hãy đặt quyền mặc định:

    sudo setfacl -d -m u:user1:rwx /project_dir
    sudo setfacl -d -m u:user2:r-- /project_dir
    

4. Kiểm tra cấu hình cuối cùng

  1. Tường lửa:

    • Đảm bảo rằng các cổng SSH và HTTP được mở, còn các cổng khác bị chặn. Thử kết nối đến server qua SSH và mở trang web trên trình duyệt.
  2. SELinux:

    • Kiểm tra context của file để đảm bảo rằng SELinux giới hạn quyền truy cập đúng cách.
  3. ACL:

    • Đăng nhập dưới các người dùng user1user2 rồi thử đọc và ghi file trong thư mục /project_dir.

Bài tập thực hành

  1. Cài đặt tường lửa chỉ cho phép truy cập qua SSH và HTTP.
  2. Bật SELinux ở chế độ enforcing và đảm bảo rằng web server hoạt động đúng.
  3. Cấu hình ACL cho thư mục /project_dir, để user1 có toàn quyền truy cập, còn user2 chỉ có quyền đọc.
  4. Kiểm tra người dùng đang hoạt động trên hệ thống bằng lệnh who.

Những bài tập này sẽ giúp bạn củng cố kiến thức và hiểu cách áp dụng chúng vào thực tế. Và nhớ rằng: bảo mật trên Linux không chỉ là cấu hình mà còn là sự chú ý đến từng chi tiết. Chúc bạn may mắn!

1
Опрос
Làm việc với người dùng trong Linux,  5 уровень,  5 лекция
недоступен
Làm việc với người dùng trong Linux
Làm việc với người dùng trong Linux
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION