0
0
Lập trình
Admin Team
Admin Teamtechmely

Khám Phá SELinux: Bảo Mật Linux Toàn Diện

Đăng vào 4 ngày trước

• 4 phút đọc

SELinux: Bảo Mật Nâng Cao Cho Máy Chủ Linux

Khi chạy máy chủ Linux, bảo mật luôn là một vấn đề quan trọng. Quyền truy cập tệp thông thường (đọc, ghi, thực thi) hữu ích, nhưng không đủ trong thế giới hiện đại, nơi các ứng dụng và dịch vụ kết nối với nhau theo nhiều cách. Đó là lý do tại sao SELinux (Security-Enhanced Linux) ra đời.

SELinux Là Gì?

SELinux là một công cụ tích hợp sẵn trong nhân Linux, điều khiển những gì ứng dụng, người dùng và quy trình có thể thực hiện. Nó không chỉ dựa vào quyền truy cập tệp thông thường của Linux. Thay vào đó, nó tuân theo các quy tắc nghiêm ngặt, gọi là chính sách, xác định những gì được phép và những gì không được phép.

Hãy nghĩ về nó như một nhân viên bảo vệ. Ngay cả khi bạn có chìa khóa vào một căn phòng (quyền truy cập tệp Linux), nhân viên bảo vệ (SELinux) có thể ngăn bạn vào nếu các quy tắc không cho phép bạn vào.

Tại Sao Nên Sử Dụng SELinux?

  • Bảo vệ bổ sung: Cung cấp bảo mật vượt xa quyền truy cập tệp thông thường.
  • Ngăn chặn tấn công: Nếu một ứng dụng bị tấn công, SELinux có thể ngăn nó truy cập vào các tệp nhạy cảm.
  • Ghi lại hành vi: SELinux ghi lại các nỗ lực khi có điều gì đó cố gắng vi phạm các quy tắc.
  • Giới hạn khả năng của ứng dụng: Đảm bảo hệ thống an toàn hơn bằng cách giới hạn những gì ứng dụng có thể làm.

Các Chế Độ Của SELinux

SELinux hoạt động trong ba chế độ khác nhau:

  1. Enforcing: Các quy tắc được kích hoạt và SELinux chặn mọi thứ không được phép.
  2. Permissive: Các quy tắc được kiểm tra nhưng không được thực thi. Vi phạm chỉ được ghi lại. Phù hợp để thử nghiệm.
  3. Disabled: SELinux đã bị tắt.

Để kiểm tra chế độ hiện tại, sử dụng lệnh:

bash Copy
getenforce

Hoặc để biết thêm chi tiết:

bash Copy
sestatus

Cài Đặt SELinux

Trên các hệ thống như RHEL, CentOS, Fedora hoặc tương tự:

bash Copy
sudo yum install -y selinux-policy selinux-policy-targeted policycoreutils

Trên Debian/Ubuntu:

bash Copy
sudo apt update
sudo apt install selinux-basics selinux-policy-default auditd

Kích hoạt SELinux trên Debian/Ubuntu:

bash Copy
sudo selinux-activate

Thay Đổi Cài Đặt SELinux

Tệp chính để thay đổi cài đặt là:

bash Copy
/etc/selinux/config

Bạn sẽ thấy điều gì đó như sau:

bash Copy
SELINUX=enforcing   # Tùy chọn: enforcing | permissive | disabled
SELINUXTYPE=targeted
  • enforcing = hoàn toàn kích hoạt.
  • permissive = chỉ ghi lại các vi phạm.
  • disabled = tắt.

Thay Đổi SELinux Mà Không Cần Khởi Động Lại

bash Copy
sudo setenforce 0   # Chuyển sang permissive
sudo setenforce 1   # Chuyển lại sang enforcing

Thay Đổi SELinux Vĩnh Viễn

Chỉnh sửa tệp /etc/selinux/config và đặt chế độ. Điều này có hiệu lực sau khi khởi động lại.

Các Lệnh SELinux Hữu Ích

Kiểm Tra Các Hành Động Bị Từ Chối

bash Copy
sudo cat /var/log/audit/audit.log | grep denied

Quản Lý Quy Tắc SELinux (biến boolean)

Biến boolean là những công tắc bạn có thể bật hoặc tắt để cho phép một số hành động nhất định. Ví dụ, để cho phép Apache kết nối với cơ sở dữ liệu:

bash Copy
sudo setsebool -P httpd_can_network_connect_db on

Danh sách tất cả các biến boolean có sẵn:

bash Copy
getsebool -a

Tắt SELinux (Không Phải Là Ý Tưởng Hay)

Nếu bạn phải tắt SELinux:

  1. Mở tệp cấu hình:
bash Copy
sudo vi /etc/selinux/config
  1. Thay đổi dòng này:
bash Copy
SELINUX=disabled
  1. Khởi động lại máy chủ.

Nhưng hãy nhớ: tắt SELinux có nghĩa là bạn sẽ mất đi một lớp bảo vệ quan trọng.

Kết Luận

Ban đầu, SELinux có thể cảm thấy khó hiểu, nhưng thực tế nó là một công cụ mạnh mẽ để giữ cho hệ thống của bạn an toàn. Một cách tốt để bắt đầu là chạy nó ở chế độ permissive để bạn có thể thấy những gì nó sẽ chặn, sau đó từ từ chuyển sang chế độ enforcing khi bạn đã sẵn sàng.

Với SELinux, bạn làm cho nó khó khăn hơn cho kẻ tấn công hoặc các ứng dụng lỗi gây hại cho hệ thống của bạn.

Thực Hành Tốt Nhất Với SELinux

  • Bắt đầu với chế độ permissive: Kiểm tra các vi phạm trước khi chuyển sang chế độ enforcing.
  • Theo dõi nhật ký: Sử dụng nhật ký để xác định các vấn đề và điều chỉnh chính sách cho phù hợp.
  • Thường xuyên cập nhật chính sách: Đảm bảo rằng chính sách SELinux được cập nhật với nhu cầu của hệ thống.

Những Cạm Bẫy Phổ Biến

  • Không kiểm tra trước khi bật chế độ enforcing: Có thể gây ra sự cố khi ứng dụng không hoạt động đúng.
  • Không theo dõi nhật ký: Bỏ qua các cảnh báo có thể dẫn đến lỗ hổng bảo mật.

Mẹo Tối Ưu Hiệu Suất

  • Tối ưu hóa chính sách SELinux: Đảm bảo rằng các chính sách không quá nghiêm ngặt khiến ứng dụng không hoạt động.
  • Giảm thiểu số lượng biến boolean không cần thiết: Chỉ bật những gì thực sự cần thiết.

Giải Quyết Vấn Đề

Nếu bạn gặp phải các vấn đề với SELinux, hãy kiểm tra:

  • Nhật ký audit: Để xem các hành động bị từ chối.
  • Chạy lệnh getsebool: Để kiểm tra trạng thái các biến boolean.

Câu Hỏi Thường Gặp

SELinux có an toàn không?

SELinux cung cấp một lớp bảo mật bổ sung cho máy chủ Linux của bạn, giúp bảo vệ tốt hơn trước các cuộc tấn công.

Tôi có thể tắt SELinux không?

Có, nhưng không nên. Tắt SELinux có thể làm giảm an toàn cho hệ thống của bạn.

Tôi nên sử dụng chế độ nào cho SELinux?

Bắt đầu với chế độ permissive để kiểm tra, sau đó chuyển sang chế độ enforcing khi bạn đã sẵn sàng.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào