![如何查明是什么在夜间从我的 Linux 启动端口扫描?](https://linux22.com/image/71407/%E5%A6%82%E4%BD%95%E6%9F%A5%E6%98%8E%E6%98%AF%E4%BB%80%E4%B9%88%E5%9C%A8%E5%A4%9C%E9%97%B4%E4%BB%8E%E6%88%91%E7%9A%84%20Linux%20%E5%90%AF%E5%8A%A8%E7%AB%AF%E5%8F%A3%E6%89%AB%E6%8F%8F%EF%BC%9F.png)
我有几个在 Proxmox 平台上运行的 Linux(主要是 Debian)服务器。全部通过ADSL线路连接Internet,只有一个公网IP。
其中一个从一年多前开始就运行OMD(开放监控发行版)来监控外部服务器(其他网络,通过连接到互联网的ADSL进行监控。
现在我收到了来自远程服务器所有者的消息,说他们检测到我的 ADSL 公共 IP 在夜间运行端口扫描,扫描其开放端口。
这是我在 Debian 系统上第二次发生这种情况:(
我需要检测运行该扫描的进程
- 我怎样才能找出哪个进程正在从有问题的linux机器上启动portscan?这里的困难是我需要运行 - 不管 - 来了解扫描发生时的过程 - 这可能发生在晚上的某个时刻 - 。
- 有没有办法获取以某种方式启动然后在两次之间完成的进程列表(即新进程从 23:00 到 03:00 启动)
提前致谢
答案1
跟踪此类不良行为的最佳方法是不时收集计算机活动日志。
每 15 分钟运行一个脚本来cron
查看开放的网络连接可能是最好的方法。
我建议您使用该lsof
命令并收集有关您的计算机所建立的网络连接的信息。就像是:
lsof [email protected] >> /tmp/my-connexions.log
或者,如果您的计算机随机扫描并更改每次扫描的 IP(仅限 TCP 连接):
lsof -iTCP >> /tmp/my-connexions.log
一条命令的结果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)
在每行的最左边,您可以看到运行连接的程序的名称(这是您的案例中有趣的部分)。该行的其余部分描述了连接和使用的协议。
您还可以查看auditctl
(随auditd
软件包一起提供)它将程序的任何系统调用记录到内核(这比lsof
不时运行更精确)。您可以运行类似的命令(一如既往地先阅读文档!):
auditctl -A exit,always -S connect