SElinux Audit日志分析


1 、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命令來再次分析這個曰志文件

 

 

2 、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權限,即可解決這個問題

 

 

3 、sealert命令

sealert 命令是 setroubleshoot 客戶端工具,也就是 SELinux 信息診斷客戶端工具。雖然 setroubleshoot 服務已經不存在了,但是 sealert 命令還是可以使用的。命令格式如下:

[root@localhost ~]# sealert [選項] 日志文件名

選項:

    • -a:分析指定的日志文件;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM