1. SELinux là gì?
SELinux (Security-Enhanced Linux) là một tính năng bảo mật nhằm hạn chế truy cập vào một số module nhất định trên nhân Kernel. SELinux được bật mặc định trên CentOS 7, CentOS 8. SELinux mang lại một cơ chế bảo mật mạnh mẽ hơn cho VPS/Server của bạn, tuy nhiên không phải lúc nào chúng ta cũng biết cách dùng nó hoặc cần dùng tới nó.
Dưới đây là các trạng thái của SELinux:
- Trạng thái Enforcing chặn tất cả truy cập không phép. Ở trạng thái này, SELinux được bật.
- Trạng thái Permissive SELinux sẽ chỉ có cảnh báo chứ không chặn truy cập.
- Trạng thái Disable SELinux sẽ bị tắt và mọi truy cập không phép đều thực hiện được và không có bất kì cảnh báo nào được đưa ra.
2. Có nên tắt SELinux (Disable SELinux)
Không phải tự nhiên mà SELinux được đưa vào và bật mặc định trên CentOS, tác dụng của nó là không thể bàn cãi. Tuy nhiên hầu hết người dùng thông thường không biết cách sử dụng nó và thực tế cũng chưa cần sử dụng nó.
SELinux cũng là nguyên nhân gây lỗi, gián đoạn nhiều dịch vụ như SSH,… lỗi khi cài đặt phần mềm, website, thư viện, framework (đặc biệt là Laravel)… Gây mất thời gian tìm hiểu sửa lỗi mà không rõ nguyên nhân.
Để tránh gặp phải trường hợp này, chúng ta có thể tắt SELinux tạm thời hoặc vĩnh viễn. Mình sẽ hướng dẫn các bạn tắt SELinux ở phần sau.
3. Kiểm tra trạng thái SELinux
Dùng lệnh sestatus để kiểm tra trạng thái hiện tại:
# sestatus
SELinux status: disabled
Nếu trạng thái là “disabled” như trên thì tức là tính năng SELinux đã được tắt rồi. Ngược lại là chưa tắt.
4. Tắt SELinux tạm thời
Khi bạn tắt SELinux tạm thời SELinux sẽ ở trạng thái disabled đến khi nào bạn khởi động lại máy.
Để tắt SELinux tạm thời không cần khởi động lại ta làm như sau.
echo 0 > /selinux/enforce
Hoặc
setenforce 0
Để kích hoạt lại trạng thái bật SELinux.
echo 1 > /selinux/enforce
Hoặc
setenforce 1
5. Tắt SELinux vĩnh viễn
Nhiều khi bạn muốn tắt SELinux vĩnh viễn để tránh xảy ra lỗi sau này, bạn có thể làm theo hướng dẫn sau đây:
Ta sẽ chỉnh sửa lại file /etc/selinux/config , thay đổi giá trị cấu hình “SELINUX” sang “disabled“.
nano /etc/selinux/config
Bạn cố thể dùng bất kỳ trình soạn thảo nào, mình hay dùng nano
# 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 - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
Sau khi bạn edit xong, lưu lại thì bạn cần reboot lại hệ thống để áp dụng cấu hình SELinux mới.
reboot
6. Kết luận
Như vậy mình đã giới thiệu sơ lược cho các bạn về SELinux, các trạng thái của nó và hướng dẫn cách tắt SELinux tạm thời hoặc vĩnh viễn, Chúc các bạn thực hiện thành công!