Bài 10: Cài đặt và cấu hình SELinux
SELinux là gì? Cài đặt và cấu hình SELinux như thế nào? Phương thức hoạt động của SELinux? Cách tắt hay bật SELinux như thế nào? Bài viết này hướng dẫn các bạn các vấn đề cơ bản nhất của hệ thống bảo mật SELinux.
SElinux là gì?
SELinux – viết tắt của cụm từ Security-Enhanced Linux. Là một module bảo mật trong Linux kernel được phát triển đầu tiên bởi Cơ quan An ninh Quốc Gia Hoa Kỳ (NSA). SELinux cung cấp một cơ chế an ninh và kiểm soát truy cập bắt buộc đối với các dịch vụ hoạt động trong hệ thống theo tiêu chuẩn của Bộ Quốc Phòng Hoa Kỳ.
Phiên bản SELinux cho cộng đồng mã nguồn mở được NSA giới thiệu lần đầu tiên vào ngày 22/12/2003, và lần đầu tiên được sử dụng trong phiên bản Linux kernel 2.6.0.
Thành phần cơ bản của SELinux được tích hợp sẵn trong hệ điều hành CentOS ngay từ khi cài đặt.
SELinux để làm gì?
SELinux kiểm soát các sửa đổi kernel và các công cụ trong không gian người dùng được thêm vào trong các bản phân phối Linux khác nhau. Kiến trúc của nó cố gắng tách biệt việc thực thi các quyết định an ninh với việc phân loại các dịch vụ cần thi hành các chính sách an ninh.
Phương thức hoạt động của SELinux
SELinux khoanh vùng các tập tin và tài nguyên mà các chương trình người dùng và máy chủ hệ thống được phép truy cập. Bằng cách này nó hạn chế được thiệt hại do các ứng dụng độc hại hoặc những ứng dụng lỗi gây ra. Cơ chế khoanh vùng của SELinux hoạt động độc lập với cơ chế kiểm soát truy cập truyền thống của Linux. SELinux bỏ qua tất cả các khái niệm và ưu tiên của super-user. Vì điều này mà tránh được các thiếu sót của hệ thống cũ.
SELinux cung cấp nhiều lựa chọn như:
- Kiểm soát truy cập bắt buộc
- Điều khiển toàn vẹn bắt buộc
- Kiểm soát truy cập dựa trên vai trò người dùng
- An ninh đa cấp và kiểu kiến trúc thực thi.
Cài đặt và cấu hình SELinux
Trước tiên hãy tiến hành update hệ thống của bạn bằng lệnh:
# yum -y update
Cài các gói bảo mật bằng lệnh sau:
# yum install policycoreutils policycoreutils-python selinux-policy selinuxpolicy-targeted libselinux-utils setroubleshoot-server setools setoolsconsole mcstrans
Chú ý: Nếu kết nối mạng chậm hoặc phát sinh lỗi trong khi cài đặt, bạn thử cài riêng lần lượt từng gói bảo mật xem đến gói nào bị lỗi (server, đường truyền…) để có hướng kkhắc phục.
Xem trạng thái SELinux:
Sau khi cài xong các gói bảo mật. Bạn có thể xem trạng thái SELinux đang chạy (enable) hay tắt (disable) bằng lệnh:
[root@server04 ~]# sestatus
SELinux status: disabled //SELinux đang không chạy
Kiểm tra trên 1 máy khác:
[root@CentOS7-Lab ~]# sestatus
SELinux status: enabled //SELinux đang chạy
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
Thay đổi trạng thái SELinux
Để tắt, hay bật lại SELinux, bạn thiết lập trong file config của nó.
# vi /ect/selinux/config
// Nội dung trong file config như dưới đây
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted – Targeted processes are protected,
# minimum – Modification of targeted policy. Only selected processes are protected.
# mls – Multi Level Security protection.
SELINUXTYPE=targeted
Các dòng có dấu # ở đầu thì nội dung của dòng đó sẽ là chú thích (không có tác dụng thực hiện lệnh)
Tắt hay bật SELinux bằng tham số enforcing (=chạy) hoặc disabled (=tắt). Như vậy ở file cấu hình trên là SELinux đang hoạt động. Giờ muốn tắt SELinux ta thêm dòng SELINUX=disabled và thêm dấu chú thích để vô hiệu hóa dòng enforcing đi. Nội dung sau sẽ là selinux tắt:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted – Targeted processes are protected,
# minimum – Modification of targeted policy. Only selected processes are protected.
# mls – Multi Level Security protection.
SELINUXTYPE=targeted
Như vậy khi muốn đổi trạng thái tắt hay bật selinux bạn chỉ việc thêm bớt dấu # ở đầu dòng tương ứng của lệnh SELINUX.
Khởi động lại máy để các cài đặt và cấu hình SELinux có hiệu lực:
# reboot
Kết luận
Tạm thời trong bài này chúng ta học cách cài đặt và cấu hình SELinux. Học cách tắt hay bật SELinux đã.
Nếu bạn thấy một dịch vụ nào không thực hiện được hay tắt SELinux đi xem chúng có hoạt động không.
Chúng ta sẽ học một số kỹ thuật điều khiển SELinux nâng cao ở bài viết sau.