CentOS 中的 SELinux 是什么?
SELinux(Security-Enhanced Linux) 是由美国国家安全局(NSA)开发、后来并入 Linux 内核的一种强制访问控制(MAC,Mandatory Access Control)安全机制。在 CentOS(以及 RHEL、Rocky、Alma 等衍生系统)中,SELinux 是默认启用的重要安全组件。
传统 Linux 使用 DAC(自主访问控制):
用户/组/权限(rwx) 控制SELinux 在 DAC 之上增加一层 MAC 控制:
getenforce
常见状态:
临时切换:
setenforce 0 # 临时改为 Permissive
setenforce 1 # 临时改为 Enforcing
永久修改:
vi /etc/selinux/config
SELINUX=enforcing
查看:
ls -Z /var/www/html
ps -Z
格式示例:
system_u:object_r:httpd_sys_content_t:s0
userroletype(最重要)levelhttpd_thttpd_sys_content_thttpd_t 读 httpd_sys_content_t 才行开关式策略:
getsebool -a | grep httpd
setsebool -P httpd_can_network_connect on
chcon -R -t httpd_sys_content_t /data/www
或恢复默认:
restorecon -Rv /var/www
semanage port -a -t http_port_t -p tcp 8080
ausearch -m avc -ts recent
setroubleshoot
CentOS 的 SELinux 是“比 root 还管得住 root”的内核级安全机制,用来防止程序越权,是服务器安全的重要防线。
如果你愿意,我可以: