ТОТАЛНИ ДЕФЕКТИ

Философия на безкрайността, чудесата и политическата мода

ПОРЪЧАЙ ТУК

🎄 Коледно промо: 5 лв.

или търси в книжарниците!

DIY VPN Killswitch

Обновена на: 24 март 2022 г.

EDITED
Имах идея да пиша т’ва като едит на Ubuntu & VPN поста, но реших да го направя отделен, понеже разликите между Ubuntu и чист Debian са миниатюрни, но важни.

Killswitch-ът ще блоква всеки трафик, който не минава през VPN-a. На всеки мрежови адаптер. Сравнително сигурен съм, че скриптът, който написах, е универсален.

След деплоймент, може да се зарежда заедно с openvpn в /etc/rc.local точно както описах в последния пост. Преди openvpn, естествено.

Супер важно е да кажа, че vanilla Debian няма resolvconf пакета, който е неизменно важен хем да нямаш DNS Leak, хем изобщо да можеш да ползваш DNS-и с този killswitch.

Та първо инсталирай resolvconf, после инсталирай ufw, след това действай по предния пост, а накрая си вземи скрипта:

#!/bin/bash
# Bring all interfaces down

ifconfig eth0 down
ifconfig $(ifconfig -a | grep wlan | awk ‘{printf$1}’ | head -1) down

# Purge UFW settings

ufw –force reset

# Deny from all

ufw default deny incoming
ufw default deny outgoing
ufw enable

# This should allow most local traffic

ufw allow to 192.168.0.0/12
ufw allow in from 192.168.0.0/12

# Revive interfaces

ifconfig eth0 up
ifconfig $(ifconfig -a | grep wlan | awk ‘{printf$1}’ | head -1) up

# This parses the OVPN files in your /etc/openvpn folder, presumably this scipt is deployed in the same dir
# Allows VPN port for the UDP protocol outbound only

remote_port=($(grep -r -m 1 remote *.ovpn | awk ‘{print$3}’));
for ((i=0; i != ${#remote_port[@]}; i++)); do
ufw allow out ${remote_port[i]}/udp;
done;

# Allow inbound from parsed VPN IPs.

ufw allow in from $(grep -m 1 remote *.ovpn | awk ‘{print$2}’ | xargs echo -n) to any

# Allow the VPN tun0 (presumably default) interface

ufw allow in on tun0 from any to any
ufw allow out on tun0 from any to any

# Restart NetworkManager to reconnect.

service NetworkManager restart