为本地机器提供外部静态 IP(可以只是转发端口)

为本地机器提供外部静态 IP(可以只是转发端口)

我计划将我的一台家用机器用作邮件服务器,以便接收来自其他人的邮件。我为它取了一个域名,我知道我需要一台具有静态外部 IP 的机器,因此我有一个具有外部静态 IP 的 DigitalOcean 实例,但我即将成为邮件服务器的机器没有静态 IP - 它是路由器后面的典型机器,路由器后面的路由器等等。我计划将这个 DO 实例用作 VPN 服务器,将域连接到它并通过 VPN 将我的邮件服务器连接到它,然后设置端口转发,以便邮件服务器具有必要的可用端口。我遗漏了什么?有没有我没有考虑到的情况?实例上的 iptables 规则是什么?

答案1

你所计划的事情实际上没有什么困难,只是需要做一些工作。

您没有指定计划使用哪种 VPN,因此我只能给您一个通用的建议:您必须确保您的邮件服务器在隧道(或桥接,取决于...)的另一端始终接收相同的(私有)IP 地址,所以您必须确保您知道如何为 VPN 客户端设置静态 IP 地址。

至于邮件服务器,我强烈建议你使用红邮,Linux 世界中邮件服务器的完整解决方案,可以为您处理所有事情,并且可以让您(无论作为安装人员还是管理员)的生活变得更加轻松。

现在我的问题来了:如果你已经花费了 DO 帐户的费用,为什么不将邮件服务器放在上面,而不是放在家里呢?这样做的好处是 IRedMail 带有防火墙并fail2ban进行了预先配置,它们可以为你提供相当好的安全性。如果你将邮件服务器放在其他地方,则必须将防火墙和 fail2ban 分别放在 DO 机器上。

如果您决定将邮件服务器留在家中,则必须将一些端口从 DO 转发到邮件服务器。假设邮件服务器在 VPN 上的 IP 地址为 10.0.0.2,您需要的规则是:

  iptables -t nat -A PREROUTING -p tcp -i etho --dport 110 -j DNAT --to-destination 10.0.0.2:110
  iptables -A FORWARD -p tcp -d 10.0.0.2 --dport 110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

这适用于端口 110(dovecot 的监听端口)TCP 连接,并假设您的 DO 的接口称为eth0。您必须确定要向外界开放哪些端口。

相关内容