find所有者和产生ssh连接的过程

有一台我经常pipe理的服务器(每分钟几次)尝试连接到TCP端口22上的另一台机器。(ssh

我的问题:我怎么能find产生这种连接的过程?

我已经检查了什么:

它看起来像是由root用户拥有的。 重复这个过程几次,但没有什么有趣的认识。

  • netstat显示了这个:(netstat -ntap)

     tcp 0 0 servername:randomport destinationserver:22 TIME_WAIT - tcp 0 0 servername:randomport destinationserver:22 TIME_WAIT - 

当我logging足够多的迭代时,我看到它每分钟下降到一个time_wait cnx并且回到2几次。

  • 的crontab:

没有crontabs被发现的任何用户启动一些ssh cnx在/ etc / cron *文件和目录中的ssh

  • 开始审计

添加了这个规则:

  auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT 

除了它看起来确实像一个ssh连接具有相同的源和目标ip等

  • 目的地服务器不在我的控制之下,但是一个pipe理它的人向我展示了一个日志,它使得它看起来像一个ssh cnx,但是没有公钥authentication,在目标机器上没有放置任何密钥。 这个目标服务器是一个存储类linux(但不是真正的)设备。

我不知道这个来自哪里。

如果我找不到这种无用的连接的来源,我至less可以使用iptables来阻止它们,但那不是那么好。

感谢任何提示。

我会试图使用auditd来(简要地)收集关于任务创build的信息,看看我能否从中恢复

 auditctl -D auditctl -a task,always 

然后拖网通过结果

 ausearch -i -sc execve 

另外lsof提供了一个PID,所以你可以尝试

 ps -p <PID> -o ppid= 

有一件事要尝试的是围绕标准的ssh二进制文件包装脚本,并具有包装脚本日志ID和时间。 这只是我的头顶,所以它可能需要一些工作。

 mv /usr/bin/ssh /usr/bin/ssh.real 

更换

在/ usr / bin中/ SSH

用这个脚本:

 #!/usr/bin/perl use Sys::Syslog; # all except setlogsock() use Sys::Syslog qw(:standard :macros); # standard functions & macros openlog('ssh', "ndelay,pid", "auth"); # or whatever is appropriate other than auth syslog('info',"started by $ENV{'USER'}"); exec '/usr/bin/ssh.real', @ARGV;