SMTP IP 转发到另一台机器

SMTP IP 转发到另一台机器

如果这是一个愚蠢的错误,请原谅,这是我第一次设置端口转发。我有两台机器,其中一台机器设置为 DMZ(192.168.0.67),所有入站流量将首先到达。我已将第二台机器配置为电子邮件服务器(192.168.0.78)。

当我通过 telnet 从 dmz 服务器或其他计算机连接到邮件服务器时,我从 smtp 服务器收到 220 响应。所以我知道服务器正在运行并且可以从邮件服务器外部访问。

我编辑了 /etc/ufw/before.rules,尝试将端口 25 上的所有流量转发到 dmz 计算机,再转发到我设置的邮件服务器。我在文件顶部的 *filter 部分上方添加了以下几行

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING --protocol tcp --destination 192.168.0.67 --dport 25 --jump DNAT --to-destination 192.168.0.78:25
-A POSTROUTING --protocol tcp --destination 192.168.0.78 --dport 25 --jump SNAT --to-source 192.168.0.67
COMMIT

在此之后,我确保 UFW 能够成功重新加载,并重新启动 DMZ 机器以确保万无一失。

不幸的是,当我通过 telnet 连接到 dmz 服务器上的 25 端口时,我没有收到响应。我读了不少文章,看了一些视频,似乎找不到我做错了什么。

我检查了 IP 转发是否已启用 sysctl net.ipv4.ip_forward,结果为 1。

我也跑了

sudo socat TCP4-LISTEN:25,fork,reuseaddr TCP4:192.168.0.78:25

它成功了,让我能够使用 telnet 连接到 dmz 服务器上的端口 25,并按照我的意愿从邮件服务器接收回复。这让我认为问题只是我对规则做了一些错误。任何帮助都将不胜感激。

编辑:我目前正在运行 Ubuntu 22.04.1 LTS

答案1

多亏了这个答案,我最终弄清楚了问题出在哪里 如何配置 UFW 以允许 IP 转发? 我的DEFAULT_FORWARD_POLICY设置为DROP不在ACCEPT/etc/default/ufw 中

改变它并且它按预期工作。

相关内容