我有一个以下形式的符号链接
ubuntu@platform1:~$ ls -lrt
total 28
drwxr-xr-x 4 ubuntu ubuntu 4096 Mar 2 15:02 deploy
lrwxrwxrwx 1 ubuntu ubuntu 14 May 25 18:27 logs -> /var/log/arkin
磁盘布局
ubuntu@platform1:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg-var 853G 3.7G 806G 1% /var
/dev/mapper/vg-var+log 49G 1.1G 45G 3% /var/log
/dev/mapper/vg-var+log+audit 20G 60M 19G 1% /var/log/audit
/dev/mapper/vg-home 30G 6.5G 22G 24% /home
但很多时候我观察到符号链接被改为
drwxr-xr-x 6 ubuntu ubuntu 4096 May 31 08:41 logs
有人可以告诉我是否有办法在文件夹上启用审计日志/home/ubuntu/logs
,以便我可以了解哪个操作正在破坏符号链接并创建新的/home/ubuntu/logs
或其他一些方法可以调试此问题?
- 文件系统——ext4
- 操作系统 - Ubuntu 16.04
编辑
我按照答案中建议的步骤进行操作。我有以下符号链接:-
lrwxrwxrwx 1 ubuntu ubuntu 14 Jun 3 07:26 logs -> /var/log/arkin
在以下规则中添加了/etc/audit/audit.rules
-a always,exit -F dir=/home/ubuntu/logs -S unlink -S unlinkat -S rename -S renameat -S rmdir -k log_link
然后重新启动审计服务
ubuntu@vrni-platform:~$ sudo service auditd stop
ubuntu@vrni-platform:~$ sudo service auditd start
执行以下命令
ubuntu@vrni-platform:~$ sudo ln -svf /var/log/arkin /home/ubuntu/logs
'/home/ubuntu/logs/arkin' -> '/var/log/arkin'
但我没有看到任何审计条目
# aureport -k -i | grep log_link
答案1
对于 auditd,您可以尝试以下操作
$tail -2 /etc/audit/audit.rules
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete
您也可以在这里指定目录
-F dir=<directory or mount point>
以下是镜头中使用的选项描述,有关更多详细信息,请查看http://man7.org/linux/man-pages/man8/auditctl.8.html
-a [list,action|action,list]
-S [Syscall name or number|all]
-k key Set a filter key on an audit rule.
不同规则的更多示例如下:
## Audit log access
-a always,exit -F dir=/var/log/audit/ -F perm=r -F auid>=1000 -F auid!=unset -F key=access-audit-trail
## Attempts to Alter Process and Session Initiation Information
-a always,exit -F path=/var/run/utmp -F perm=wa -F auid>=1000 -F auid!=unset -F key=session
-a always,exit -F path=/var/log/btmp -F perm=wa -F auid>=1000 -F auid!=unset -F key=session
-a always,exit -F path=/var/log/wtmp -F perm=wa -F auid>=1000 -F auid!=unset -F key=session