Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Support OpenVPN Gateway Tutorial

hecht04

Newbie
Registriert
14. März 2015
Beiträge
16
Reaktionspunkte
12
Punkte
23
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
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
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.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

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:
sehr gut beschrieben. nur eines frage ich mich dabei. zur zeit habe ich 2 pc 2 Smartphones und 3 enigma2 resis bei ghost angemeldet. an meinen anderen enigma2 boxen nutze ich den vpn er gigablue im Schlafzimmer, da stelle ich sicher das vpn aus ist. jetzt überlege ich wenn ich in meinem fall den rasberry pi anmelde und dann 11 geräte den vpn nutzen? geht das überhaupt?

# 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

für was steht #.#.#.#
 
Zuletzt bearbeitet:
11 geräte den vpn nutzen? geht das überhaupt?
Ja das geht. Kann sein, dass die Ethernet-Schnittstelle vom RPi ein wenig zu langsam ist, aber das musst du einfach testen.


# 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

für was steht #.#.#.#

Die # musst du mit der IP deines Netzwerkes ersetzen. (in den meisten Heimnetzen 192.168.0.0 oder 192.168.1.0)
Also folgendermaßen:
Code:
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT
 
Zuletzt bearbeitet:
Danke dir habe die selbe router IP also 192.168.01 wie du hier im Beispiel dann passt das mit 192.168.0.0 :) ghost habe ich auch remote 9-1-ch.cg-dialup.net 443 steht in der client.conf.

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)

192.168.0.0 ist nun klar nur der port 443 wo in der iptables.sh?
 
192.168.0.0 ist nun klar nur der port 443 wo in der iptables.sh?
1194 wird am bei den meisten Anbietern als UDP Port verwendet.
Also auch wieder so ändern (oder ggfs. einen anderen Port eintragen):
Code:
# allow VPN connection
iptables -I OUTPUT 1 -p udp --destination-port 1194 -m comment --comment "Allow VPN connection" -j ACCEPT
 
Super mache mich morgen am testen, bin zur zeit noch auf arbeit. gebe dann Rückmeldung. super das du hier mithelfen tust. könnten di mods eigentlich anpinnen und dich zum king küren :)
 
Zurück
Oben