При использовании ВПН появляется вопрос, как предотвратить утечки трафика при загрузке ПК, а так же в случае обрыва коннекта.
Рассказывать как настроить сам ВПН не буду, предположим вы используете ubuntu и настроили network gnome manager для управления впн коннектами из интерфейса.
Для запрета трафика в обход ВПН нужно настроить правила iptables.
# для начала удаляем все существующие правила
sudo iptables -F && sudo iptables -t nat -F
# разрешаем трафик в локальной сети
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
где 192.168.1.0 ваш локальный ip адрес выданный например при подключении к wifi.
Узнать можно выполнив команду ifconfig
в выводе смотрите строки
wlan0 Link encap:Ethernet HWaddr c8:60:00:b5:48:fd
inet addr:192.168.1.26 Bcast:192.168.100.255 Mask:255.255.255.0
# ТУт разрешаем замыкание на себя
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
#Разрешаем трафик DNS до серверов провайдера впн
#вместо днс сервера провайдера можно указать днс сервер гугла 8.8.8.8
sudo iptables -A INPUT -s 209.222.18.222 -j ACCEPT
sudo iptables -A OUTPUT -d 209.222.18.222 -j ACCEPT
#wifi страница авторизации (если вы из публичного вай фай), разрешаем туда доступ без впн
"""""
sudo iptables -A INPUT -s startwifi.beeline.ru -j ACCEPT
sudo iptables -A OUTPUT -d startwifi.beeline.ru -j ACCEPT
"""""
#Разрешаем VPN
sudo iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp --sport 1194 -j ACCEPT
#Разрешаем хосты впн, если в качестве адреса используется не хост, если ip этот пункт пропустить
sudo iptables -A INPUT -s singapore.privateinternetaccess.com -j ACCEPT
sudo iptables -A OUTPUT -d singapore.privateinternetaccess.com -j ACCEPT
sudo iptables -A INPUT -s malaysia.privateinternetaccess.com -j ACCEPT
sudo iptables -A OUTPUT -d malaysia.privateinternetaccess.com -j ACCEPT
#Разрешаем впн тунели
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A INPUT -i tun0 -j ACCEPT
#Запрещаем все остальное что не указанно в правилах
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP
Эти правила сохранятся до перезагрузки ПК, чтобы они сохранились после перезагрузки, можно воспользоваться пакетом iptables-persistent
Для Ubuntu можно установить так:
sudo apt-get install iptables-persistent
команды для сохранения правил
sudo service iptables-persistent save
sudo service iptables-persistent start
Рассказывать как настроить сам ВПН не буду, предположим вы используете ubuntu и настроили network gnome manager для управления впн коннектами из интерфейса.
Для запрета трафика в обход ВПН нужно настроить правила iptables.
# для начала удаляем все существующие правила
sudo iptables -F && sudo iptables -t nat -F
# разрешаем трафик в локальной сети
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
где 192.168.1.0 ваш локальный ip адрес выданный например при подключении к wifi.
Узнать можно выполнив команду ifconfig
в выводе смотрите строки
wlan0 Link encap:Ethernet HWaddr c8:60:00:b5:48:fd
inet addr:192.168.1.26 Bcast:192.168.100.255 Mask:255.255.255.0
# ТУт разрешаем замыкание на себя
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
#Разрешаем трафик DNS до серверов провайдера впн
#вместо днс сервера провайдера можно указать днс сервер гугла 8.8.8.8
sudo iptables -A INPUT -s 209.222.18.222 -j ACCEPT
sudo iptables -A OUTPUT -d 209.222.18.222 -j ACCEPT
#wifi страница авторизации (если вы из публичного вай фай), разрешаем туда доступ без впн
"""""
sudo iptables -A INPUT -s startwifi.beeline.ru -j ACCEPT
sudo iptables -A OUTPUT -d startwifi.beeline.ru -j ACCEPT
"""""
#Разрешаем VPN
sudo iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp --sport 1194 -j ACCEPT
#Разрешаем хосты впн, если в качестве адреса используется не хост, если ip этот пункт пропустить
sudo iptables -A INPUT -s singapore.privateinternetaccess.com -j ACCEPT
sudo iptables -A OUTPUT -d singapore.privateinternetaccess.com -j ACCEPT
sudo iptables -A INPUT -s malaysia.privateinternetaccess.com -j ACCEPT
sudo iptables -A OUTPUT -d malaysia.privateinternetaccess.com -j ACCEPT
#Разрешаем впн тунели
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A INPUT -i tun0 -j ACCEPT
#Запрещаем все остальное что не указанно в правилах
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP
Эти правила сохранятся до перезагрузки ПК, чтобы они сохранились после перезагрузки, можно воспользоваться пакетом iptables-persistent
Для Ubuntu можно установить так:
sudo apt-get install iptables-persistent
команды для сохранения правил
sudo service iptables-persistent save
sudo service iptables-persistent start