我管理一个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
在此服务器上发出任何自定义命令。