Мой VPN фильтрует порт 25 (для предотвращения спама), а мой интернет-провайдер - нет. VPN берет на себя весь трафик и меняет шлюз по умолчанию? Как я могу обойти VPN для отправки почты? Я хочу, чтобы весь исходящий трафик, кроме порта 25, продолжал использовать VPN.
Моя установка:
router 192.168.0.1 (this is the default gateway when VPN is not connected)
eth0 192.168.0.185
tun0 10.8.0.202
Я пытался использовать iptables, чтобы что-то сделать с --dport 25, но я действительно не знаю, как обойти брандмауэр.
Я использую Ubuntu 12.10.
Другое дело, что на 192.168.0.185 работает несколько серверов (веб, почта, ssh, ...). Маршрутизатор 192.168.0.1 перенаправляет запросы с этих портов (80, 443, ...) на 192.168.0.185. Чтобы VPN не мешал этому, я запускаю:
ip rule add from 192.168.0.185 table 10
ip route add default via 192.168.0.1 table 10
Все мои серверы начали работать, кроме почты (из-за той же проблемы с портом 25?), Поэтому я изменил postfix для работы на 2525 (и там был перенаправленный порт маршрутизатора 25), и он заработал.
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.201 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.1 10.8.0.201 255.255.255.255 UGH 0 0 0 tun0
10.8.0.201 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
46.21.99.21 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 10.8.0.201 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
На ум приходят две возможности:
Добавьте статический маршрут к IP-адресу вашего внешнего почтового сервера, который явно маршрутизируется через интерфейс Ethernet вместо маршрута по умолчанию.
Отправьте исходящую почту на внешний почтовый сервер через порт отправки (587).
Однако лучший ответ - запустить почтовый сервер на другой (виртуальной) машине, а не на VPN, чтобы вы могли правильно маршрутизировать его трафик. Маршруты можно указывать только по IP-адресу / сети, но не по номеру порта.