尽管该端口上没有任何监听,但带有“SPT = 81”的日志条目是否表明我的服务器被黑客入侵?

信息安全 Web应用程序 php 网络服务器
2021-08-23 00:36:29

我管理一个Debian GNU/Linux Web 服务器(Debian 10 Buster 及其捆绑的 4.19 内核)。iptables除其他事项外,我很久以前就制定了简单的日志记录规则。他们来了:

# iptables -A OUTPUT -d [mySmtpSmarthost]/32 -p tcp -m tcp --dport 25 -j ACCEPT
# iptables -A OUTPUT -d [mySmtpSmarthost]/32 -p tcp -m tcp --dport 465 -j ACCEPT
# iptables -A OUTPUT -d [mySmtpSmarthost]/32 -p tcp -m tcp --dport 587 -j ACCEPT
# iptables -A OUTPUT -p tcp -m tcp --dport 25 -j LOG
# iptables -A OUTPUT -p tcp -m tcp --dport 465 -j LOG
# iptables -A OUTPUT -p tcp -m tcp --dport 587 -j LOG
# iptables -A OUTPUT -p tcp -m tcp --dport 25 -j DROP
# iptables -A OUTPUT -p tcp -m tcp --dport 465 -j DROP
# iptables -A OUTPUT -p tcp -m tcp --dport 587 -j DROP

这里的目标是抓住任何可疑的东西,主要是直接连接到那里的一些被黑(SMTP?)服务器的流氓 PHP 脚本。本地主机上有一个Exim邮件服务器,它将消息传递给外部智能主机,以便 WordPresswp_mail()功能在 SMTP 插件的帮助下工作,该插件将其配置为使用本地主机作为 SMTP 服务器。

换句话说,我是说:“亲爱的流氓脚本,要么你使用配置的智能主机(这样我就可以在那里破坏你)或者你已经在这里破坏了”。

这显然假设服务器没有被黑到根目录……我的问题来了。

昨天我在日志中发现了这个:

Nov 21 12:23:55 web kernel: [35501.571711] IN= OUT=eth0 SRC=my.server.public.ip DST=109.89.132.126 \
  LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=81 DPT=587 WINDOW=0 RES=0x00 ACK RST URGP=0
                                                     ^^^^^^ This!

尽管

# netstat -nltp | grep :81
#

所以我推断某些东西设法在本地配置的公共 IP 地址上绑定了端口 81,并尝试在端口 587 上向 109.89.132.126 发送消息。

如果没有root权限,这是否可能?端口 81 低于 1024,即它是 Linux 上的特权端口,我从未setcap在此服务器上发出任何自定义命令。

1个回答
... SRC=my.server.public.ip DST=109.89.132.126 ...
... PROTO=TCP SPT=81 DPT=587 ... RST ... 

这是一个 RST。如果远程系统(在本例中为 109.89.132.126)尝试连接到系统上没有人在监听的端口,它将由您的服务器生成。鉴于没有人在您的系统上的端口 81 上侦听,109.89.132.126 已将源端口为 587 的数据包发送到您的系统端口 81 就足够了。

换句话说:没有必要破解你的系统来引发这个日志消息。