- Mitglied seit
- 22. Sep 2012
- Beiträge
- 67
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hey
in meiner DS ist ein VPN-Profil für nvpn.net eingerichtet, funktioniert inzwischen auch alles wie es soll.
Ich bräuchte nun nur noch ein wenig Hilfestellung, was ich in die Firewall der DS eintragen muss, damit diese keinen Internetzugriff bei einem Ausfall der VPN bekommt. Macht es überhaupt Sinn das in der DS-internen Firewall zu setzen, oder sollte man das lieber im Router machen?
Vom VPN-Anbieter gibt es auch ein bash-Script, was genau dafür gedacht ist. Das Script passt die IPTables an, leider klappt es nicht auf der DS. Habe auch schon versucht herauszufinden wo es hapert, aber wenn ich eine Fehlermeldung eliminiere, taucht eine neue auf. Das ganze gipfelte dann darin, dass das WebIF der DS nicht mehr erreichbar war und ich sie per Knopfdruck neustarten musste.
Hier mal das Script, falls jemand dafür ein Auge hat:
in meiner DS ist ein VPN-Profil für nvpn.net eingerichtet, funktioniert inzwischen auch alles wie es soll.
Ich bräuchte nun nur noch ein wenig Hilfestellung, was ich in die Firewall der DS eintragen muss, damit diese keinen Internetzugriff bei einem Ausfall der VPN bekommt. Macht es überhaupt Sinn das in der DS-internen Firewall zu setzen, oder sollte man das lieber im Router machen?
Vom VPN-Anbieter gibt es auch ein bash-Script, was genau dafür gedacht ist. Das Script passt die IPTables an, leider klappt es nicht auf der DS. Habe auch schon versucht herauszufinden wo es hapert, aber wenn ich eine Fehlermeldung eliminiere, taucht eine neue auf. Das ganze gipfelte dann darin, dass das WebIF der DS nicht mehr erreichbar war und ich sie per Knopfdruck neustarten musste.
Hier mal das Script, falls jemand dafür ein Auge hat:
Rich (BBCode):
#!/bin/bash
# IPtables firewall script for a local pc - dropping all traffic if not going trough www.nVpn.net
# allows traffic inside local area network
# special rules for UPnP and Multicast discovery
# the variable "your_hostname_or_ip" is by default outcomnmented, but if you want to strictly disallow every traffic except to/from your hostname/IP then you can do so
# and the script will automatically adjust the IPtables rules accordingly
firewall="sudo `which iptables`"
local_ip_range="192.168.0.0/24"
local_interface="eth0" #enter your local interface (usually eth0 or eth1 and so on - you can find it using "ifconfig")
virtual_ip_range="10.0.0.0/8"
virtual_interface="tun0" #virtual interface where the VPN goes through (find out with "ifconfig")
vpn_connect_protocol="udp" #protocol shown in your "Username.ovpn" file (options are udp or tcp)
vpn_connect_port="1194" #connect_port is the port shown in your "Username.ovpn" file (1194 or 443 and so on..)
#---------------------------------------------------------------
# incase you want to restrict your firewall to ONLY allow access to your VPN IP/your hostname
# you will have to outcomment below and provide your hostname "uXXXXX.nvpn.so" or alternatively your VPN IP!
# the "your_hostname_or_ip" variable is an array, meaning you can as well add more than one hostname/IP so for example your_hostname_or_ip=("uXXXXXX.nvpn.so 188.15.21.201")
#---------------------------------------------------------------
#your_hostname_or_ip=("uXXXXXX.nvpn.so")
#---------------------------------------------------------------
# Remove old rules and tables
#---------------------------------------------------------------
echo "Deleting all old iptables rules..."
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
echo "Setting up the new rules..."
#---------------------------------------------------------------
# Allow all local connections via loopback
#---------------------------------------------------------------
$firewall -A INPUT -i lo -j ACCEPT
$firewall -A OUTPUT -o lo -j ACCEPT
#---------------------------------------------------------------
# Allow Multicast for local network
#---------------------------------------------------------------
$firewall -A INPUT -p igmp -s $local_ip_range -d 224.0.0.0/4 -i $local_interface -j ACCEPT
$firewall -A OUTPUT -p igmp -s $local_ip_range -d 224.0.0.0/4 -o $local_interface -j ACCEPT
#---------------------------------------------------------------
# UPnP uses IGMP multicast to find media servers
# Accept IGMP broadcast packets.# Send SSDP Packets
#---------------------------------------------------------------
$firewall -A INPUT -p igmp -s $local_ip_range -d 239.0.0.0/8 -i $local_interface -j ACCEPT
$firewall -A OUTPUT -p udp -s $local_ip_range -d 239.255.255.250 --dport 1900 -o $local_interface -j ACCEPT
#---------------------------------------------------------------
# Allow all bidirectional traffic from your firewall to the local area network
#---------------------------------------------------------------
$firewall -A INPUT -j ACCEPT -s $local_ip_range -i $local_interface
$firewall -A OUTPUT -j ACCEPT -d $local_ip_range -o $local_interface
#---------------------------------------------------------------
# Allow all bidirectional traffic from your firewall to the
# virtual private network
#---------------------------------------------------------------
$firewall -A INPUT -i $virtual_interface -j ACCEPT
$firewall -A OUTPUT -o $virtual_interface -j ACCEPT
#---------------------------------------------------------------
# Optional - Connection restriction to your IP/hostname (uXXXXXX.nvpn.so)
#---------------------------------------------------------------
if [[ ! -z $your_hostname_or_ip ]]; then
hostname_or_ip_count=${#your_hostname_or_ip[@]}
for (( c = 0; c < $hostname_or_ip_count; c++ ))
do
$firewall -A INPUT -i $local_interface -p $vpn_connect_protocol -m $vpn_connect_protocol -s ${your_hostname_or_ip[c]} --sport $vpn_connect_port -j ACCEPT
$firewall -A OUTPUT -o $local_interface -p $vpn_connect_protocol -m $vpn_connect_protocol -d ${your_hostname_or_ip[c]} --dport $vpn_connect_port -j ACCEPT
done
else
$firewall -A INPUT -i $local_interface -p $vpn_connect_protocol -m $vpn_connect_protocol --sport $vpn_connect_port -j ACCEPT
$firewall -A OUTPUT -o $local_interface -p $vpn_connect_protocol -m $vpn_connect_protocol --dport $vpn_connect_port -j ACCEPT
fi
#---------------------------------------------------------------
# Default Policy - Drop everything
#---------------------------------------------------------------
$firewall -P INPUT DROP
$firewall -P FORWARD DROP
$firewall -P OUTPUT DROP
#---------------------------------------------------------------
# Log all dropped packages, debug only.
# View in /var/log/syslog or /var/log/messages
#---------------------------------------------------------------
sudo iptables -N logging
sudo iptables -A INPUT -j logging
sudo iptables -A OUTPUT -j logging
sudo iptables -A logging -m limit --limit 2/min -j LOG --log-prefix "IPTables general: " --log-level 7
sudo iptables -A logging -j DROP
echo 'nVpn.net - Rules successfully applied, we start "watch" to verify IPtables in realtime (you can cancel it as usual CTRL + c)'
sleep 3
watch -n 0 "sudo iptables -nvL"