每 15 分钟仅使用端口 6881 捕获一次进程的 pid

Capture pid of process using port 6881 only once every 15 min

我可以从 tcpdump 中看到内部 linux 服务器大约每 15 分钟尝试联系外部计算机:端口 6881 上的一个 udp 数据包(bittorrent),仅此而已。

因为这个服务器不应该联系任何人,我想找出是什么邪恶的灵魂产生了这个数据包,即我需要一些关于这个过程的信息(例如 pid、文件、...) .

由于时间跨度太短,我无法使用netstatlsof

该进程可能会激活大约半微秒,然后它从防火墙获得 destination unreachable (port unreachable)

我可以通过 ssh 访问机器。

How can I capture network packets per PID?建议使用tcpdump选项-k,但是linuxtcpdump没有这样的选项。

显然,您不能使用 TCPDump 执行此操作,但您可以从主机本身执行此操作。特别是因为它是没有状态的 UDP,并且由于您无法预测进程何时会监听,所以您应该考虑使用内核审计功能。例如:

 auditctl -a exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET

这指示内核在有套接字调用时生成审计事件。完成后,您可以等到看到可疑数据包离开机器,然后使用 ausearch 不仅可以追踪进程,还可以追踪发出调用的二进制文件。