Hier ist ein kleines Tutorial, wie man ein VPN Gateway einrichtet. So kann man jedes Gerät im eigenen Netzwerk ins VPN bringen.
Die IPTables Regeln blockieren jeglichen Verkehr der nicht übers VPN geht.
Ich habe das ganze auf einem BananaPI mit Cyberghost VPN auf Debian 9 am laufen, allerdings sollte es auch mit anderen Geräten, Distros und VPN Anbietern laufen.
Ich gehe in dem Tutorial von einer frischen Installation aus.
1. Updaten
2. Upgraden
3. OpenVPN installieren
4. Statische IP vergeben
interfaces:
Ihr müsst die IP Adressen an euer Netzwerk anpassen.
WICHTIG: Ihr solltet eine Range beim DHCP Server (in den meisten Fällen der Router) festlegen, damit keine IP-Adresskonflikte entstehen
5. OVPN Kofigurationsdateien runtertladen und in den Ordner /etc/openvpn verschieben.
6. connect.sh erstellen
connect.sh
Den Dateinamen eurer Config eintragen
6. auth.txt erstellen
auth.txt
6. iptables.sh erstellen
Ihr müsst noch die IP eures Netzwerks ergänzen (bspw. 192.168.0.0) und den UDP Port des VPNs (Standard ist 1194, bei Cyberghost 443)
iptables.sh
7. IP Forwarding aktivieren
net.ipv4.ip_forward=1 einfügen bzw. auskommentieren
net.ipv6.conf.all.disable_ipv6 = 1 einfügen bzw. auskommentieren um IPv6 Leaks zu vermeiden
Reboot
8. Erster Test
Testet die Verbindung mit einem anderen Gerät, das Gateway sollte der VPN Server sein.
Pingt mit dem Testgerät eine Domain (google.de).
Beendet OVPN mittels Strg + C der Ping sollte nun keine Verbindung bekommen.
Wenn alles funktioniert müsen die Scripte noch in den Autostart.
Dazu folgendes vor der Zeile "exit 0" in die /etc/rc.local schreiben:
Nach einem Neustart können alle Geräte in eurem Netzwerk ins VPN, indem ihr den VPN Server als Gateway einstellt.
Ihr sollte bei den zu verbindenden Geräten IPv6 deaktivieren um Leaks zu vermeiden.
Die IPTables Regeln blockieren jeglichen Verkehr der nicht übers VPN geht.
Ich habe das ganze auf einem BananaPI mit Cyberghost VPN auf Debian 9 am laufen, allerdings sollte es auch mit anderen Geräten, Distros und VPN Anbietern laufen.
Ich gehe in dem Tutorial von einer frischen Installation aus.
1. Updaten
Code:
sudo apt-get update
2. Upgraden
Code:
sudo apt-get upgrade
3. OpenVPN installieren
Code:
sudo apt-get openvpn
4. Statische IP vergeben
Code:
sudo nano /etc/network/interfaces
interfaces:
Ihr müsst die IP Adressen an euer Netzwerk anpassen.
WICHTIG: Ihr solltet eine Range beim DHCP Server (in den meisten Fällen der Router) festlegen, damit keine IP-Adresskonflikte entstehen
Code:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.2 #Adresse des Pis
netmask 255.255.255.0
gateway 192.168.0.1 #Adresse des Routers
dns-nameservers 1.1.1.1 1.0.0.1 #Cloudflare Nameserver
5. OVPN Kofigurationsdateien runtertladen und in den Ordner /etc/openvpn verschieben.
6. connect.sh erstellen
Code:
sudo nano /etc/openvpn/connect.sh
connect.sh
Den Dateinamen eurer Config eintragen
Code:
sudo openvpn --config "/etc/openvpn/#EURE VPN Config#.ovpn" --auth-user-pass /etc/openvpn/auth.txt
6. auth.txt erstellen
Code:
sudo nano /etc/openvpn/connect.sh
auth.txt
Code:
Benutzername
Passwort
6. iptables.sh erstellen
Ihr müsst noch die IP eures Netzwerks ergänzen (bspw. 192.168.0.0) und den UDP Port des VPNs (Standard ist 1194, bei Cyberghost 443)
Code:
sudo nano /etc/openvpn/iptables.sh
Code:
#!/bin/bash
# Flush
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
# Block All
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
# allow Localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Make sure you can communicate with any DHCP server
iptables -A OUTPUT -d 255.255.255.255 -j ACCEPT
iptables -A INPUT -s 255.255.255.255 -j ACCEPT
# Make sure that you can communicate within your own network
iptables -A INPUT -s #.#.#.#/24 -d #.#.#.#/24 -j ACCEPT
iptables -A OUTPUT -s #.#.#.#/24 -d #.#.#.#/24 -j ACCEPT
# Allow established sessions to receive traffic:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow TUN
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -o tun+ -j ACCEPT
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE
iptables -A OUTPUT -o tun+ -j ACCEPT
# allow VPN connection
iptables -I OUTPUT 1 -p udp --destination-port 1194 -m comment --comment "Allow VPN connection" -j ACCEPT
# Block All
iptables -A OUTPUT -j DROP
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
# Log all dropped packages, debug only.
iptables -N logging
iptables -A INPUT -j logging
iptables -A OUTPUT -j logging
iptables -A logging -m limit --limit 2/min -j LOG --log-prefix "IPTables general: " --log-level 7
iptables -A logging -j DROP
echo "saving"
iptables-save > /etc/iptables.rules
echo "done"
#echo 'openVPN - 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"
7. IP Forwarding aktivieren
Code:
sudo nano /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1 einfügen bzw. auskommentieren um IPv6 Leaks zu vermeiden
Reboot
8. Erster Test
Code:
sudo bash /etc/openvpn/iptables.sh
sudo bash /etc/openvpn/connect.sh
Testet die Verbindung mit einem anderen Gerät, das Gateway sollte der VPN Server sein.
Pingt mit dem Testgerät eine Domain (google.de).
Beendet OVPN mittels Strg + C der Ping sollte nun keine Verbindung bekommen.
Wenn alles funktioniert müsen die Scripte noch in den Autostart.
Dazu folgendes vor der Zeile "exit 0" in die /etc/rc.local schreiben:
Code:
sudo bash /etc/openvpn/iptables.sh &
sleep 10
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo bash /etc/openvpn/connect.sh &
Nach einem Neustart können alle Geräte in eurem Netzwerk ins VPN, indem ihr den VPN Server als Gateway einstellt.
Ihr sollte bei den zu verbindenden Geräten IPv6 deaktivieren um Leaks zu vermeiden.
Zuletzt bearbeitet: