У меня дома есть собственный почтовый сервер с динамическим IP. Динамические IP-адреса часто помещаются в черный список, поэтому в настоящее время я отправляю почту через ретранслятор своего провайдера. Я хочу изменить это на прямую отправку почты и для этой цели иметь где-нибудь vserver с фиксированным IP. Vserver подключен к моему локальному серверу через openvpn. Я хотел бы использовать туннель openvpn для маршрутизации (только) исходящей почты в «мир». Все остальные перевозки должны идти по обычному маршруту.
На vserver (общедоступный IP-адрес на eth0) работает openvpn-сервер с IP-адресом 10.20.0.1. Почтовый сервер (локальный IP 192.168.168.100) запускает клиент openvpn, IP 10.20.0.6.
IP-маршрутизация почтового сервера с установленным openvpn:
# 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
Из своего исследования я понял, что правильный путь - это пометить исходящие почтовые пакеты и направить их на vserver. Итак, я попробовал это на почтовом сервере:
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-маршрутизацию на vserver.
Тем не менее, похоже, что весь исходящий почтовый трафик по-прежнему уходит в обычном режиме. Используя tcpdump на vserver, я не вижу никаких следов исходящих подключений к порту 25. Таким образом, подключения должны быть прямыми, вне VPN. Что я упустил?