我有一个继承的服务器(foo),我被告知正在通过 rsync 从各个主机(bar1、bar2 等)接收备份。
我正在寻找从 foo 上可用的信息中识别 bar 的网络信息(主机名或 IP 地址)。这样我就可以登录 bar 并禁用任何 rsync 备份。我听说 bar 系统中的所有数据都被备份到 foo 上的 /u 中。 /u 似乎填充了主目录。
我不知道这些来自酒吧系统的备份何时运行,或者它们可能运行多长时间。
答案1
我要做的第一件事是确定 rsync 运行的时间。您可以使用auditd来做到这一点
监视服务器上的 rsync 可执行文件
which rsync
/usr/bin/rsync
auditctl -w /usr/bin/rsync -k rsync
然后你可以定期检查auditd是否记录了任何像这样的访问
ausearch -i -k rsync
一旦您知道 rsync 运行的时间,您现在就可以识别哪些远程主机使用它。
例子:
查看进程树并确定 rsync 使用的内容
pstree -p|grep -i rsync
|-sshd(3861)-+-sshd(26209)---bash(26212)---rsync(27858)---rsync(27859)
并检查哪些远程主机连接到PID 26209
netstat -anp|grep 26209
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 26209/sshd
tcp 0 0 10.10.10.20:22 10.10.10.40:64740 ESTABLISHED 26209/sshd
tcp 0 0 ::1:6010 :::* LISTEN 26209/sshd
所有这些都假设 rsync 实际上需要一些时间,因此您可以执行这些 pstree 和 netstat 命令。如果 rsync 非常快 - 还有其他方法可以进行跟踪,但它会更繁重(我想到了 systemtap,但从简单开始,如果这不起作用 - 我们将讨论更复杂的解决方案)。