centos selinux怎么配置
导读:1. 检查SELinux当前状态 使用getenforce命令快速查看SELinux当前模式(Enforcing/Permissive/Disabled);sestatus命令可获取更详细的状态信息(如策略类型、是否启用等)。 2. 临时更...
1. 检查SELinux当前状态
使用getenforce
命令快速查看SELinux当前模式(Enforcing/Permissive/Disabled);sestatus
命令可获取更详细的状态信息(如策略类型、是否启用等)。
2. 临时更改SELinux模式
通过setenforce
命令临时切换模式(无需重启):
setenforce 1
:切换至Enforcing模式(强制执行策略,拒绝非法操作并记录日志);setenforce 0
:切换至Permissive模式(仅记录违规操作,不阻止执行,用于调试)。
3. 永久更改SELinux模式
编辑/etc/selinux/config
文件(系统默认配置文件),修改SELINUX=
参数:
SELINUX=enforcing
:启用强制模式(默认);SELINUX=permissive
:启用宽容模式(调试用);SELINUX=disabled
:完全禁用SELinux(需重启系统生效)。
修改后需重启系统使更改生效。
4. 管理SELinux安全上下文
安全上下文(user:role:type:level
)是SELinux的核心,决定进程与文件的访问权限。常用命令:
- 查看上下文:
ls -Z
(查看文件/目录)、ps -Z
(查看进程); - 临时修改上下文:
chcon
命令(如将/var/www/html/index.html
设为httpd_sys_content_t
类型,允许Apache访问):sudo chcon -t httpd_sys_content_t /var/www/html/index.html
- 永久修改上下文:
semanage fcontext
(添加默认上下文规则)+restorecon
(应用规则,如为/opt/webapps
目录设置永久上下文):sudo semanage fcontext -a -t httpd_sys_content_t "/opt/webapps(/.*)?" sudo restorecon -Rv /opt/webapps # -R递归处理,-v显示详细信息 ```。
5. 配置SELinux布尔值
布尔值(Boolean)用于快速开关SELinux的特定功能(如允许Apache访问用户家目录)。常用命令:
- 查看所有布尔值:
getsebool -a
(过滤特定服务如Apache:getsebool -a | grep httpd
); - 临时修改布尔值:
setsebool
(如启用Apache访问用户家目录):sudo setsebool httpd_enable_homedirs 1
- 永久修改布尔值:添加
-P
参数(如永久启用):sudo setsebool -P httpd_enable_homedirs 1 ```。
6. 自定义SELinux策略模块
当遇到SELinux拒绝操作(如Web服务无法访问自定义端口),可通过audit2allow
工具从日志生成自定义策略:
- 查看拒绝日志:
grep AVC /var/log/audit/audit.log
(或用ausearch -m avc
); - 生成策略模块:将日志重定向至
audit2allow
(如针对httpd
服务的日志):sudo ausearch -c 'httpd' --raw | audit2allow -M my_httpd_policy
- 加载策略模块:
semodule -i
(如安装生成的my_httpd_policy.pp
文件):sudo semodule -i my_httpd_policy.pp ```。
7. 管理SELinux端口标签
若服务需使用非标准端口(如Apache监听8080端口),需将端口添加至对应策略的端口标签:
sudo semanage port -a -t http_port_t -p tcp 8080 # 添加TCP 8080端口至http_port_t类型
sudo semanage port -l | grep http_port_t # 验证端口是否添加成功
```。
**8. 常见问题排查**
- **Web服务403错误**:检查文件上下文是否正确(`ls -Z /var/www/html`),若上下文不符,用`restorecon`恢复默认;
- **无法绑定非标准端口**:确认端口是否添加至对应策略(如HTTP用`http_port_t`),用`semanage port`添加;
- **SELinux日志分析**:用`sealert -a /var/log/audit/audit.log`生成详细报告,定位拒绝原因。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos selinux怎么配置
本文地址: https://pptw.com/jishu/724604.html