Я хотел бы использовать VPN когда на общедоступном Wi-Fi для безопасности. Для установления моего туннеля OpenVPN, мне нужно рабочее сетевое соединение. Когда я соединяюсь с общедоступной точкой доступа Wi-Fi существует окно времени после соединения, но прежде чем мой клиент VPN запускается, соединяет и обновляет таблицу маршрутизации, во время который трафик от моих системных перемещений, незашифрованных по общедоступному Wi-Fi.
Как я могу заставить Wi-Fi не передавать трафик кроме трафика, предназначенного для моего сервера OpenVPN во время того окна времени?
Дополнительный кредит: существует ли способ добавить сети Wi-Fi в белый список, как доверяется (как мой дом или Wi-Fi работы) таким образом, что весь трафик позволяется, поскольку я не буду использовать VPN?
Большинство сервисов vpn предоставляют клиентов, которых вы можете использовать для их обслуживания. Эти клиенты обычно блокируют доступ к Интернету за пределами vpn. Когда вы запускаете компьютер, просто отключите Wi-Fi или Eth и подключитесь после запуска клиента. После запуска все блокируется.
Вам следует искать службу, которая публикует исходный код своего клиента, чтобы вы могли проверить, что именно он делает.
Может быть, у меня есть решение для вас.
Создать скрипт в /etc/NetworkManager/dispatcher.d/vpn-up
#! /bin/bash
REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"
activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
nmcli con up id "${VPN_CONNECTION_NAME}"
fi
Ведьма означает, что если он не подключен к REQUIRED_CONNECTION_NAME
, то есть домашний Wi-Fi Dispecher будет подключаться к vpn
.
Это будет работать, только если вы используете NM
для подключения VPN
. Если вы не используете NM
для соединения vpn
, измените скрипт nmcli con up id "${VPN_CONNECTION_NAME}"
с вашей командой для запуска соединения vpn
.
Я бы попробовал следующее с iptables
, в следующем порядке:
# Allow dhcp
sudo iptables -A OUTPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
# Allow outbound VPN traffic
sudo iptables -A OUTPUT -p udp --dport 1194 -d 0.0.0.0/0 -j ACCEPT"
# DROP all outbound WIFI
sudo iptables -A OUTPUT -i wlan0 -j DROP
В офисной и домашней сети вам придется запустить:
# Accept all outbound traffic
sudo iptables -D OUTPUT -i wlan0 -j DROP
Может быть расширение iptables
который будет фильтровать, используя SSID WIFI или какой-либо другой идентификатор маршрутизатора, но я не знаком ни с одним
ПРИМЕЧАНИЕ: вам может потребоваться обновить удаленный порт ovpn и/или имя сетевого интерфейса WIFI