SELinux约束各个服务,防止各服务越权访问其他信息。
SELinux 有三种工作模式,分别是:
- enforcing:强制模式。拦截服务的不合法请求。
- permissive:宽容模式。当遇到服务越权访问时,只发出警告不拦截。
- disabled:关闭 SELinux,对于越权行为不警告也不拦截。
可以从命令行或 /etc/selinux/config 文件更改 SELinux 的模式。
命令模式:
- 设置模式为Enforcing
setenforce 1
确定模式已经正确设置getenforce
2)设置模式为Permissive
setenforce 0
getenforce
修改配置文件
编辑 vim /etc/selinux/config
SELINUX=enforcing:当前SELinux的模式
SELINUXTYPE=targeted:当前SELinux的策略
扩展:
查询文件或目录的安全上下文 ls -Zd
semange命令用于管理SELinux策略
格式为semange [选项] [文件]
1) 查看默认所有安全上下文列表
semansge fcontext -l
2)添加安全上下文
semanage fcontext -a -t httpd_sys_content_t 文件
3)删除安全上下文
semanage fcontext -d -t httpd_sys_content_t 文件
4)添加端口
semanage port -a http_port_t -p tcp 8080
5)删除端口
semanage port -d http_port_t -p tcp 8080
配置好SELinux策略后,还需使用restorecon命令将设置好的SELinux安全上下文生效
-Rv 对指定的目录进行递归操作
例:restorencon -Rv 目录/文件
安全上下文
安全上下文是seLinux的核心
安全上下文有以下字段,分别用冒号隔开。
system_u:object_r:admin_home_t:s0
用户 角色 类型
chcon :手动修改文件的seLinux安全上下文
chcon [-R] [-t type] [-u user] [-r role ] 文件
chcon 【-R】 --reference=范例文件 文件
参数:
-t 后面接安全上下文的类型栏目。如:httpd_sys_content_t
-u 后面接身份识别。如:system_u
-r 后面接角色。如:system_r
-v 若变动成功,将变动结果列出来
--reference 拿某个文件当范例修改后续的文件的类型
例:
chcon -R --reference=‘/var/www/html’ /new_web_dir