OpenVPN-Tunnel unter Debian-Linux einrichten (Anleitung)

Aus Portunity Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Den Tunnel bootfest machen)
 
(Der Versionsvergleich bezieht 22 dazwischenliegende Versionen mit ein.)
Zeile 1: Zeile 1:
-
Diese Anleitung zeigt Ihnen in wenigen Schritten, wie Sie unter Linux (hier: Debian) einen OpenVPN-Tunnel mit einer statischen IP-Adresse (IPv4) einrichten Für vollständige IPv6-Konfiguration folgen Sie bitte anschließend der Anleitung [[OpenVPN-Tunnel (IPv6) unter Debian-Linux einrichten (Anleitung)|OpenVPN-Tunnel (IPv6) unter Debian-Linux einrichten]]).  
+
Diese Anleitung zeigt Ihnen in wenigen Schritten, wie Sie unter Linux (hier: Debian) einen OpenVPN-Tunnel mit einer statischen IP-Adresse einrichten.
-
Diese Anleitung sollte auch mit anderen Debian-Versionen oder Derivaten (wie z.B. Ubuntu oder Mint) funktionieren. Auf vielen anderen Linux-Distributionen (wie z.b. OpenSUSE oder Fedora) ist die Vorgehensweise ähnlich.  
+
Diese Anleitung sollte auch mit anderen Debian-Derivaten (wie z.B. Ubuntu oder Mint) funktionieren. Auf vielen anderen Linux-Distributionen (wie z.b. OpenSUSE oder Fedora) ist die Vorgehensweise ähnlich.  
= Wichtiger Hinweis zu Firewalls  =
= Wichtiger Hinweis zu Firewalls  =
Zeile 9: Zeile 9:
<br>  
<br>  
-
= Schritt 1: Paket installieren  =
+
== Statische Routen und Firewall-Freigaben ==
 +
Falls Sie statische Routen setzen oder die Verbindung zum Tunnelserver in Ihrer Firewall freischalten müssen, beachten Sie bitte [[Firewall-Freigaben und statische Routen für Tunnel-Aufbau|die hier aufgeführten Informationen zu IP-Netzen und Protokollen]].
 +
 
 +
= Paket installieren  =
Installieren Sie zuerst das OpenVPN-Paket der Distribution:
Installieren Sie zuerst das OpenVPN-Paket der Distribution:
-
<source lang="command">apt-get install openvpn</source>  
+
<source lang="command">apt install openvpn</source>
 +
 
 +
Zur Fehlersuche empfiehlt sich zudem die Installation des Pakets "mtr" (My Traceroute), optional:
 +
 
 +
<source lang="command">apt install mtr-tiny</source>
-
= Schritt 2: Grundkonfiguration  =
+
= Grundkonfiguration  =
Nun gibt es das Verzeichnis "<code>/etc/openvpn</code>" &ndash; wechseln Sie bitte dort hinein.
Nun gibt es das Verzeichnis "<code>/etc/openvpn</code>" &ndash; wechseln Sie bitte dort hinein.
Zeile 22: Zeile 29:
<pre>
<pre>
-
cd /etc/openvpn
+
cd /etc/openvpn/client
-
wget "https://service.portunity.net/downloads/vpn-tunnel/openvpn.tpX.tunneleinwahl.de-udp.ovpn"
+
wget "https://service.portunity.net/downloads/vpn-tunnel/openvpn.tpX.tunneleinwahl.de-udp.ovpn" -O portunity.conf
</pre>
</pre>
Zeile 31: Zeile 38:
</pre>
</pre>
-
und entfernen Sie die führende Raute vor dieser Zeile, um sie zu aktivieren.
+
und ersetzen Sie diese durch:
 +
 
 +
<pre>
 +
auth-user-pass /etc/openvpn/client/portunity.login
 +
</pre>
 +
 
Ein paar Zeilen darüber finden Sie die Zeile "<code>auth-user-pass</code>" - diese muss mit einer vorangestellten Raute auskommentiert und damit deaktiviert werden.<br>
Ein paar Zeilen darüber finden Sie die Zeile "<code>auth-user-pass</code>" - diese muss mit einer vorangestellten Raute auskommentiert und damit deaktiviert werden.<br>
Die Datei sollte dann (auszugsweise) so aussehen:
Die Datei sollte dann (auszugsweise) so aussehen:
Zeile 39: Zeile 51:
## Zugangsdaten aus einer Datei lesen
## Zugangsdaten aus einer Datei lesen
-
auth-user-pass portunity.login
+
auth-user-pass /etc/openvpn/client/portunity.login
</pre>
</pre>
-
Legen Sie nun mit einem Texteditor die Datei <code>portunity.login</code> an. Tragen Sie darin in die erste Zeile den Benutzernamen Ihres Tunnels ("<code>tunnelXXXXXX</code>") ein, in die zweite Zeile das Kennwort des Tunnelzugangs.
+
Legen Sie nun mit einem Texteditor die Datei <code>/etc/openvpn/client/portunity.login</code> an. Tragen Sie darin in die erste Zeile den Benutzernamen Ihres Tunnels ("<code>tunnelXXXXXX</code>") ein, in die zweite Zeile das Kennwort des Tunnelzugangs.
Die Datei sollte dann beispielhaft so aussehen:
Die Datei sollte dann beispielhaft so aussehen:
Zeile 53: Zeile 65:
==Weitere Anpassungen (optional)==
==Weitere Anpassungen (optional)==
-
*<ode>redirect-gateway</code>: Dies ist standardmäßig aktiviert und sorgt dafür, dass der Tunnel als Standardgateway gesetzt wird. Wenn dies nicht gewünscht wird, muss diese Zeile auskommentiert werden und stattdessen mit [[PBR (Policy Based Routing)]] gearbeitet werden.
+
*<code>redirect-gateway</code>: Dies ist standardmäßig aktiviert und sorgt dafür, dass der Tunnel als Standardgateway gesetzt wird. Wenn dies nicht gewünscht wird, muss diese Zeile auskommentiert werden und stattdessen mit [[PBR (Policy Based Routing)]] gearbeitet werden.
*<code>user nobody</code> bzw. <code>group nobody</code>: Hiermit wird erreicht, dass der Tunnel-Prozess als unpriviligierter Nutzer läuft. Auf den meisten Distributionen sind User und Gruppe "nobody" vorhanden &ndash; falls nicht, muss das hier angepasst werden.
*<code>user nobody</code> bzw. <code>group nobody</code>: Hiermit wird erreicht, dass der Tunnel-Prozess als unpriviligierter Nutzer läuft. Auf den meisten Distributionen sind User und Gruppe "nobody" vorhanden &ndash; falls nicht, muss das hier angepasst werden.
*<code>verb</code>: Im Falle von Problemen kann hiermit die "verbosity", also das Level der Ausführlichkeit von Log-Meldungen erhöht werden. Je höher die Ziffer, desto mehr Informationen gibt es (maximaler Wert: 7)
*<code>verb</code>: Im Falle von Problemen kann hiermit die "verbosity", also das Level der Ausführlichkeit von Log-Meldungen erhöht werden. Je höher die Ziffer, desto mehr Informationen gibt es (maximaler Wert: 7)
-
= Schritt 3: Starten des Tunnels per SysinitV  =
+
= Den Tunnel bootfest machen =
-
'''Wichtig! Dieser Schritt wird nur auf älteren Systemen benötigt die noch mit SysinitV arbeiten. Für moderne Systeme die mit SystemD arbeiten springen Sie bitte zu Schritt: 5 Starten des Tunnels per systemd'''
+
Damit sich der Tunnel bei jedem Systemstart automatisch aufbaut, können Sie diesen über systemd automatisch starten lassen. Führen Sie hierzu den folgenden Befehl als root aus:
-
<br> Tunnel aktivieren:
+
<source lang="command">systemctl enable --now openvpn-client@portunity.service</source>
 +
(Falls Ihre Config-Datei nicht <code>portunity.conf</code> heißt, müssen Sie hier den Namen entsprechend anpassen)
-
<source lang="command">/etc/init.d/openvpn start portunity</source>
+
= Den Tunnel testen =
-
Prüfen, ob der OpenVPN-Tunnel gestartet wurde
+
<source lang="command">ip address show</source>
 +
Hier sollte ein Interface mit Namen <code>tun0</code> (oder eine andere Ziffer) auftauchen, welches die Ihnen zugewiesene statische IP-Adresse trägt.
-
<source lang="command">ip addr show</source>  
+
<hr>
-
<pre>
+
Prüfen Sie, ob der Tunnel die Standardroute zum Internet ist:
-
38: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 1000
+
<source lang="command">ip -4 route show default</source>
-
    link/none
+
<source lang="command">ip -6 route show default</source>
-
    inet 188.246.4.X/22 brd 188.246.7.255 scope global tun-pty
+
In beiden Fällen sollte die Standardroute auf das tun-Interface aus dem vorherigen Schritt zeigen.
-
    inet6 2a02:a00:e00f:ffff::XXX:XXXX/64 scope global
+
-
      valid_lft forever preferred_lft forever
+
-
</pre>
+
-
<br> Wenn der Tunnel nicht aufgebaut wurde können Sie diesen manuell ohne Startscript starten, um die Ausgabe live zu verfolgen:
+
<hr>
-
<source lang="command">openvpn /etc/openvpn/openvpn.tpX.tunneleinwahl.de-udp.ovpn</source>  
+
Testen, ob die Route funktioniert:
 +
<source lang="command">mtr 188.246.0.34</source>
 +
<source lang="command">mtr 2a02:a00:d::c2</source>
-
*Wenn Sie OpenVPN beim Start Ihres Systems automatisch starten lassen haben Sie den Tunnel auch gleichzeitig bootfest gemacht!
+
Wenn an erster Stelle unser Tunnel-Einwahlserver angezeigt wird und an letzter Stelle das Ziel erreicht wird, ist die Verbindung erfolgreich aufgebaut.
-
= Schritt 4: Stoppen des Tunnels  =
+
Starten Sie das System neu, um OpenVPN wieder als Hintergrunddienst laufen zu lassen; wiederholen Sie die Prüfung. Falls das Ergebnis gleich bleibt, ist alles korrekt eingerichtet.
-
<source lang="command">/etc/init.d/openvpn stop portunity</source>
+
= Abschließende Hinweise =
-
 
+
-
= Schritt 5: Starten des Tunnels per SystemD  =
+
-
 
+
-
Die nachfolgenden Schritte werden benötigt, wenn Ihr System mit systemd arbeitet.
+
-
 
+
-
Nachdem Sie die Konfiguration und die Login-Daten entsprechend angepasst haben können Sie den Tunnel mit diesem Befehl starten:
+
-
 
+
-
<source lang="command">systemctl start openvpn@openvpn.tpX.tunneleinwahl.de</source>
+
-
 
+
-
Prüfen, ob der OpenVPN Tunnel gestartet wurde
+
-
 
+
-
<source lang="command">ip address show</source>
+
-
 
+
-
38: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 1000
+
-
    link/none
+
-
    inet 188.246.4.X/22 brd 188.246.7.255 scope global tun-pty
+
-
    inet6 2a02:a00:e00f:ffff::XX:XXXX/64 scope global
+
-
      valid_lft forever preferred_lft forever
+
-
 
+
-
<br>
+
-
   
+
-
Die Tunnelverbindung wird mit dem Befehl
+
-
<source lang="command">systemctl stop openvpn@openvpn.tpX.tunneleinwahl.de</source>
+
-
beendet.
+
-
 
+
-
= Schritt 6: Den Tunnel bootfest machen =
+
-
 
+
-
Damit sich der Tunnel bei jedem Systemstart automatisch aufbaut, führen Sie bitte diesen Befehl aus:
+
-
 
+
-
<source lang="command">systemctl enable openvpn@openvpn.tpX.tunneleinwahl.de</source>
+
-
 
+
-
+
-
 
+
-
Damit sich der Tunnel nicht mehr automatisch bei jedem Systemstart aufbaut
+
-
+
-
<source lang="command">systemctl disable openvpn@openvpn.tpX.tunneleinwahl.de</source>
+
-
 
+
-
 
+
-
= Abschließende Hinweise =
+
-
 
+
-
Wegen der Komplexität gehen wir in diesem Artikel nicht auch Dinge ein wie:
+
 +
Wegen der Komplexität sind wir in diesem Artikel nicht auf die folgenden Themen eingegangen:
*IP-Netz routen  
*IP-Netz routen  
*Dienste an die neue statische IP binden  
*Dienste an die neue statische IP binden  
*[[PBR (Policy Based Routing)]]
*[[PBR (Policy Based Routing)]]
-
 
-
'''Um zusätzlich IPv6 Nutzen zu können folgen Sie bitte anschließend der Anleitung [[OpenVPN-Tunnel (IPv6) unter Debian-Linux einrichten (Anleitung)|OpenVPN-Tunnel (IPv6) unter Debian-Linux einrichten]])'''
 
-
 
[[Category:Access]] [[Category:Access_Anleitungen]] [[Category:OpenVPN_(Übersicht)]] [[Category:VPN-Tunnel_(Tarif)]]
[[Category:Access]] [[Category:Access_Anleitungen]] [[Category:OpenVPN_(Übersicht)]] [[Category:VPN-Tunnel_(Tarif)]]

Aktuelle Version vom 12:40, 10. Mai 2024

Diese Anleitung zeigt Ihnen in wenigen Schritten, wie Sie unter Linux (hier: Debian) einen OpenVPN-Tunnel mit einer statischen IP-Adresse einrichten.

Diese Anleitung sollte auch mit anderen Debian-Derivaten (wie z.B. Ubuntu oder Mint) funktionieren. Auf vielen anderen Linux-Distributionen (wie z.b. OpenSUSE oder Fedora) ist die Vorgehensweise ähnlich.

Inhaltsverzeichnis

Wichtiger Hinweis zu Firewalls

Sollte die OpenVPN-Verbindung nicht aufgebaut werden können oder immer wieder nach kurzer Zeit zusammenbrechen, prüfen Sie bitte ob Ihre Firewall ICMP-Pakete verwirft. Diese sollten Sie zumindest von und zu unserem Tunnelserver akzeptieren, um einen störungsfreien Betrieb zu gewährleisten. ICMP ist mehr als "nur Ping" und wird vielmehr auch genutzt, um die MTU der Gegenstelle zu erfragen oder herauszufinden ob ein Port bereits genutzt wird. Im Zusammenhang mit Tunnelprotokollen ist es daher wirklich wichtig, dass diese Informationen übermittelt werden können.


Statische Routen und Firewall-Freigaben

Falls Sie statische Routen setzen oder die Verbindung zum Tunnelserver in Ihrer Firewall freischalten müssen, beachten Sie bitte die hier aufgeführten Informationen zu IP-Netzen und Protokollen.

Paket installieren

Installieren Sie zuerst das OpenVPN-Paket der Distribution:

apt install openvpn

Zur Fehlersuche empfiehlt sich zudem die Installation des Pakets "mtr" (My Traceroute), optional:

apt install mtr-tiny

Grundkonfiguration

Nun gibt es das Verzeichnis "/etc/openvpn" – wechseln Sie bitte dort hinein.

Laden Sie nun bitte die Konfigurationsdatei für Ihren Tunneltarif herunter - den Link dazu finden Sie im Kundencenter. Im weiteren Verlauf werden wir die Datei mit openvpn.tpX.tunneleinwahl.de-udp.ovpn bezeichnen - verwenden Sie stattdessen den Namen der Datei, der Ihnen im Kundencenter zum Download angeboten wird.

cd /etc/openvpn/client
wget "https://service.portunity.net/downloads/vpn-tunnel/openvpn.tpX.tunneleinwahl.de-udp.ovpn" -O portunity.conf

Öffnen Sie diese Datei nun mit einem Texteditor und suchen Sie die Zeile

#auth-user-pass portunity.login

und ersetzen Sie diese durch:

auth-user-pass /etc/openvpn/client/portunity.login

Ein paar Zeilen darüber finden Sie die Zeile "auth-user-pass" - diese muss mit einer vorangestellten Raute auskommentiert und damit deaktiviert werden.
Die Datei sollte dann (auszugsweise) so aussehen:

## Zugangsdaten abfragen und nicht aus einer Datei lesen
#auth-user-pass

## Zugangsdaten aus einer Datei lesen
auth-user-pass /etc/openvpn/client/portunity.login


Legen Sie nun mit einem Texteditor die Datei /etc/openvpn/client/portunity.login an. Tragen Sie darin in die erste Zeile den Benutzernamen Ihres Tunnels ("tunnelXXXXXX") ein, in die zweite Zeile das Kennwort des Tunnelzugangs. Die Datei sollte dann beispielhaft so aussehen:

tunnelXXXXXX
hochgeheimeskennwort


Weitere Anpassungen (optional)

  • redirect-gateway: Dies ist standardmäßig aktiviert und sorgt dafür, dass der Tunnel als Standardgateway gesetzt wird. Wenn dies nicht gewünscht wird, muss diese Zeile auskommentiert werden und stattdessen mit PBR (Policy Based Routing) gearbeitet werden.
  • user nobody bzw. group nobody: Hiermit wird erreicht, dass der Tunnel-Prozess als unpriviligierter Nutzer läuft. Auf den meisten Distributionen sind User und Gruppe "nobody" vorhanden – falls nicht, muss das hier angepasst werden.
  • verb: Im Falle von Problemen kann hiermit die "verbosity", also das Level der Ausführlichkeit von Log-Meldungen erhöht werden. Je höher die Ziffer, desto mehr Informationen gibt es (maximaler Wert: 7)

Den Tunnel bootfest machen

Damit sich der Tunnel bei jedem Systemstart automatisch aufbaut, können Sie diesen über systemd automatisch starten lassen. Führen Sie hierzu den folgenden Befehl als root aus:

systemctl enable --now openvpn-client@portunity.service

(Falls Ihre Config-Datei nicht portunity.conf heißt, müssen Sie hier den Namen entsprechend anpassen)

Den Tunnel testen

ip address show

Hier sollte ein Interface mit Namen tun0 (oder eine andere Ziffer) auftauchen, welches die Ihnen zugewiesene statische IP-Adresse trägt.


Prüfen Sie, ob der Tunnel die Standardroute zum Internet ist:

ip -4 route show default
ip -6 route show default

In beiden Fällen sollte die Standardroute auf das tun-Interface aus dem vorherigen Schritt zeigen.


Testen, ob die Route funktioniert:

mtr 188.246.0.34
mtr 2a02:a00:d::c2

Wenn an erster Stelle unser Tunnel-Einwahlserver angezeigt wird und an letzter Stelle das Ziel erreicht wird, ist die Verbindung erfolgreich aufgebaut.

Starten Sie das System neu, um OpenVPN wieder als Hintergrunddienst laufen zu lassen; wiederholen Sie die Prüfung. Falls das Ergebnis gleich bleibt, ist alles korrekt eingerichtet.

Abschließende Hinweise

Wegen der Komplexität sind wir in diesem Artikel nicht auf die folgenden Themen eingegangen:

Persönliche Werkzeuge