我有几个 Linux(主要是 Debian)服务器在 Proxmox 平台上运行。它们都通过ADSL 线连接到Internet,只有一个公共IP。
其中一个运行 OMD(开放式监控分发)从一年多前开始监控 EXTERNAL 服务器(其他网络,通过连接到 Internet 的 ADSL 进行监控。
现在我收到远程服务器所有者的消息,说他们检测到我的 ADSL 公共 IP 在夜间运行了端口扫描,扫描他们的开放端口。
这是我第二次在 Debian 系统上发生这种情况:(
我需要检测运行该扫描的进程
提前致谢
跟踪此类不良行为的最佳方法是不时收集计算机活动日志。
每 15 分钟运行一个脚本来cron查看开放的网络连接可能是最好的方法。
我建议您使用该lsof命令并收集有关您的计算机所建立的网络连接的信息。就像是:
lsof -i@scanned-server.domain.net >> /tmp/my-connexions.log
Run Code Online (Sandbox Code Playgroud)
或者,如果您的计算机随机扫描并更改每次扫描的 IP(仅限 TCP 连接):
lsof -iTCP >> /tmp/my-connexions.log
Run Code Online (Sandbox Code Playgroud)
一条命令的结果lsof如下:
iceweasel 31562 user 50u IPv4 13500060 0t0 TCP bill:47039->stackoverflow.com:https (ESTABLISHED)
iceweasel 31562 user 60u IPv4 13549538 0t0 TCP bill:60564->104.16.15.128:http (ESTABLISHED)
iceweasel 31562 user 61u IPv4 13578815 0t0 TCP bill:46285->185.45.5.43:https (ESTABLISHED)
iceweasel 31562 user 67u IPv4 13496262 0t0 TCP bill:47020->stackoverflow.com:https (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)
在每行的最左边,您可以看到运行连接的程序的名称(这是您的案例中有趣的部分)。该行的其余部分描述了连接和使用的协议。
您还可以查看auditctl(随auditd软件包一起提供)它将程序的任何系统调用记录到内核(这比lsof不时运行更精确)。您可以运行类似的命令(一如既往地先阅读文档!):
auditctl -A exit,always -S connect
Run Code Online (Sandbox Code Playgroud)