linux · 2022年8月20日 0

SELinux

前言

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
如果可以熟练掌握 SELinux 并正确运用,我觉得整个系统基本上可以到达“坚不可摧”的地步了(请永远记住没有绝对的安全)。
掌握 SELinux 的基本概念以及简单的配置方法是每个 Linux 系统管理员的必修课。

开启SELinux

#setenforce 1

修改配置文件/etc/selinux/config 使其永久开启

#vim /etc/selinux/config
SELINUX=enforcing

安装SELinux管理软件

安装 setroubleshoot-server和setroubleshoot (这个服务会将关于 SELinux 的 错误讯息与克服方法记录到 /var/log/messages 与 /var/log/setroubleshoot/* 里头)

#yum install setroubleshoot-server setroubleshoot -y

注意:在CentOS7 下, setroubleshoot服务是作为auditd的子模块的,
所以安装完成后要重启auditd服务,使setroubleshoot生效

#service auditd restart

SElinux报错处理
查看/var/log/messages日志,根据提示解决问题
例如php-fpm出现selinux问题:

解决方法如下:

#ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
#semodule -i my-phpfpm.pp

SElinux的详细介绍请查看以下链接:
https://wiki.centos.org/HowTos/SELinux