Ho bisogno di un kill switch che uccida le connessioni in uscita se OpenVPN non è in esecuzione, perché altrimenti una VPN non avrebbe senso - se si disconnette, e c'è una connessione, il mio IP reale viene rilasciato.
Diciamo che 1.2.3.4 è il mio indirizzo del server VPN, e questo è il mio iptables dopo che ho eseguito il mio script kill switch:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- 255.255.255.255 anywhere
ACCEPT all -- 192.168.0.0/16 192.168.0.0/16
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 255.255.255.255
ACCEPT all -- 192.168.0.0/16 192.168.0.0/16
DROP all -- anywhere !1.2.3.4
Imo dovrebbe funzionare bene. Ma non riesco a connettermi a Internet, mentre il traffico locale passa. Vedi un problema in questa configurazione?
Il mio computer è un Raspberry Pi 3 in questa situazione, e sto usando OpenVPN su TCP e ho un Fritz.Box collegato a WAN.
Vedi qualche errore? Il mio script è il seguente:
#!/bin/bash
# check that OpenVPN is actually running.
running=$(ps -e | grep openvpn)
if [ $? -eq 1 ]; then
echo "No active VPN session found."
exit 1
fi
iptables -F
# Get WAN IP
WAN_IP=$(wget -q -O - http://ipecho.net/plain)
# Configure IPTable rules
# Change eth0 to wlan0 (or whatever network interface is being used) for wireless
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 255.255.255.255 -j ACCEPT
iptables -A INPUT -s 255.255.255.255 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -d 192.168.0.0/16 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.0/16 -d 192.168.0.0/16 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A OUTPUT -o eth0 ! -d $WAN_IP -j DROP
È assemblato con le seguenti fonti: https://github.com/qbwaggle/vpnkillswitch/blob/master/vpnkillswitch.sh , https://www.reddit.com/r/VPN/comments/43djk3/generic_kill_switch_script_for_openvpn_linux/
Ho provato questi script da solo, ma non funzionano (penso che sia lo stesso errore?).
Qualche idea? Grazie in anticipo.