当前位置:首页>Linux>真实的Linux故障诊断场景 08 SELinux 问题

真实的Linux故障诊断场景 08 SELinux 问题

  • 2026-09-02 19:10:47
真实的Linux故障诊断场景 08 SELinux 问题

场景 94:Apache 的 SELinux 拒绝

故障排除步骤:

检查审计日志中的 SELinux 拒绝: 

ausearch -m avc -ts recent

识别被拒绝的操作和受影响的文件。

调整文件的 SELinux 上下文: 

chcon -Rv --type=httpd_sys_content_t /path/to/files

重新测试 Apache 服务。

场景 95:SELinux 阻止 MySQL 连接

故障排除步骤:

检查 SELinux 拒绝:

ausearch -m avc -ts recent

如果 MySQL 使用非标准端口,请更新 SELinux 策略:

semanage port -a-t mysqld_port_t -p tcp <port_number>

重启 MySQL 并监控日志中的 SELinux 拒绝。

场景 96:SELinux 拒绝 SSH 访问

故障排除步骤:

检查 SELinux 拒绝:

ausearch -m avc -ts recent

如果问题与主目录相关,请设置正确的 SELinux 上下文:

restorecon -Rv /home/user

查看 SSH 的 SELinux 布尔值:

getsebool -a | grepssh

如果需要,调整布尔值:

setsebool -P ssh_enabled 1

场景 97:SELinux 阻止 Nginx 反向代理

故障排除步骤:

检查 SELinux 拒绝:

ausearch -m avc -ts recent

如果 Nginx 使用非标准端口,请更新 SELinux 策略:

semanage port -a-t http_port_t -p tcp <port_number>

调整 Nginx 日志或代理配置的 SELinux 上下文: 

chcon -Rv --type=httpd_config_t /etc/nginx

场景 98:自定义应用程序的 SELinux 拒绝

故障排除步骤:

查看审计日志中的 SELinux 拒绝:

ausearch -m avc -ts recent

创建自定义 SELinux 策略模块:

audit2allow -a -M myapp

加载自定义模块:

semodule -i myapp.pp

重新测试自定义应用程序。

场景 99:SELinux 阻止 Sendmail

故障排除步骤:

检查审计日志中的 SELinux 拒绝:

ausearch -m avc -ts recent

如果 Sendmail 使用非标准端口,请更新 SELinux 策略: 

semanage port -a -t mail_port_t -p tcp <port_number>

重新加载或重启 Sendmail:

systemctl reload sendmail

场景 100:自定义文件访问的 SELinux 拒绝

故障排除步骤:

检查审计日志中的 SELinux 拒绝:

ausearch -m avc -ts recent

使用 chcon 设置文件的正确 SELinux 上下文: 

chcon -Rv --type=my_custom_type /path/to/files

如果需要,更新 SELinux 策略。

场景 101:Cron 作业的 SELinux 拒绝

故障排除步骤:

查看 SELinux 拒绝: 

ausearch -m avc -ts recent

如果 cron 作业访问特定文件,请调整文件上下文:

restorecon -Rv /path/to/files

如果需要,为 cron 作业创建自定义 SELinux 模块。

场景 102:Samba 共享的 SELinux 拒绝

故障排除步骤:

检查 SELinux 拒绝: 

ausearch -m avc -ts recent

为 Samba 共享设置适当的 SELinux 上下文: 

semanage fcontext -a -t samba_share_t "/path/to/share(/.*)?"

应用新的上下文:

restorecon -Rv /path/to/share

场景 103:Docker 容器的 SELinux 阻止

故障排除步骤:

检查 SELinux 拒绝:

ausearch -m avc -ts recent

如果 Docker 使用非标准端口,请更新 SELinux 策略: 

semanage port -a -t container_port_t -p tcp <port_number>

调整 Docker 相关目录的 SELinux 上下文: 

chcon -Rv --type=container_file_t /var/lib/docker

这些步骤涵盖了各种 SELinux 场景。始终查看日志,根据需要创建自定义策略,并使用 SELinux 工具以安全的方式进行故障排除和解决问题。

最新文章

随机文章