Linux
審核正在執行的 iptables 配置的更改
我知道如何
/etc/sysconfig/iptables
在 CentOS/RHEL 6 及更早版本中審核對文件的更改,但是如何審核僅對執行配置所做的更改?
以下
auditctl
規則就足夠了:[root@vh-app2 audit]# auditctl -a exit,always -F arch=b64 -F a2=64 -S setsockopt -k iptablesChange
測試更改:
[root@vh-app2 audit]# iptables -A INPUT -j ACCEPT [root@vh-app2 audit]# ausearch -k iptablesChange ---- time->Mon Jun 1 15:46:45 2015 type=CONFIG_CHANGE msg=audit(1433188005.842:122): auid=90328 ses=3 op="add rule" key="iptablesChange" list=4 res=1 ---- time->Mon Jun 1 15:47:22 2015 type=SYSCALL msg=audit(1433188042.907:123): arch=c000003e syscall=54 success=yes exit=0 a0=3 a1=0 a2=40 a3=7dff50 items=0 ppid=55654 pid=65141 auid=90328 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="iptables" exe="/sbin/iptables-multi-1.4.7" key="iptablesChange" type=NETFILTER_CFG msg=audit(1433188042.907:123): table=filter family=2 entries=6 [root@vh-app2 audit]# ps -p 55654 PID TTY TIME CMD 55654 pts/0 00:00:00 bash [root@vh-app2 audit]# tty /dev/pts/0 [root@vh-app2 audit]# cat /proc/$$/loginuid 90328 [root@vh-app2 audit]#
正如您從上面的輸出中看到的那樣,在審核了對
setsockopt
whenoptname
(a2
欄位)的呼叫(根據 Linux 核心原始碼IPT_SO_SET_REPLACE
是64
十進制)之後,它能夠記錄對執行iptables
配置的更改。然後,我能夠擷取相關的審計資訊,例如使用者的
loginuid
(因為他們可能sudo
在更新防火牆之前已經 root 了)以及呼叫程序的 PID。