Человек Тьмы
Newbie
- 19.04.2020
- 24
- 59
Изложенные ниже правила являются дополнением к статье о настоойке клиента OpenVPN на маршрутизаторах под управлением OpenWRT.
############### ВАРИАНТ 1. ###############
Чтобы предотвратить утечку трафика вне VPN-туннеля, следует удалить правило пересылки (forwarding) с lan на wan.
В конфигурации по умолчанию существует одно правило пересылки, поэтому выполните команду или удалите (закомментируйте) соответствующую секцию в файле /etc/config/firewall:
Вы также можете установить опцию «masquerading» на «0» для зоны wan, она идет после зоны lan, поэтому выполните команду или опять же отредактируйте файл:
############### ВАРИАНТ 2 . ##############
В некоторых случаях openvpn зависает с сообщением журнала типа (не удалось разрешить хост ...).
В этом случае туннель остается открытым, но связь теряется.
Он должен быть повторно подключен вручную, с помощью следующего скрипта /etc/openvpn/reconnect.sh, который добавляется в файл /etc/rc.local
Создание, редактирование и содержание скрипта /etc/openvpn/reconnect.sh ниже :
############### ВАРИАНТ 3. ###############
Вы также можете отключить пересылку к интерфейсу, отличному от tun0-1, изменив файл etc/firewall.user
Иногда в сети встречается другой код реализации данного способа.
Какой из этих вариантов выбрать - решать Вам.
############### ВАРИАНТ 4. ###############
Создайте файл 99-prevent-leak в папке /etc/hotplug.d/iface/ со следующим содержимым:
Копируем в роутер командой.
############# ЗАКЛЮЧЕНИЕ. ###############
Рассмотренные четыре варианта блокировки утечки являются независимыми и достаточными, вы можете использовать как некоторые из них, так и все вместе для надёжности.
Разумеется, блокировка утечки работает только для клиентов маршрутизатора из локальной сети, для ресурсов, запущенных на самом маршрутизаторе (в частности, torrent-клиенте Transmission) она работать не будет! Для torrent-клиента, запущенного на компьютере, подключенном к маршрутизатору, блокировка работает.
После настройки маршрутизатора перезагрузите его командой:
тем самым убедитесь, что вы подключены.
############### ВАРИАНТ 1. ###############
В конфигурации по умолчанию существует одно правило пересылки, поэтому выполните команду или удалите (закомментируйте) соответствующую секцию в файле /etc/config/firewall:
# uci del firewall.@forwarding[0]
Вы также можете установить опцию «masquerading» на «0» для зоны wan, она идет после зоны lan, поэтому выполните команду или опять же отредактируйте файл:
# uci set firewall.@zone[1].masq=0
############### ВАРИАНТ 2 . ##############
В этом случае туннель остается открытым, но связь теряется.
Он должен быть повторно подключен вручную, с помощью следующего скрипта /etc/openvpn/reconnect.sh, который добавляется в файл /etc/rc.local
:~#vi /etc/rc.local:
Код:
###Мониторинг и перезагрузка в случае обрыва OpenVPN-соединения.
/etc/openvpn/reconnect.sh &
exit 0
:~#touch /etc/openvpn/reconnect.sh
:~#vi /etc/openvpn/reconnect.sh
Код:
#!/bin/sh
n=10
while sleep 50; do
t=$(ping -c $n 8.8.8.8 | grep -o -E '\d+ packets r' | grep -o -E '\d+')
if [ "$t" -eq 0 ]; then
/etc/init.d/openvpn restart
fi
done
############### ВАРИАНТ 3. ###############
# vi /etc/firewall.user:
Код:
if (! iptables -C forwarding_lan_rule ! -o tun+ -j REJECT); then
iptables -I forwarding_lan_rule ! -o tun+ -j REJECT
fi
# vi /etc/firewall.user:
Код:
if (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
iptables -I forwarding_rule -j REJECT
fi
############### ВАРИАНТ 4. ###############
Код:
#!/bin/sh
if [ «$ACTION» = ifup ] && (ip a s tun0 up) && (iptables -C forwarding_rule -j REJECT); then
iptables -D forwarding_rule -j REJECT
fi
if [ «$ACTION» = ifdown ] && (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
iptables -I forwarding_rule -j REJECT
fi
scp /home/user/client/99-prevent-leak root@192.168.4.1:/etc/hotplug.d/iface/
############# ЗАКЛЮЧЕНИЕ. ###############
Разумеется, блокировка утечки работает только для клиентов маршрутизатора из локальной сети, для ресурсов, запущенных на самом маршрутизаторе (в частности, torrent-клиенте Transmission) она работать не будет! Для torrent-клиента, запущенного на компьютере, подключенном к маршрутизатору, блокировка работает.
После настройки маршрутизатора перезагрузите его командой:
# reboot
и проверьте свой IP-адрес , # curl ident.me
тем самым убедитесь, что вы подключены.