問題背景
新接手一項(xiàng)目谓形,需要對日志清理文件進(jìn)行修改。開開心心的修改完成之后腳本正常運(yùn)行,再確認(rèn)發(fā)現(xiàn)腳本內(nèi)容已經(jīng)回滾弄企。本以為是被人誤修改于是查詢/var/log/secure
無果。再次修改后問題復(fù)現(xiàn)
執(zhí)行文件監(jiān)聽
安裝audit
yum -y install audit auditd-libs
啟動(dòng)文件監(jiān)聽(臨時(shí)規(guī)則)
auditctl -w /shell/clean_pushd_logs.sh -p rwxa -k clean_log
- 指令解釋:
#語法格式:auditctl -w path -p permission -k key_name
# path為需要審計(jì)的文件或目錄
# permission可以是r,w,x,a(文件或目錄的屬性發(fā)生變化)
# Key_name為可選項(xiàng)区拳,方便識(shí)別哪些規(guī)則生成特定的日志項(xiàng)
auditctl -w /etc/passwd -p wa -k passwd_change
//設(shè)置規(guī)則所有對passwd文件的寫拘领、屬性修改操作都會(huì)被記錄審計(jì)日志
如果需要?jiǎng)?chuàng)建永久審計(jì)規(guī)則,則需要修改規(guī)則配置文件:
vim /etc/audit/rules.d/audit.rules
-w path -p permission -k key_name
查看分析日志
ausearch -k clean_log
ausearch -f /shell/clean_pushd_logs.sh
ausearch -k clean_log -i // 交互式訪問
----
time->Fri Apr 17 19:48:20 2020
type=PATH msg=audit(1587124100.716:4226668): item=0 name="/shell/clean_pushd_logs.sh" inode=212305 dev=fd:02 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1587124100.716:4226668): cwd="/root"
type=SYSCALL msg=audit(1587124100.716:4226668): arch=c000003e syscall=2 success=yes exit=74 a0=4baf830 a1=0 a2=1b6 a3=0 items=1 ppid=30625 pid=30745 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=360316 comm="puppet" exe="/usr/bin/ruby" key="clean_log"
----
內(nèi)容分析
# type為類型
# msg為(time_stamp:ID)樱调,時(shí)間是date +%s(1970-1-1至今的秒數(shù))
# arch=c000003e约素,代表x86_64(16進(jìn)制)
# success=yes/no,事件是否成功
# a0-a3是程序調(diào)用時(shí)前4個(gè)參數(shù)笆凌,16進(jìn)制編碼了
# ppid父進(jìn)程ID圣猎,如bash,pid進(jìn)程ID乞而,如cat命令
# auid是審核用戶的id送悔,su - test, 依然可以追蹤su前的賬戶
# uid,gid用戶與組
# tty:從哪個(gè)終端執(zhí)行的命令
# comm="puppet" 用戶在命令行執(zhí)行的指令
# exe="/usr/bin/ruby" 實(shí)際程序的路徑
# key="sshd_config" 管理員定義的策略關(guān)鍵字key
# type=CWD 用來記錄當(dāng)前工作目錄
# cwd="/root"
# type=SYSCALL 系統(tǒng)調(diào)用
# ouid(owner's user id) 對象所有者id
# guid(owner's groupid) 對象所有者id
退出監(jiān)聽
auditctl -W /shell/clean_pushd_logs.sh
其他指令
- 查看當(dāng)前系統(tǒng)下規(guī)則
auditctl -l