审核正在运行的 iptables 配置的更改

审核正在运行的 iptables 配置的更改

我知道如何审核/etc/sysconfig/iptablesCentOS/RHEL 6 及更早版本中文件的更改,但如何审核仅对运行配置所做的更改?

答案1

以下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]#

正如您从上面的输出中看到的,在审核对setsockoptwhen optnamea2字段)is IPT_SO_SET_REPLACE(根据Linux内核源代码是64十进制)的调用之后,它能够记录对运行iptables配置的更改。

然后,我能够捕获相关的审核信息,例如用户的信息loginuid(因为他们可能sudo在更新防火墙之前已经获得 root 权限)以及调用程序的 PID。

相关内容