用auditd找到在Linux中乱建文件的家伙!

最近有一台服务器上的日志在切割之后新日志属主经常会变成root, 那么,监控是哪个家伙来改的吧!

使用auditd针对/data/logs/app/进行监控 :

auditctl -w /data/logs/app/ -p wxa -k php_app_change

第二天查看监控结果

ausearch -k php_app_change | less

用/搜索CREATE 有用内容如下:

time->Mon Mar 23 23:59:02 2015
type=PATH msg=audit(1427126342.023:1289345): item=1 name="/data/logs/app/http_access.log" inode=3418062 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 nametype=CREATE
type=PATH msg=audit(1427126342.023:1289345): item=0 name="/data/logs/app/" inode=3417449 dev=fd:00 mode=040755 ouid=500 ogid=500 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 nametype=PARENT
type=CWD msg=audit(1427126342.023:1289345):  cwd="/root"
type=SYSCALL msg=audit(1427126342.023:1289345): arch=c000003e syscall=2 success=yes exit=5 a0=c271098 a1=441 a2=1b6 a3=1e items=2 ppid=8923 pid=14003 auid=501 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=152893 comm="php" exe="/usr/local/php/bin/php" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="php_app_change"

由此可见,是用root运行的php导致,再看对应的ppid(父进程号):

#21#[email protected] ~]$ ps aux | grep 8923
  root      8923  0.0  0.0 106232  1472 ?        S    Mar15  11:05 sh /data/cli/watchdog.sh

watchdog.sh脚本中有许多运行php脚本的地方

找到这个坏家伙了!