У меня есть машина, подключенная к серверу openvpn по адресу 1.2.3.4. Моя машина имеет IP 192.168.1.0/24 и может достигать адреса 1.2.3.4. Как только я подключаюсь к серверу openvpn, создается новый интерфейс tun0 и ему назначается IP-адрес 192.168.0.6. Я могу пинговать машину, на которой размещен VPN, по IP-адресу 192.168.0.1. Трафик проходит через интерфейс tun0, как и ожидалось.

Могу ли я установить некоторые правила iptables для принудительного прохождения трафика через tun0, даже если я пингую напрямую 1.2.3.4? В частности, я хотел бы ограничить это только портом 80 из 1.2.3.4.

1 ответ1

0

Итак, во-первых, нам нужно изменить маршрут по умолчанию. Запуск ip route должен показать, что текущий маршрут по умолчанию является шлюзом для сети VPN 192.168.0.0/24 . Это необходимо изменить (при подключении к VPN), удалив текущий маршрут по умолчанию и создав новый, указывающий на шлюз / маршрутизатор локальной сети (не vpn). Поэтому, если шлюзом вашей локальной сети является 172.16.2.1 вы должны выполнить:

  • sudo ip route del default
  • sudo ip route default via 172.16.2.1

Теперь, если вы запустите ip route и route -n вы увидите, что новый маршрут по умолчанию теперь указывает на вашу локальную сеть, и по умолчанию никакой трафик не должен проходить через ваш VPN-туннель.

Теперь мы можем перейти к перенаправлению всего исходящего трафика через порт 80/443 на шлюз VPN.

  • sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:80
  • sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 192.168.0.1:443

Теперь это должно переадресовывать / перенаправлять любой веб-трафик, исходящий на шлюз / маршрутизатор по умолчанию для вашего VPN, а весь остальной трафик по умолчанию выводиться локально.

Попробуйте и дайте мне знать, если это достигнет того, что вы ищете!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .