代理上的 Iptables SMTP 重新路由

代理上的 Iptables SMTP 重新路由

我迷路了...如能得到任何帮助我将非常感激:)

我有一台邮件服务器。不幸的是,提供商拒绝 smtp 25。我不想使用 ESMTP 或 vpn。

因此,项目如下:我在网络上有一个具有公共 IP 的专用服务器。

SMTP 入站部分

在此服务器上我制定了以下规则:

/sbin/iptables -t nat -I PREROUTING  1 -p tcp --dport 25 -j DNAT --to-destination $IP
/sbin/iptables -t nat -I POSTROUTING 1 -p tcp --dport 25 -d $IP -j MASQUERADE

注意:因为我有一个动态 IP @home,所以 $IP 是 curl 脚本的结果。

它允许外部的 SMTP 流量重新路由到我的邮件服务器,它可以起作用。

SMTP 出站部分:

在我的邮件服务器上,我制定了以下规则:

iptables --table nat --append OUTPUT --out-interface eth0 --protocol tcp \
  --dport 25 --jump DNAT --to-destination dedicatedip:2500

成功将 smtp 流转发至专用。

问题是...我在专用网络上找不到正确的规则来将此流量转发到网络。我的意思是,我需要将端口重新转发到 25,并将这些数据包转发到未知的 smtp 服务器。

我在专用的上尝试过这个:

iptables -nat -A PREROUTING -p tcp --dport 2500 --jump SNAT --to 25:37.59.121.101

但是当端口再次更改为 25 时,数据包将发送到 @home(由于第一条规则)。有没有办法正确地做到这一点?

答案1

对于外发电子邮件,请尝试在提交端口 (587) 上使用智能主机传输。您的 ISP 应该允许这样做。这可以连接到具有专用 IP 地址的服务器上的最小服务器。

尝试使用 NAT 规则来隧道传输流量不太可能实现您想要的效果。

如果您有一台具有专用 IP 的服务器,请考虑将其用作您的服务器。您仍然可以将电子邮件转发回您的主服务器。您可以使用多种方法,包括ETRN

相关内容