我有:
1)Centos服务器 1使用 postfic/dovecot 邮件服务器
IP1 45.45.45.45(DNS:host1.com.ua)
服务器 1 无法向 25 端口发出传出请求,因为互联网服务提供商阻止了它!
telnet alt2.gmail-smtp-in.l.google.com 25
Trying 173.194.71.27...
telnet: connect to address 173.194.71.27: Connection timed out
Trying 2a00:1450:4010:c04::1b...
telnet: connect to address 2a00:1450:4010:c04::1b: Network is unreachable
2)Centos服务器2(路由器)
IP2 93.93.93.93 DNS:(host2.com.ua)
服务器 2 可以向 25 端口发出传出请求
telnet alt2.gmail-smtp-in.l.google.com 25
Trying 74.125.193.26...
Connected to alt2.gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP ij4si32339564igb.9 - gsmtp
问题:
我如何设置路由(隧道/转发)以使所有传出请求从服务器 1 端口 25 通过服务器 2?
答案1
老实说,正确的做法是更加谨慎地选择放置主邮件服务器的 ISP。但是,假设这是不可能的,我不会在第 3 层(iptables)执行此操作,我会在第 4 层(应用程序,即 SMTP)执行此操作,利用 SMTP 固有的存储转发特性。该过程看起来有点像这样:
- 在两台服务器之间设置某种 VPN。我会使用 ipsec,Iain 似乎更喜欢 ssh 隧道,其他人则喜欢 OpenVPN。
- 配置 server1 通过 server2 路由所有出站邮件
- 配置 server2 以接受来自 server1 的任何邮件并将其发送以进行传递
- 配置 server2 以接受您域的入站邮件,并将其全部传递到 server1 进行最终传递
- 将 server2 宣传为您的主 MX
两个服务器之间的邮件(无论是从您的域发出还是入站)都将通过 VPN,从而避开 ISP 的阻止。