openvpn client, iproute2, iptables: dest port based routing
ЛОР, Здравствуйте!
Уже несколько часов подряд не могу побороть маршруты на клиенте OpenVPN. Поиск работающего решения не дал и потому встречайте простыню:
Дано:
OpenVPN сервер - мной не контролируется
OpenVPN клиент ubuntu
wlan0 192.168.1.111 - интерфейс с инетом
Маршруты которые применяются на клиенте после соединения с сервером:
/sbin/route add -net 207.126.92.3 netmask 255.255.255.255 gw 192.168.1.1
/sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 5.5.0.1
/sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 5.5.0.1
80,443 в vpn
все остальные мимо впна на 192.168.1.1 == роутер
Как размечать пакеты я в курсе:
iptables -A OUTPUT -t mangle -p tcp -m multiport ! --dports 80,443 -j MARK --set-xmark 0x1/0xffffffff
ip rule add fwmark 0x1 table 100
ip route add default via 192.168.1.1 table 100
Не привожу конфиги целиком так как они все равно не работают как надо и много букв.
Были безуспешные попытки применить новые правила роутинга заюзав up/down директивы openvpn клиента.
В любом случае при поднятом впне пакеты уходили и успешно возвращались обратно, только через впн.
Пакеты заруленные мимо впна, в том числе с подменой исходящего адреса
iptables -A POSTROUTING -t nat -o $IF -p tcp -m multiport --dports 80,443 -j SNAT --to $IF_IP
"70","192.168.1.111","X.X.X.X","TCP","34314 > 81 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=18664016 TSER=0 WS=7"
"71","X.X.X.X","192.168.1.111","TCP","81 > 34314 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1428 TSV=531584430 TSER=18654692 WS=5"
"72","X.X.X.X","192.168.1.111","TCP","81 > 34314 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1428 TSV=531584779 TSER=18654692 WS=5"
"73","192.168.1.111","X.X.X.X","TCP","34343 > 81 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=18673732 TSER=0 WS=7"
Чувствую, что прогулял какой то урок в школе, да и дзена пока не достиг. И не могу допереть какая в данном случае конфигурация будет работоспособна.
Красноглазые, и не очень, выручайте любезно, пожалуйста!