我可以从tcpdump看到一个内部Linux服务器大约每15分钟尝试联系一台外部计算机:端口6881
(bittorrent)上的一个udp-packet,这就是全部。
由于这个服务器不应该联系任何人,我想找出邪恶的灵魂生成了这个数据包,即我需要一些有关该过程的信息(例如pid
,文件,...)
由于时间跨度太短,我无法使用netstat
或lsof
。
该过程可能在半微秒内处于活动状态,然后从防火墙获得destination unreachable (port unreachable)
。
我有ssh访问机器。
How can I capture network packets per PID?建议使用tcpdump
选项-k
,但是,linux tcpdump
没有这样的选项。
答案 0 :(得分:1)
显然,您无法使用TCPDump执行此操作,但您可以从主机本身执行此操作。特别是因为它是没有状态的UDP,并且因为你无法预测进程何时将被监听,所以你应该考虑使用内核审计功能。例如:
auditctl -a exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET
这指示内核在有套接字调用时生成审计事件。完成此操作后,您可以等到看到可疑数据包离开计算机,然后使用ausearch
不仅跟踪进程,还要跟踪进行呼叫的二进制文件。