Linux CentOS 8(SELinux的配置与管理)
一、SELinux简介
SELinux全称为“Security-Enhanced Linux”,是安全增强型Linux系统,一个Linux内核模块,也是Linux的一个安全子系统。开启后会关闭系统中不安全的功能。主要作用是最大限度地减小系统中服务进程可访问的资源。
二、SELinux工作模式
SELinux有Enforcing、Permissive、Disabled三种模式:
- Enforcing(强制模式):违反SELinux规则的行为将被阻止并记录到日志中。
- Permissive(宽容模式):违反SELinux规则的行为只会记录到日志中。一般为调试用。
- Disabled(关闭模式):SELinux并没有实际运行。
三、SELinux配置文件
在 CentOS 8 系统中,有三套政策:
- targeted:对大部分网络服务进程进行管制。这是系统默认使用的政策。
- minimum:以 targeted 为基础,仅对选定的网络服务进程进行管制。一般不用。
- mls:多级安全保护。对所有的进程进行管制。这是最严格的政策,配置难度非常大。一般不用,除非对安全性有极高的要求。
[root@localhost ~]# cat /etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted
//如果想要修改模式和策略,更改这个文件里面的内容即可。
四、SELinux模式切换
4.1 查看状态
[root@localhost ~]# getenforce
或
[root@localhost ~]# sestatus -v
//如果第一行的SELinux status参数为enabled即为开启状态
4.2 关闭SELinux
临时关闭(不用重启)
[root@localhost ~]# setenforce 0
//设置SELinux 为permissive模式
//setenforce 1|0 设置SELinux 为Enforcing|Premission模式
//临时关闭的适用范围只能在够在Enforcing和Permissive两种模式之间进行切换
永久关闭
[root@localhost ~]# vim /etc/selinux/config
SELINUX=disabled
[root@localhost ~]# reboot
4.3 显示信息
[root@localhost ~]# sestatus -v
五、SELinux安全上下文
传统Linux,一切接文件,由用户,组,权限控制访问; 在SELinux中,一切皆对象,由存放在inode的扩展属性域的安全元素所控制其访问。所有文件、端口资源和进程都具备安全标签:安全上下文。安全上下文是SELinux的核心。
5.1 查看文件或目录的安全上下文
[root@localhost ~]# ls –Z /var/log/messages
-rw-------. root root system_u:object_r:var_log_t:s8 /var/log/messages
5.2 查看进程的安全上下文
[root@localhost ~]# ps auxZ | grep -v grep | grep <进程名>
5.3 修改文件或目录的安全上下文为default_t
[root@localhost ~]# chcon -t default_t /var/log/messages
// -R 递归处理所有的文件及子目录
-v 为处理的所有文件显示诊断信息
-r 修改安全上下文角色的配置
-t 修改安全上下文类型的配置
[root@localhost ~]# ls –Z /var/log/messages
-rw-------. root root system_u:object_r: default_t:s8 /var/log/messages
5.4 把文件或目录的安全上下文恢复到默认值
[root@localhost ~]# restorecon -Rv /var/log/messages
5.5 添加目录的默认安全上下文
[root@localhost ~]# semanage fcontext -a -t default_t ‘/var/log/messages(./*)?’
//目录或文件的默认安全上下文可以通过 semanage fcontext -l 命令配合 grep过滤查看
5.6 添加某类进程允许访问的端口
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 82
//各种服务类型所允许的端口号可以通过 semanage port -l 命令配合 grep 过滤查看
六、SEbool
系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。而进程需要管制的类型由政策决定的。一套政策里面有多个布尔型规则。部分布尔型规则可以按照需求启用或禁用。布尔型规则是 SELinux 对服务功能能添加的开关。
6.1 查看功能开关
[root@localhost ~]# getsebool -a | grep httpd
httpd_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_connect_ftp --> off
//由于该命令要么查询所有规则,要么只查询一个规则,所以一般都是先查询所有规则然后用 grep 筛选。
6.2 开关一个布尔型规则
[root@localhost ~]# setsebool -P httpd_anon_write on
[root@localhost ~]# setsebool -P httpd_anon_write off
或
[root@localhost ~]# setsebool -P httpd_anon_write=1
[root@localhost ~]# setsebool -P httpd_anon_write=0
//-P 重启仍然生效
制作成员: 何嘉愉
排版: 裕新
初审: 杨佳佳
复审: 二月二