我在家里用dynamicIP运行我自己的邮件服务器。 dynamicIP经常被列入黑名单,所以我现在通过提供商的中继发送邮件。 我想改变这个直接发送邮件,为此目的有一个虚拟服务器在某个固定的IP地方。 虚拟服务器通过openvpn连接到我的本地服务器。 我想使用openvpn隧道将(只)发送邮件路由到“世界”。 所有其他交通将采取正常路线。
虚拟服务器(eth0上的公共IP)运行openvpn服务器IP 10.20.0.1。 邮件服务器(本地IP 192.168.168.100)运行openvpn客户端IP 10.20.0.6。
邮件服务器IP路由与openvpnbuild立:
# route default 192.168.168.1 0.0.0.0 UG 0 0 0 eth0 10.20.0.1 10.9.0.5 255.255.255.255 UGH 0 0 0 tun1 10.20.0.5 * 255.255.255.255 UH 0 0 0 tun1 192.168.168.0 * 255.255.255.0 U 0 0 0 eth0
从我的研究中,我明白,正确的做法应该是标记传出邮件数据包并将其路由到虚拟服务器。 所以我试图在邮件服务器上:
echo 201 mail.out >>/etc/iproute2/rt_tables ip rule add fwmark 1 table mail.out iptables -A PREROUTING -t mangle -p tcp --dport 25 -j MARK --set-mark 1 ip route add default via 10.9.0.5 dev tun1 table mail.out
(稍后我将添加端口465)。
另外,我在虚拟服务器上启用了伪装和IP路由。
但是,似乎所有外发邮件stream量仍然是正常的方式。 在vserver上使用tcpdump,我看不到任何到端口25的传出连接的踪迹。因此连接必须直接在VPN之外进行。 我错过了什么?