iptables KVM 预路由 SMTP

iptables KVM 预路由 SMTP

我有一台主机,它必须管理端口 25 上的流量,并将 postfix 守护进程路由到 KVM 机器上的端口 25,如下所示:

WAN --> (25) HOST_MACHINE -->  (25) KVM_VM_WITH_POSTFIX_DOVECOT

我已经打开了端口 25(和其他端口)并将此规则添加到 iptables:

iptables -t nat -A PREROUTING -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

现在,我可以从我的笔记本电脑连接到 Postfix 服务器并发送电子邮件,但 KVM 机器无法连接到其他邮件服务器(连接超时)。

因此,我尝试使用以下命令从 KVM 机器连接到另一台邮件服务器:

telnet mail.example.com 25

启用上述 iptables 规则后,我无法连接。但如果我从链中禁用它,我就可以连接到外部服务器。

我哪里错了?

答案1

您的DNAT规则将路由所有 TCP 流量,由 KVM 主机在端口 25 上接收到,然后发送到 KVM 客户机,无论接口或目标是什么。您应该在其中添加接口或目标 IP(或两者)DNAT

iptables -t nat -A PREROUTING -i your_pub_if -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

或者

iptables -t nat -A PREROUTING -d your_pub_IP/32 -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

或者

iptables -t nat -A PREROUTING -i your_pub_if -d your_pub_IP/32 -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

相关内容