У меня есть ноутбук с Ubuntu 12.04 (все еще жду 14.04.1)
Я установил сеть openvpn с менеджером сети.
Если vpn отбрасывает, сетевой менеджер устанавливает свой маршрут через доступный сетевой интерфейс, и пакет маршрутизируется через другие сети.
Есть ли простой способ избежать этого?
После некоторого тестирования:
Шлюз VPN может иметь много разных адресов, вы можете проверить это с помощью команды
nslookup VPN_gateway_name
В этом случае каждый новый запрос на установление VPN будет случайным образом использовать один IP-адрес в пуле адресов. Чтобы не менять IP-фильтр при каждом новом подключении, можно использовать DNS-имя шлюза; iptables
установит одно правило для каждого IP.
второе правило будет выглядеть как
sudo iptables -A OUTPUT -d your_vpn_gateway_dns_name -j ACCEPT
Iptables сделает это
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A OUTPUT -d your_vpn_gateway_ip -j ACCEPT
sudo iptables -A OUTPUT -d 127.0.0.0/8 -j ACCEPT
sudo iptables -A OUTPUT -j REJECT
Предположение, что весь вывод идет в VPN.Примечание: В зависимости от Вашей сети Вы передаете трафик, может контролироваться через различные инструменты, такие как wireshark, вид, и т.д.
Вы могли также решить эту проблему легко с udev, так как интерфейс бочки удален, когда соединение VPN отбрасывает. это правило просто разъединит от Вашего Wi-Fi AP каждый раз, когда соединение VPN завершается, таким образом, необходимо снова соединиться вручную снова: Создайте файл /etc/udev/rules.d/81-vpn-firewall.rules
и добавьте это правило к нему:
KERNEL=="tun0", ACTION=="remove", RUN+="/usr/bin/nmcli dev disconnect iface wlan0"
Наконец перезапуск udev:
sudo service udev restart