Onion Gun Forum
Общение => Безопасность в Сети => Тема начата: Pendalf от января 09, 2023, 20:00 Пн.
VPN защищенный от утечки вашего IP адреса.
В общем небольшая заметка, на статью не тянет. В Debian-based дистрибутивах что бы завернуть трафик в VPN туннель написал простенький скрипт, вернее два.
Создаем файл в удобном месте, для меня это каталог /root
sudo bash
cd /root
touch iptables.rules
touch reset.rules
chmod +x *.rules
Затем в вашем любимом редакторе редактируем файл iptables.rules
nano iptables.rules
#!/bin/bash
IF1="wlp1s0"
VPN_PORT=1099
VPN_IF="tun0"
#Police
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#VPN_IF
iptables -A INPUT -i "$VPN_IF" -j ACCEPT
iptables -A OUTPUT -o "$VPN_IF" -j ACCEPT
#ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
#established connections
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#DNS
iptables -A OUTPUT -p udp -o "$IF1" --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i "$IF1" --sport 53 -j ACCEPT
#VPN
iptables -A OUTPUT -p udp -o "$IF1" --dport "$VPN_PORT" -j ACCEPT
iptables -A INPUT -p udp -i "$IF1" --sport "$VPN_PORT" -j ACCEPT
Скрипт рассчитывался под OpenVPN но не важно какой тип VPN используется, главное разрешить резольвинг адресов DNS для корректной работы VPN, т.к. большинство VPN сервисов имеют доменные имена серверов, а не IP адрес в конфигурации. Это чревато утечкой DNS, но не принципиально, т.к. весь трафик заворачивается в туннель после установки соединения.
Так же предполагается, что ваш компьютер находиться за NAT (роутером/WiFi и т.д.) и не имеет "белого" IP адреса, поэтому для более продвинутых пользователей решение будет немного другое.
В случае обрыва соединения с VPN, у вас просто отрубится интернет.
Второй скрипт вернет все на место.
nano reset.rules
#!/bin/bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F INPUT
iptables -F OUTPUT
Запускаем с правами root из консоли или настраиваем скрипты в файле /etc/network/interfaces
pre-up и post-down комманды.
так же можно использовать iptables-save и iptables-restore почитав руководство по этим командам.
Для настройки скрипта выполните
sudo ip link show
что бы посмотреть ваши имена интерфейсов в системе. Так же необходимо знать порты, по которым соединяется VPN.
----
Торификация системы.
Я модернизировал скрипт отсюда под Debian/Ubuntu последних версий.
https://github.com/ericpaulbishop/iptables_torify
Скрипт делает бэкап и меняет /etc/tor/torrc на работу с виртуальной сетью, если были правки файла, то используйте бэкап.
Управление скриптом
systemctl stop torify.service
systemctl start torify.service
Данный скрипт устанавливает tor и создает стартовые скрипты в /etc/init.d
Для удаления установки выполните следующие команды
sudo systemctl stop torify.service
sudo systemctl disable torify.service
sudo rm /etc/init.d/torify
Задавайте вопросы, если что-то не получается.
А как запускается этот скрипт в debian подобных?
Цитата: infer от апреля 30, 2023, 00:00 Вс.А как запускается этот скрипт в debian подобных?
Цитата: Pendalf от января 09, 2023, 20:00 Пн.Данный скрипт устанавливает tor и создает стартовые скрипты в /etc/init.d
Ясно,будем пробовать.