Osprey
Teammitglied
- Registriert
- 30. Dezember 2011
- Beiträge
- 16.013
- Lösungen
- 8
- Reaktionspunkte
- 17.430
- Punkte
- 1.093
- Ort
- Im wilden Süden
OpenVPN Server auf einem Debian - Linux System
Hier wird jetzt gezeigt wie man ein Debian Server als VPN Gateway für sein Netzwerk konfiguriert.
User können nachher Zertifikatbasiert über den VPN Server auf euer Netzwerk zugreifen.
Das ganze funktioniert auch Wunderbar mit dem OpenVPN Clienten für Android.
Was richten wir ein ?
Wir richten einen VPN Tunnel über ein TUN Device über UDP.
Hiermit wird im Tunnel Layer3 genutzt. Schafft ein paar Vorteile, aber hat sicher auch Nachteile.
Warum UDP und nicht TCP ?
Innerhalb des Tunnel wird TCP gesprochen, also werden Pakete gesichert zugestellt.
Daher brauchen wir für den Tunnel kein TCP, UDP reicht.
Was benötigen wir ?
1. Einen Account bei einem DynDNS Dienst
2. Eine Port Weiterleitung auf dem Router
Angenommene Ausgangskonfiguration :
- IP des Debian Rechner : 192.168.1.132
- UDP Port des VPN : 4624 # wir benutzen NICHT die Standartports !!
Vorbereitung Router:
Meldet euch auf euerem Router an und richtet ein Portforwarding ein.
Port UDP 4624 nach 192.168.1.132 4624 UDP
Wir sorgen dafür das unser Debian OS auch Routen kann.
Damit das nach einem Reboot noch vorhanden ist :
Dann suchen wir diesen Eintrag und entfernen die # davor.:
Speichern nicht vergessen mit strg+o und schließen mit strg+x
Wir müssen eine Firewall installieren die unsere VPN IP mit der lokalen "verkleidet"
Das ganze soll auch nach einem Neustart verfügbar sein und wir tragen das in die rc.local ein vor dem exit0
Anleitung bis Debian 7 (Whezzy)
Anleitung ab Debian 8 Jessie
Diese können wir auf unserem Smartphone übertragen auf einen Ordner auf die sd Karte und uns dann mit der Openvpn App connecten.
Ich habe ein Android Gerät und nutze das :
Einfach auf import -> iport profile from sd card -> Deitei mit .ovpn auswählen -> Connecten
HINWEISE:
- Testet die Verbindung aus dem Mobilfunknetz!
- Der VPN Client kann sich nur verbinden wenn er in einem anderem Netz ist wie der VPN Server.
Bsp. Server 192.168.178.23 die IP vom Client muss sich mindestens im 3 Block unterscheiden Bsp. 192.168.1.23
- Wählt nicht unbedingt die LAN IP wo der Server steht mit 192.168.178.x , da das die meisten mit einer Fritzbox haben und wenn ihr euch nach Hause verbinden wollt von der Freundin aus das nicht geht wenn Sie auch eine Fritzbox hat.
Empfehle dem Router Zuhause eine etwas außergewöhnliches ip zu geben wie Bsp. 192.168.7.1 da das fast niemand hat.
Für ipv6 soll es mit einigen Config Änderungen auch gehen wie hier beschrieben:
Gruß Osprey
Hier wird jetzt gezeigt wie man ein Debian Server als VPN Gateway für sein Netzwerk konfiguriert.
User können nachher Zertifikatbasiert über den VPN Server auf euer Netzwerk zugreifen.
Das ganze funktioniert auch Wunderbar mit dem OpenVPN Clienten für Android.
Was richten wir ein ?
Wir richten einen VPN Tunnel über ein TUN Device über UDP.
Hiermit wird im Tunnel Layer3 genutzt. Schafft ein paar Vorteile, aber hat sicher auch Nachteile.
Warum UDP und nicht TCP ?
Innerhalb des Tunnel wird TCP gesprochen, also werden Pakete gesichert zugestellt.
Daher brauchen wir für den Tunnel kein TCP, UDP reicht.
Was benötigen wir ?
1. Einen Account bei einem DynDNS Dienst
2. Eine Port Weiterleitung auf dem Router
Angenommene Ausgangskonfiguration :
- IP des Debian Rechner : 192.168.1.132
- UDP Port des VPN : 4624 # wir benutzen NICHT die Standartports !!
Vorbereitung Router:
Meldet euch auf euerem Router an und richtet ein Portforwarding ein.
Port UDP 4624 nach 192.168.1.132 4624 UDP
Wir sorgen dafür das unser Debian OS auch Routen kann.
Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
Code:
nano /etc/sysctl.conf
Dann suchen wir diesen Eintrag und entfernen die # davor.:
Code:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Speichern nicht vergessen mit strg+o und schließen mit strg+x
Wir müssen eine Firewall installieren die unsere VPN IP mit der lokalen "verkleidet"
Das ganze soll auch nach einem Neustart verfügbar sein und wir tragen das in die rc.local ein vor dem exit0
Code:
apt-get update && apt-get install iptables
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE
nano /etc/rc.local
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE
Anleitung bis Debian 7 (Whezzy)
Openssl und Openvpn installieren.
Jetzt kopieren wir den Order easy-rsa in unser Openvpn Verzeichnis
-wir müssen jetz einen Eintrag ändern in der
von
auf
Jetz geht es weiter mit einem symlink, Tool und erstellen der Zertifikate für den ersten Client
Es reicht wenn ihr am Anfang DE eingibt und den Rest einfach bestätigt. Zum Schluss von jedem Key 2x mit Y bestätigen
Fast fertig
jetzt noch den dh, das dauert paar Minuten.
Jetzt erstellen wir die openvpn.conf mit dem Nano Editor
folgenden schreiben wir rein :
nano /etc/openvpn/openvpn.conf
nun können wir den Server neu starten
Jetzt sollte der Server laufen und auf eine Verbindung warten.
Zum Clienten :
der Client benötigt folgende Dateien aus /etc/openvpn/easy-rsa/keys/
ca.crt
osprey.crt
osprey.key
Diese Kopieren wir erst mal an einen sicheren Ort bsp. mit Winscp auf den PC in einen neuen Ordner
Jetzt brauchen wir noch die Client Config.
Dazu öffnen wir einen Linux Editor Bsp. PSpad und erstellen die client.ovpn Datei
Jetzt sollten wir 4 Dateien im erstellten Ordner auf dem PC haben:
ca.crt
osprey.crt
osprey.key
client.ovpn
Code:
apt-get install openssl openvpn
Jetzt kopieren wir den Order easy-rsa in unser Openvpn Verzeichnis
Code:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
-wir müssen jetz einen Eintrag ändern in der
Code:
nano /etc/openvpn/easy-rsa/vars
Code:
export EASY_RSA="`pwd`"
Code:
export EASY_RSA="/etc/openvpn/easy-rsa"
Code:
cd /etc/openvpn/easy-rsa
source vars
./clean-all
./pkitool --initca
ln -s openssl-1.0.0.cnf openssl.cnf
./build-ca Pogoplug
./build-key-server server
./build-key osprey
Fast fertig
jetzt noch den dh, das dauert paar Minuten.
Code:
./build-dh
Jetzt erstellen wir die openvpn.conf mit dem Nano Editor
folgenden schreiben wir rein :
nano /etc/openvpn/openvpn.conf
Code:
dev tun
proto udp
port 4624
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1 bypass-dhcp"
#set the dns servers
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /var/log/openvpn
comp-lzo
duplicate-cn
keepalive 10 120
nun können wir den Server neu starten
Code:
/etc/init.d/openvpn restart
Jetzt sollte der Server laufen und auf eine Verbindung warten.
Zum Clienten :
der Client benötigt folgende Dateien aus /etc/openvpn/easy-rsa/keys/
ca.crt
osprey.crt
osprey.key
Diese Kopieren wir erst mal an einen sicheren Ort bsp. mit Winscp auf den PC in einen neuen Ordner
Jetzt brauchen wir noch die Client Config.
Dazu öffnen wir einen Linux Editor Bsp. PSpad und erstellen die client.ovpn Datei
Code:
dev tun
client
proto udp
remote meine.dyn.dns 4624
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert osprey.crt
key osprey.key
comp-lzo
verb 3
Jetzt sollten wir 4 Dateien im erstellten Ordner auf dem PC haben:
ca.crt
osprey.crt
osprey.key
client.ovpn
Anleitung ab Debian 8 Jessie
Openvpn installieren.
Jetzt kopieren wir eine Beispiel Configuration in unser Openvpn Verzeichnis
-wir müssen jetz einen Eintrag ändern in der
von
auf
Jetz geht es weiter mit einem symlink, Tool und erstellen der Zertifikate für den ersten Client
Es reicht wenn ihr am Anfang DE eingibt und den Rest einfach bestätigt. Zum Schluss von jedem Key 2x mit Y bestätigen
Fast fertig
jetzt noch den dh, das dauert paar Minuten.
Jetzt erstellen wir die openvpn.conf mit dem Nano Editor
folgenden schreiben wir rein :
nano /etc/openvpn/openvpn.conf
nun können wir den Server neu starten
Jetzt sollte der Server laufen und auf eine Verbindung warten.
Zum Clienten :
der Client benötigt folgende Dateien aus /etc/openvpn/easy-rsa2/2.0/keys/
ca.crt
osprey.crt
osprey.key
Diese Kopieren wir erst mal an einen sicheren Ort bsp. mit Winscp auf den PC in einen neuen Ordner
Jetzt brauchen wir noch die Client Config.
Dazu öffnen wir einen Linux Editor Bsp. PSpad und erstellen die client.ovpn Datei
Jetzt sollten wir 4 Dateien im erstellten Ordner auf dem PC haben:
ca.crt
osprey.crt
osprey.key
client.ovpn
Code:
apt-get install openvpn easy-rsa
Jetzt kopieren wir eine Beispiel Configuration in unser Openvpn Verzeichnis
Code:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gunzip /etc/openvpn/server.conf.gz
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa2
-wir müssen jetz einen Eintrag ändern in der
Code:
nano /etc/openvpn/easy-rsa2/vars
Code:
export EASY_RSA="`pwd`"
Code:
export EASY_RSA="/etc/openvpn/easy-rsa2"
Code:
cd /etc/openvpn/easy-rsa2
source vars
./clean-all
./pkitool --initca
ln -s openssl-1.0.0.cnf openssl.cnf
./build-ca Pogoplug
./build-key-server server
./build-key osprey
Fast fertig
jetzt noch den dh, das dauert paar Minuten.
Code:
./build-dh
Jetzt erstellen wir die openvpn.conf mit dem Nano Editor
folgenden schreiben wir rein :
nano /etc/openvpn/openvpn.conf
Code:
dev tun
proto udp
port 4624
ca /etc/openvpn/easy-rsa2/keys/ca.crt
cert /etc/openvpn/easy-rsa2/keys/server.crt
key /etc/openvpn/easy-rsa2/keys/server.key
dh /etc/openvpn/easy-rsa2/keys/dh2048.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1 bypass-dhcp"
#set the dns servers
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /var/log/openvpn
comp-lzo
duplicate-cn
keepalive 10 120
nun können wir den Server neu starten
Code:
/etc/init.d/openvpn restart
Jetzt sollte der Server laufen und auf eine Verbindung warten.
Zum Clienten :
der Client benötigt folgende Dateien aus /etc/openvpn/easy-rsa2/2.0/keys/
ca.crt
osprey.crt
osprey.key
Diese Kopieren wir erst mal an einen sicheren Ort bsp. mit Winscp auf den PC in einen neuen Ordner
Jetzt brauchen wir noch die Client Config.
Dazu öffnen wir einen Linux Editor Bsp. PSpad und erstellen die client.ovpn Datei
Code:
dev tun
client
proto udp
remote meine.dyn.dns 4624
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert osprey.crt
key osprey.key
comp-lzo
verb 3
Jetzt sollten wir 4 Dateien im erstellten Ordner auf dem PC haben:
ca.crt
osprey.crt
osprey.key
client.ovpn
Diese können wir auf unserem Smartphone übertragen auf einen Ordner auf die sd Karte und uns dann mit der Openvpn App connecten.
Ich habe ein Android Gerät und nutze das :
Sie müssen registriert sein, um Links zu sehen.
Einfach auf import -> iport profile from sd card -> Deitei mit .ovpn auswählen -> Connecten
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
Sie müssen registriert sein, um Links zu sehen.
HINWEISE:
- Testet die Verbindung aus dem Mobilfunknetz!
- Der VPN Client kann sich nur verbinden wenn er in einem anderem Netz ist wie der VPN Server.
Bsp. Server 192.168.178.23 die IP vom Client muss sich mindestens im 3 Block unterscheiden Bsp. 192.168.1.23
- Wählt nicht unbedingt die LAN IP wo der Server steht mit 192.168.178.x , da das die meisten mit einer Fritzbox haben und wenn ihr euch nach Hause verbinden wollt von der Freundin aus das nicht geht wenn Sie auch eine Fritzbox hat.
Empfehle dem Router Zuhause eine etwas außergewöhnliches ip zu geben wie Bsp. 192.168.7.1 da das fast niemand hat.
Für ipv6 soll es mit einigen Config Änderungen auch gehen wie hier beschrieben:
Sie müssen registriert sein, um Links zu sehen.
Gruß Osprey
Zuletzt bearbeitet: