在 Linux 中通过 ssh 审计文件修改

在 Linux 中通过 ssh 审计文件修改

我想监视 Linux 服务器(Redhat)中对文件所做的所有修改。我做了一些研究,找到了这个审计工具,我已经使用以下命令安装并配置了它:

yum install audit # installation

/etc/init.d/auditd start # started service

auditctl -w /root/file-name -p war -k password-file # configured rule to audit file 

ausearch -f /root/file-name    # Command to search modifications

它记录了对特定文件所做的所有修改。一切都很好,直到我遇到以下情况:

情况1 :

我使用以下命令从服务器中删除了使用上述审计工具监控的文件:

rm -rf /root/file-name

记录了以下结果:

type=SYSCALL msg=audit(1540222267.321:1057): arch=c000003e syscall=2 success=yes exit=3 a0=7ffe22abf91a a1=941 a2=1b6 a3=7ffe22abed70 items=2 ppid=21053 pid=42458 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=5 comm="touch" exe="/bin/rm" key="password-file"

案例 2:我使用以下命令从远程服务器删除了文件:

ssh host "echo 'rm -rf /root/file-name'|sudo su - root"

记录了以下结果:

type=SYSCALL msg=audit(1540222588.196:1118): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=ce70c0 a2=0 a3=7fff52a6af40 items=2 ppid=42520 pid=42533 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=9 comm="rm" exe="/bin/rm" key="password-file"

现在让我感到困惑的是,为什么tty当我远程执行命令时会记录为无。我在网上搜索过这个问题,但不幸的是,我找不到任何可以澄清我困惑的东西。

有人能解释一下为什么它被记录为tty=(none)在情况 2 中?

提前致谢,如果我的问题不清楚或者缺少什么,请告诉我,我会改正。

答案1

当您让 ssh 执行远程命令时,它不会分配交互式 tty,因为不需要。如果您想强制分配 tty,请使用-t

相关内容