国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

SELinux auditd日志上手方法詳解

2024-08-27 23:56:08
字體:
來源:轉載
供稿:網友
  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 錯誤了。這些工具非常好用,要熟練掌握。
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太湖县| 江阴市| 东安县| 长子县| 钦州市| 宿迁市| 格尔木市| 楚雄市| 大渡口区| 扎赉特旗| 盐城市| 乐平市| 乳山市| 成武县| 海阳市| 成安县| 甘谷县| 工布江达县| 深泽县| 淮南市| 青铜峡市| 宁都县| 江北区| 湟源县| 芦溪县| 金川县| 柳河县| 绿春县| 安顺市| 乐陵市| 双牌县| 湛江市| 桑日县| 屏东县| 石首市| 滕州市| 毕节市| 象山县| 修武县| 封开县| 垫江县|