![如何强制记录 Ubuntu 12.04 服务器上的所有终端操作?](https://linux22.com/image/620653/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%E8%AE%B0%E5%BD%95%20Ubuntu%2012.04%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%E7%BB%88%E7%AB%AF%E6%93%8D%E4%BD%9C%EF%BC%9F.png)
我相信我的服务器刚刚被交互攻击了。
由于这台服务器无论如何都会陷入瘫痪,我想知道是否可以通过强制记录所有 tty 来更好地了解恶意者在做什么。
几年前我见过一个内核补丁,它就是用来做这个的,但我再也找不到了。我想知道是否存在这样的补丁(我不知道如何编写一个)。
最好的情况是,如果输出不存储在本地,而是转发到我的其他主机(例如通过 http post 甚至是 netcat)。
我的主机使用3.8主线内核。
答案1
我没有内核级拦截补丁,但是这个快速而粗糙的 shell 捕获脚本可以放在/etc/profile.d:
if [ -z $INSCRIPT ]; then
export INSCRIPT=1
DATE=`date "+%Y%m%d%H%M%S"`
TTY=`tty | tr "/" "_"`
script -qf "/tmp/${DATE}${TTY}.log" && exit
fi
这将在以下位置创建文件/tmp在格式上TIMESTAMP_TTY.log并将记录几乎所有的输入/输出(包括特殊字符)。由于有 quiet 标志,脚本本身不会发出通知,但如果攻击者想查看,很容易在进程表中发现。
由于您仍然可以访问系统,因此您始终可以远程检索这些日志,而不是将它们推送出去(将系统配置为将这些文件推送到远程位置会为攻击者打开另一个目标)。