SELinux auditd日志上手办法详解
发布时间:2023-12-18 15:39:26 所属栏目:Linux 来源:DaWei
导读: auditd 会把 SELinux 的信息都记录在 /var/log/auditd/auditd.log 中。这个文件中记录的信息会非常多,如果手工查看,则效率将非常低下。比如笔者的 Linux 中这个日志的大小就有 386KB。
auditd 会把 SELinux 的信息都记录在 /var/log/auditd/auditd.log 中。这个文件中记录的信息会非常多,如果手工查看,则效率将非常低下。比如笔者的 Linux 中这个日志的大小就有 386KB。 [root@localhost ~]# ll -h /var/log/audit/audit.log -rw-------.1 root root 386K 6月 5 15:53 /var/log/audit/audit.log 而且我们这里的 Linux 只是实验用的虚拟机,如果是真正的生产服务器,那么这个日志的大小将更加恐怖(注意:audit.log 并没有自动加入 logrotate 日志轮替当中,需要手工让这个日志进行轮替)。所以,如果我们手工查看这个日志,那么效率会非常低下。 还好,Linux 较为人性化,给我们准备了几个工具,来帮助我们分析这个日志,下面分别来学习一下。 audit2why命令 audit2why 命令用来分析 audit.log 日志文件,并分析 SELinux 为什么会拒绝进程的访问。也就是说,这个命令显示的都是 SELinux 的拒绝访问信息,而正确的信息会被忽略。命令的格式也非常简单,如下: [root@localhost ~]# audit2why < 日志文件名 例如: [root@localhost ~]# audit2why < /var/log/audit/audit.log type=AVC msg=audit(1370412789.400:858): avc: denied { getattr ) for pid=25624 comm="httpd" path="/var/www/htirl/index.html" dev=sda3 ino=918426 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file #这条信息的意思是拒绝7 PID 是 25624的进程访间"/var/uww/html/Index.html",原因是主体的安全上下文和目标的安全上下文不匹配。其中,denied代表拒绝,path指定目标的文件名,scontext代表全体的安全上下文。tcontext代表目标的安全上下文,仔细看看,其实就是主体的安全上下文类型httpd_t和目标的安全上下文类型var_t不匹配导致的 Was caused by: Missing type enforcement (TE) allow rule. You can use audit2allow to generate a loadable module to allow this access. #给你的处理建议是使用audi t2allow命令来再次分析这个曰志文件 audit2allow命令 audit2allow 命令的作用是分析日志,并提供允许的建议规则或拒绝的建议规则。这么说很难理解,我们还是尝试一下吧,命令如下: [root@localhost ~]# audit2allow -a /var/log/audit/audit.log #选项-a:指定日志文件名 #============= httpd_t ============== allow httpd_t var_t:file getattr; #提示非常简单,我们只需定义一个规则,允许httpd_t类型对var_t类型拥有getattr权限,即可解决这个问题 可是我们到现在还没有学习如果修改策略规则,这该如何是好?其实像这种因为主体和目标安全上下文类型不匹配的问题,全部可以使用 restorecon 命令恢复目标(文件)的安全上下文为默认安全上下文,即可解决问题,简单方便,完全不用自己定义规则。但是 audit2allow 命令对其他类型的 SELinux 错误还是很有帮助的。 sealert命令 sealert 命令是 setroubleshoot 客户端工具,也就是 SELinux 信息诊断客户端工具。虽然 setroubleshoot 服务已经不存在了,但是 sealert 命令还是可以使用的。命令格式如下: [root@localhost ~]# sealert [选项] 日志文件名 选项: -a:分析指定的日志文件; 也使用这个工具分析一下我们的 audit.log 日志,命令如下: [root@localhost ~]# sealert -a /var/log/audit/audit.log 100% done'tuple' object has no attribute 'split' 100% donefound 2 alerts in /var/log/audit/audit.log SELinux is preventing /usr/sbin/httpd from getattr access on the 文 件 /var/www/html/index.html. ***插件 restorecon (94.8 置信度) 建议 ********************************* If 您想要修复标签。 /var/www/html/index.html 默认标签应为 httpd_sys_content_t。 Then 您可以运行 restorecon。 Do # /sbin/restorecon -v /var/www/html/index.html #提示非常明确,只要运行以上命令,即可修复index.html文件的问题 有了这些日志分析工具,我们就能够处理常见的 SELinux 错误了。这些工具非常好用,要熟练掌握。 (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- active-directory – 组合NFS,Samba服务器来自Active Direc
- 如何将Linux密钥从/ dev / input / event *转换为ASCII
- How can I exclude directories from grep -R?
- linux – FTP:如何摆脱“警告! 1个以ASCII模式接收的裸线
- linux – 如何转义.gitconfig代理身份验证中的特殊字符
- linux – iwconfig – 通过wifi在终端上连接网络
- linux – 如何在终端中记住多个选项卡的会话? (同级会议经
- java-service-wrapper如何决定是使用32位还是64位VM?
- Linux系统调用,libc,VDSO和实现解析
- linux – i386:x64-32 vs i386 vs i386:x86_64之间的区别
推荐文章
站长推荐