概括
有一个 virtualbox 主机 (1.1.1.5) 和一个路由客户机 (1.1.1.6)。某些东西将客户机上端口 25 上的任何流量(无论是传入还是传出)重定向到 1.1.1.5 端口 2525,但我找不到是什么原因。
当然,这篇文章中的 ips 和 mac 已经改变。
设置
我有以下设置:
- 有一个 IP 为 1.1.1.5 的 debian 根服务器,托管一个 virtualbox 服务器
- 第二个 IP(1.1.1.6)被路由到该服务器
- 第二个 IP 被路由到虚拟网络接口“virbr1”,该接口由 debian virtualbox 客户邮件服务器使用
- 在根服务器上,iptables 正在运行并配置了 ufw
设置工作完美无缺 - 我可以 ping 1.1.1.6 上的邮件服务器并访问其 Web 界面等,邮件服务器可以访问互联网,一切正常,除了一个端口:尝试访问端口 25 上的邮件服务器不起作用。
这与 ISP 阻止端口 25 或类似的东西无关,它更为复杂。请继续阅读 :)
问题诊断
从外部进行 Telnet
当我尝试从另一台服务器进行 telnet 时:
telnet 1.1.1.6 25
连接将超时。在主机系统 (1.1.1.5) 的 syslog 中,出现了来自 ip 表的以下消息:
[UFW BLOCK] IN=eth0 OUT= MAC=c8:c8:c8:c8:c8:c8:c8:fe:3d:46:e6:0f:08:00 SRC=2.2.2.5 DST=1.1.1.5 LEN=64 TOS=0x00 PREC=0x00 TTL=55 ID=45855 DF PROTO=TCP SPT=64059 DPT=2525 WINDOW=65535 RES=0x00 SYN URGP=0
有一个重要的事情这里要注意:我试图连接到 1.1.1。6在港口二十五,但 iptables 阻止发生在 1.1.1 上。5在港口2525
从访客机上进行 Telnet 连接
当我通过 SSH 连接到邮件服务器 guest 并且通过 telnet 连接到另一台服务器时:
telnet 9.9.9.5 25
连接也会超时。请注意,所有其他端口或连接均正常工作。在主机系统的日志中,会出现以下乱码消息:
[UFW BLOCK] IN=virbr1 OUT= MAC=aa:aa:ab:ac:ad:af:af:ag:ag SRC=1.1.1.6 DST=1.1.1.5 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=3529 DF PROTO=TCP SPT=45250 DPT=2525 WINDOW=14600 RES=0x00 SYN URGP=0
需要注意的是:DST 应该是 9.9.9.5,但它是主机服务器 IP。DPT 应该是 25,但它是 2525。
假设
看起来主机系统 1.1.1.5 上的某些东西将通过它的端口 25 上的所有流量重定向到其自身的端口 2525。
寻找原因
我尝试了以下方法来查找此行为的原因:
netstat -lnp
主机上没有显示任何与端口 25 或 2525 绑定的内容- 中的配置文件
/etc/ufw
,尤其是 before.rules,除了必要的-A ufw-before-forward -i eth0 -d 1.1.1.6 -p tcp --dport 25 -j ACCEPT
- 使用
iptables -L -n | grep "25"
仅显示前向链中上面提到的规则 - 即使
ufw logging high
在上文提到的阻止消息之前,系统日志也不包含与所讨论的数据包相关的任何内容 - 禁用防火墙并
ufw disable
不能解决问题 - 没有配置文件提到 2525:
egrep -R "2525" /etc
不返回任何内容。
所以现在,我一头雾水。我该如何进一步诊断这个问题?可能是什么原因造成的?
答案1
解决方案很简单:我不知道它iptables -L -n
不显示所有规则,但您必须指定iptables -t nat -L
显示预路由表。它包含端口 2525 的重定向。不知道它来自哪里,但删除它解决了问题。
所以,孩子们:如果您尝试诊断 iptables 路由问题,请注意存在多个表并检查 nat 表。
除此之外,很抱歉我问了这个问题,但没什么用。