09/28/13

排除SELinux疑难

SELinux 阻止你需要访问的东西,要怎么解决这个问题呢?

SELinux 拒绝某个文件、进程或资源被访问的基本原因有数个:

1 、一个被错误标签的文件
2、 一个进程在错误的 SELinux 安全性脉络下运行
3、 政策出错,某个进程要访问一个在编写政策时意料不到的文件,并产生错误信息
4、 一个入侵的企图

排查工具:

安装setroubleshoot 组件。

yum install setroubleshoot

(https://fedorahosted.org/setroubleshoot)

1、日志是排除任何疑难的关键,而 SELinux 亦不例外。

2、SELinux 缺省会通过 Linux 审计系统(auditd)将日志写在 /var/log/audit/audit.log 内,而这项务服缺省为启用的。假若 auditd 并未运行,信息将会被写进 /var/log/messages。SELinux 的日志都被标签有 AVC 这个关键字,方便它们从其它信息中过滤出来。

3、由 CentOS 5 起,你可以用 SELinux 排除疑难工具协助你分析日志,将它们转换为供人阅读的格式。这个工具包含一个以可读格式显示信息及解决方案的图像界面、一个桌面通报图示、与及一个长驻进程(setroubleshootd),它负责查阅新的 SELinux AVC 警告并传送至通报图示(不运行 X 服务器的话可设置以电邮通报)。SELinux 排除疑难工具是由 setroubleshoot 组件所提供,并缺省会被安装。这个工具可以从「系统」选单或命令行引导:
sealert -b

4、不运行 X 服务器的人可以通过命令行产生供人阅读的报告:

sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt