Что нового

Article Предотвращение утечки IP на маршрутизаторах под управлением OpenWRT.

Человек Тьмы 0
19.04.2020
24
59
Изложенные ниже правила являются дополнением к статье о настоойке клиента OpenVPN на маршрутизаторах под управлением OpenWRT.


############### ВАРИАНТ 1. ###############
Чтобы предотвратить утечку трафика вне VPN-туннеля, следует удалить правило пересылки (forwarding) с lan на wan.
В конфигурации по умолчанию существует одно правило пересылки, поэтому выполните команду или удалите (закомментируйте) соответствующую секцию в файле /etc/config/firewall:
# uci del firewall.@forwarding[0]

Вы также можете установить опцию «masquerading» на «0» для зоны wan, она идет после зоны lan, поэтому выполните команду или опять же отредактируйте файл:
# uci set firewall.@zone[1].masq=0


############### ВАРИАНТ 2 . ##############
В некоторых случаях openvpn зависает с сообщением журнала типа (не удалось разрешить хост ...).
В этом случае туннель остается открытым, но связь теряется.
Он должен быть повторно подключен вручную, с помощью следующего скрипта /etc/openvpn/reconnect.sh, который добавляется в файл /etc/rc.local

:~#vi /etc/rc.local:
Код:
###Мониторинг и перезагрузка в случае обрыва OpenVPN-соединения.
/etc/openvpn/reconnect.sh  &
exit 0
Создание, редактирование и содержание скрипта /etc/openvpn/reconnect.sh ниже :

:~#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. ###############
Вы также можете отключить пересылку к интерфейсу, отличному от tun0-1, изменив файл etc/firewall.user

# 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. ###############
Создайте файл 99-prevent-leak в папке /etc/hotplug.d/iface/ со следующим содержимым:
Код:
#!/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

тем самым убедитесь, что вы подключены.
 
Верх Низ