以下是如何在 CentOS 上配置 SELinux 的步骤:
1. 查看 SELinux 当前状态
使用以下命令检查 SELinux 当前的状态:sestatus
输出示例:
SELinux status: enabledSELinuxfs mount: /selinuxSELinux root directory: /etc/selinuxLoaded policy name: targetedCurrent mode: EnforcingMode from config file: EnforcingPolicy MLS status: enabledPolicy deny_unknown status: allowedMax kernel policy version: 31
2. 更改 SELinux 模式
SELinux 有三种模式:
- Enforcing :强制执行 SELinux 策略,不合规行为会被阻止并记录。
- Permissive :不强制执行 SELinux 策略,不合规行为会被记录但不阻止。
- Disabled :禁用 SELinux。
可以通过编辑配置文件 /etc/selinux/config
来更改 SELinux 模式。找到以下行:SELINUX=enforcing
将其改为所需的模式,例如:SELINUX=permissive
然后重启系统以使更改生效。
3. 指定安全上下文
SELinux 安全上下文由三个部分组成:用户、角色和类型。用户可以通过以下命令指定文件的安全上下文:chcon -u user -r role -t type file
例如:chcon -t httpd_sys_content_t /var/www/html/index.html
4. 查看安全上下文
使用以下命令查看文件或目录的安全上下文:ls -Z file
示例输出:
-rw-r--r--. root root unconfined_u:object_r:user_home_t:s0 file``****5\. 临时修改 SELinux 模式**可以使用 `setenforce` 命令临时更改 SELinux 模式: * 关闭 SELinux 执法:
setenforce 0
* 启用 SELinux 执法:
setenforce
**6\. 修复 SELinux 权限**如果文件或目录的安全上下文被更改,可以使用以下命令修复:
restorecon -Rv /path/to/directory “**
7. 管理布尔值
SELinux 提供布尔值来控制各种策略行为。可以使用以下命令查看所有布尔值:getsebool -a
要修改布尔值,请使用以下命令:sudo setsebool -P boolean_name boolean_value
例如:
sudo setsebool -P httpd_can_network_connect on``****8\. 查看 SELinux 日志**SELinux 日志位于 `/var/log/audit/audit.log`。可以使用以下命令查看 SELinux 警报:
sealert -a /var/log/audit/audit.log
**9\. 查看系统上默认目标策略中的 SELinux 支持服务**使用以下命令查看系统上当前默认目标策略中的 SELinux 支持服务:
semanage -b “**
10. 检测给定端口上是否存在 SELinux
使用以下命令检测给定端口上是否存在 SELinux:
semanage port -l | grep port_number``****11\. 编辑一个已有的布尔值**要编辑一个已有的布尔值,请使用以下命令:
semanage boolean -l | grep httpd “**
以上是配置 SELinux 的一些常见步骤。根据具体需求,可能需要进一步调整和优化 SELinux 配置。