操作系统是 Debian。我运行 nginx 作为 Web 服务器。我没有运行 Wordpress。在 http 块中启用日志记录:
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
在 iftop 中看到从我的网络服务器的 443 端口到 191-242.xxalivenet.com.br 的数百个连接,涉及几百个不同的 IP。
奇怪的是:
自从服务器创建以来我一直保留着 iftop 列出的 ip 地址,但它并未出现在我的 nginx 日志中。
即使 nginx 没有运行,这些连接也会显示在 iftop 中。这怎么可能呢?我尝试停止 nginx,然后使用 netstat 确认没有任何程序在端口 80 或 443 上监听,但我仍然看到 iftop 中列出了数百个这样的连接。如果没有程序在监听这些端口,iftop 如何显示这些连接?我甚至尝试禁用 nginx,然后重新启动服务器,但它们仍然显示出来。
lsof -a -i4 -i6 -itcp
不知为何没有显示任何这些连接。在 nethogs 中,我看到一行:
? root <ip of my web server>:443-191.242.x.x:<random port>
。以 root 身份运行?pid 有问号?这对我来说简直是疯了。这是否意味着我的系统上运行着某个进程,不知何故没有分配 pid,以 root 身份运行,不知何故在端口 443 上监听(尽管 nginx 据称当前正在使用该端口),并向其中一个巴西 IP 发送流量?
这里到底发生了什么?我需要担心吗?我的服务器被黑客入侵了吗?我还应该检查什么来确认服务器没问题?我需要通过 iptables 阻止这些 IP 吗?如何将黑客攻击尝试与合法的 Web 服务器流量区分开来?(例如,巴西有人试图访问我的网站)nethogs 为什么不显示 pid?iftop 如何在未监听的端口上显示连接?这些连接为什么不显示在 nginx 日志中?
听起来好像某个僵尸网络正在向你发送大量 TCP 连接尝试
您告诉我们:这是否会对您服务器目前的运行造成问题?
僵尸网络这样做的原因可能多种多样,但可能的原因如下:
(我相信人们还能想到更多原因)。
现在,如果您在公共 Web 服务器上没有不想公开的数据,如果扫描不会给您的服务器造成很大的负载,并且如果您保持 Web 应用程序和服务器平台为最新状态:那么您可能没问题。扫描服务器是很常见的事情,不幸的是,TCP SYN 洪水也是如此。