linux audit審計服務audit.rules策略參數

audit是linux內核的特性,可以通過內核參數audit=1來啓用。


/etc/audit/audit.rules是audit的規則文件,本文主要講述如何利用audit來監視系統重要資源。


一、監控文件系統行爲(依靠文件、目錄的權限屬性來識別)

規則格式:-w 路徑 -p 權限 -k 關鍵字

其中權限動作分爲四種


r  讀取文件

w 寫入文件

x 執行文件

a 修改文件屬性



示例,監控/etc/passwd文件的修改行爲(寫,權限修改)



  1. -w /etc/passwd -p wa


將上述內容加入到audit.rules中即可實現對該文件的監視。

同理,爲了維護系統正常,下列資源也應該被監視。



  1. -w /etc/at.allow  

  2. -w /etc/at.deny  

  3. -w /etc/inittab -p wa  

  4. -w /etc/init.d/

  5. -w /etc/init.d/auditd -p wa  

  6. -w /etc/cron.d/ -p wa  

  7. -w /etc/cron.daily/ -p wa  

  8. -w /etc/cron.hourly/ -p wa  

  9. -w /etc/cron.monthly/ -p wa  

  10. -w /etc/cron.weekly/ -p wa  

  11. -w /etc/crontab -p wa

  12. -w /etc/group -p wa  

  13. -w /etc/passwd -p wa  

  14. -w /etc/shadow  

  15. -w /etc/sudoers -p wa

  16. -w /etc/hosts -p wa  

  17. -w /etc/sysconfig/

  18. -w /etc/sysctl.conf -p wa  

  19. -w /etc/modprobe.d/

  20. -w /etc/aliases -p wa

  21. -w /etc/bashrc -p wa

  22. -w /etc/profile -p wa

  23. -w /etc/profile.d/

  24. -w /var/log/lastlog

  25. -w /var/log/yum.log

  26. -w /etc/issue -p wa

  27. -w /etc/issue.net -p wa

  28. -w /usr/bin/ -p wa

  29. -w /usr/sbin/ -p wa

  30. -w /bin -p wa

  31. -w /etc/ssh/sshd_config

注:如果沒有-p選項,則默認監視所有動作rwxa


二、監控系統調用行爲(依靠系統調用來識別)

規則:-a 一系列動作 -S 系統調用名稱 -F 字段=值 -k 關鍵字


系統調用的種類見:

http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html



列舉常見應該被監視的系統調用


-a exit,always
-F 規則字段

none 不記
exit:行爲完成後記錄審計(一般常用)
entry:行爲剛開始時記錄審計(某些規則要求)
  1. 監視文件權限變化,因爲改變權限必須調用umask

  2. -a entry,always -S umask -S chown                            #-a後面的規則:always總是記錄審計;none不記錄;exit行爲完成後記錄審計;entry行爲剛剛開始                                                                                         時記錄審計

  3. 監視主機名變化,因爲修改主機名必須調用sethostname

  4. -a entry,always -S sethostname -S setdomainname

  5. 監視系統時間變化

  6. -a entry,always -S adjtimex -S settimeofday -S stime

  7. 設置系統日期和時間

  8. -a entry,always -S stime

  9. 監控用戶和組ID變化

  10. -a entry,always -S setuid -S seteuid -S setreuid

  11. -a entry,always -S setgid -S setegid -S setregid

  12. 監控掛載

  13. -a entry,always -S mount -S umount


注:請查閱系統調用列表後決定監控那種行爲,系統調用是底層的、全局性的,監控不合適的調用,會給系統帶來巨大負擔。


audit.rules 樣本



  1. # This file contains the auditctl rules that are loaded

  2. # whenever the audit daemon is started via the initscripts.

  3. # The rules are simply the parameters that would be passed

  4. # to auditctl.

  5. # First rule - delete all

  6. -D

  7. # Increase the buffers to survive stress events.

  8. # Make this bigger for busy systems

  9. -b 1024

  10. # Feel free to add below this line. See auditctl man page

  11. -a exit,always -F arch=b64 -S umask -S chown -S chmod

  12. -a exit,always -F arch=b64 -S unlink -S rmdir

  13. -a exit,always -F arch=b64 -S setrlimit

  14. -a exit,always -F arch=b64 -S setuid -S setreuid

  15. -a exit,always -F arch=b64 -S setgid -S setregid

  16. -a exit,always -F arch=b64 -S sethostname -S setdomainname

  17. -a exit,always -F arch=b64 -S adjtimex -S settimeofday

  18. -a exit,always -F arch=b64 -S mount -S _sysctl

  19. -w /etc/group -p wa

  20. -w /etc/passwd -p wa

  21. -w /etc/shadow -p wa

  22. -w /etc/sudoers -p wa

  23. -w /etc/ssh/sshd_config

  24. -w /etc/bashrc -p wa

  25. -w /etc/profile -p wa

  26. -w /etc/profile.d/

  27. -w /etc/aliases -p wa

  28. -w /etc/sysctl.conf -p wa  

  29. -w /var/log/lastlog

  30. # Disable adding any additional rules - note that adding *new* rules will require a reboot

  31. #-e 2


讀取audit報告


  1. aureport --start this-week

  2. aureport --user

  3. aureport --file

  4. aureport --summary


審計日誌時間轉換腳本

time.pl:
s/(1\d{9})/localtime($1)/e
echo 1234567890|perl -p time.pl


轉自:http://purplegrape.blog.51cto.com/1330104/1010148

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章