首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMTP NAT借用数据中心服务器静态公共IP的Iptable规则

SMTP NAT借用数据中心服务器静态公共IP的Iptable规则
EN

Server Fault用户
提问于 2021-01-25 00:14:53
回答 2查看 329关注 0票数 0

我想在我的(体面的)家庭ISP连接上运行我自己的邮件服务器,而不是把我的电子邮件信任给任何数据中心提供商--主要是因为我已经有一台机器在运行。

虽然在实践中,我的公共IP从未改变,但我的ISP不会为我提供一个适当的静态IP,而我可以在不切换到带有重要标记的业务计划的情况下调整反向DNS PTR记录。因此,我的服务器传输的电子邮件被视为垃圾邮件--显然。

因此,我想我可以借一个小型VPS的公共IP (我可以控制PTR记录),通过链接两个iptables NAT。使用NAT而不是SMTP中继,不会影响端到端TLS加密.

然而,我正在努力建立NAT(s)如下。每台机器只有一个网络接口,我计划将NATing限制在TCP/25端口上,因为我不想通过中继/VPS运行所有的私有通信。

代码语言:javascript
复制
Home Server 1.2.3.4             Relay 5.6.7.8             Recipient Mailserver 10.11.12.13
[home.server.mydomain]          [relay.mydomain]          [mail.recipientdomain]

OUTPUT/MASQUERADE       <=>      FORWARD/MASQUERADE    <=>  INPUT

为了测试安装程序,我现在使用netcat,运行一个防火墙占位符Mailserver 10.11.12.13,它只接受源自Relay 5.6.7.8的端口25上的通信量。

然而,不知怎么的,我没有把注意力集中在iptable规则/NAT概念上,我希望得到一些提示(在中继上的sysclt中启用了ip转发):

家庭服务器1.2.3.4

代码语言:javascript
复制
-A OUTPUT -t nat -p tcp --dport 25 -j DNAT --to-destination 5.6.7.8:25
-A POSTROUTING -t nat -d 5.6.7.8 -p tcp --dport 25 -j MASQUERADE

继电器5.6.7.8

代码语言:javascript
复制
-A INPUT -s 1.2.3.4 -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j DROP
-A FORWARD -s 1.2.3.4 -p tcp -m tcp --dport 25 -j ACCEPT
-A POSTROUTING -t nat -p tcp --dport 25 -j MASQUERADE

邮件服务器10.11.12.13

代码语言:javascript
复制
-A INPUT -s 5.6.7.8 -j ACCEPT # for testing
-A INPUT -j DROP

有了这些功能,Home就可以在中继上到达端口25,但没有其他:

$(mailserver)> nc -ltp 25 $(homeserver)> nc10.11.12.13 25

任何建议都非常感谢。免责声明:我的想法可能仍然有一些安全问题,我还没有想过。

EN

回答 2

Server Fault用户

发布于 2021-01-25 18:00:01

在VPS上运行邮件服务器。

通过为所有协议启用TLS来加密运行中的数据。

用磁盘加密在静止时加密数据。如果您不信任提供程序,请考虑一个更复杂的设置,即自己进行加密,并在实例启动时输入密钥。

备份数据,并将其从网站转移到家中和其他提供商的存档存储。

不要纳特。考虑实现IPv6。

如果您重视在家运行邮件服务器,请切换到业务服务。通常,这是is提取静态寻址和删除其SMTP筛选的价格。

IPv6有足够多的地址供每个住宅客户使用以获得/48。有能力的IPAM系统将可靠地给客户分配前缀。(不,这不一定是基于MAC的,因为存在非MAC DHCPv6唯一标识符(DUID)。)但这并不意味着ISP承诺使用静态地址。我的家一直很稳定,但由于我不知道的原因,重新编号了一次。

票数 1
EN

Server Fault用户

发布于 2021-01-27 09:20:40

  • 在VPS上运行VPN服务。
  • 使您的本地邮件服务器在家里的VPN客户端。配置它,使其具有静态VPN地址。
  • 邮件服务器必须有通过本地家庭互联网到VPN服务器的路由(为了能够建立连接),其余的(默认路由)必须通过VPN路由。
  • 在VPS上,通过其面向internet的接口从VPN地址生成SNAT,并为SMTP端口制作DNAT到邮件服务器的内部vpn地址。

请注意,这与您要求的内容有很大不同。您只想通过VPS路由电子邮件,这样您将通过VPS路由所有邮件服务器流量。但是我认为这样做更好,因为对于这个世界来说,你的邮件服务器看起来就像是生活在VPS上,只是稍微慢一些。

所有这些都很容易用廉价的Linux和OpenVPN来实现。

本质上,您正在VPS机器上创建另一个( VPN )接口,它变成了一个路由器,其中的一个VPN和一个邮件服务器变成了它的LAN。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1051051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档