OpenVPN-Tunnel unter Debian-Linux einrichten (Anleitung)
Aus Portunity Wiki
(→Schritt 4: Stopen des Tunnels) |
(erweitert) |
||
(Der Versionsvergleich bezieht 24 dazwischenliegende Versionen mit ein.) | |||
Zeile 1: | Zeile 1: | ||
- | Diese Anleitung zeigt Ihnen in wenigen Schritten, wie Sie unter Linux (hier: Debian | + | 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 | + | 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. |
- | Auf vielen anderen Linux Distributionen (wie z.b. OpenSUSE oder Fedora) ist die Vorgehensweise ähnlich. | + | |
- | = Wichtiger Hinweis zu Firewalls = | + | = 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 | + | '''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. |
- | 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. | + | |
+ | <br> | ||
- | = | + | == 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: | |
- | = | + | <source lang="command">apt install openvpn</source> |
- | + | Zur Fehlersuche empfiehlt sich zudem die Installation des Pakets "mtr" (My Traceroute): | |
- | <source lang="command"> | + | <source lang="command">apt install mtr</source> |
- | + | = Grundkonfiguration = | |
- | < | + | Nun gibt es das Verzeichnis "<code>/etc/openvpn</code>" – 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 <code>openvpn.tpX.tunneleinwahl.de-udp.ovpn</code> bezeichnen - verwenden Sie stattdessen den Namen der Datei, der Ihnen im Kundencenter zum Download angeboten wird. | |
- | < | + | <pre> |
+ | cd /etc/openvpn | ||
+ | wget "https://service.portunity.net/downloads/vpn-tunnel/openvpn.tpX.tunneleinwahl.de-udp.ovpn" | ||
+ | </pre> | ||
- | Öffnen Sie mit | + | Öffnen Sie diese Datei nun mit einem Texteditor und suchen Sie die Zeile |
+ | <pre> | ||
+ | #auth-user-pass portunity.login | ||
+ | </pre> | ||
- | + | und ersetzen Sie diese durch: | |
- | + | <pre> | |
+ | auth-user-pass /etc/openvpn/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> | |
+ | Die Datei sollte dann (auszugsweise) so aussehen: | ||
+ | <pre> | ||
+ | ## Zugangsdaten abfragen und nicht aus einer Datei lesen | ||
+ | #auth-user-pass | ||
- | + | ## Zugangsdaten aus einer Datei lesen | |
+ | auth-user-pass /etc/openvpn/portunity.login | ||
+ | </pre> | ||
- | |||
- | + | Legen Sie nun mit einem Texteditor die Datei <code>/etc/openvpn/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: | ||
- | < | + | <pre> |
+ | tunnelXXXXXX | ||
+ | hochgeheimeskennwort | ||
+ | </pre> | ||
- | |||
- | + | ==Weitere Anpassungen (optional)== | |
- | * | + | *<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 – 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) | |
- | * | + | |
- | = | + | = Den Tunnel bootfest machen = |
- | Tunnel | + | Damit sich der Tunnel bei jedem Systemstart automatisch aufbaut, können Sie einen Eintrag in der Crontab-Datei anlegen. Führen Sie hierzu den folgenden Befehl als root aus: |
- | <source lang="command"> | + | <source lang="command">crontab -e</source> |
- | + | Fügen Sie die folgende Zeile am Ende der Datei ein: | |
- | + | ||
- | + | ||
- | + | <code>@reboot sleep 20 && /usr/sbin/openvpn /etc/openvpn/openvpn.tpX.tunneleinwahl.de-udp.conf</code> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | Speichern Sie anschließend die Datei und schließen Sie den Editor. | |
- | + | = Den Tunnel testen = | |
- | + | Stellen Sie zunächst sicher, dass aktuell kein OpenVPN-Prozess läuft. | |
- | + | <source lang="command">pkill openvpn</source> | |
- | + | Starten Sie dann manuell OpenVPN auf der Kommandozeile (als root): | |
- | <source lang="command">/etc/ | + | <source lang="command">/usr/sbin/openvpn /etc/openvpn/openvpn.tpX.tunneleinwahl.de-udp.conf</source> |
- | + | Prüfen Sie in einem zweiten Konsolenfenster, dass die Ausgabe des folgenden Befehls auch das Tunnel-Interface "tun0" enthält: | |
- | + | <source lang="command">ip address show</source> | |
- | + | Prüfen Sie, ob der Tunnel die Standardroute zum Internet ist: | |
- | + | ||
- | + | ||
- | + | <source lang="command">mtr 1.1.1.1</source> | |
- | + | Wenn an erster Stelle unser Tunnel-Einwahlserver angezeigt wird und an letzter Stelle das Ziel 1.1.1.1 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; ansonsten liegt ein Fehler in der Crontab-Datei vor. | ||
+ | |||
+ | |||
+ | = Abschließende Hinweise = | ||
+ | |||
+ | Wegen der Komplexität sind wir in diesem Artikel nicht auf die folgenden Themen eingegangen: | ||
+ | *IP-Netz routen | ||
+ | *Dienste an die neue statische IP binden | ||
+ | *[[PBR (Policy Based Routing)]] | ||
- | [[Category:Access]][[Category:Access_Anleitungen]][[Category:OpenVPN_(Übersicht)]][[Category:VPN- | + | [[Category:Access]] [[Category:Access_Anleitungen]] [[Category:OpenVPN_(Übersicht)]] [[Category:VPN-Tunnel_(Tarif)]] |
Aktuelle Version vom 12:38, 21. Apr. 2023
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):
apt install mtr
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 wget "https://service.portunity.net/downloads/vpn-tunnel/openvpn.tpX.tunneleinwahl.de-udp.ovpn"
Ö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/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/portunity.login
Legen Sie nun mit einem Texteditor die Datei /etc/openvpn/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 einen Eintrag in der Crontab-Datei anlegen. Führen Sie hierzu den folgenden Befehl als root aus:
crontab -e
Fügen Sie die folgende Zeile am Ende der Datei ein:
@reboot sleep 20 && /usr/sbin/openvpn /etc/openvpn/openvpn.tpX.tunneleinwahl.de-udp.conf
Speichern Sie anschließend die Datei und schließen Sie den Editor.
Den Tunnel testen
Stellen Sie zunächst sicher, dass aktuell kein OpenVPN-Prozess läuft.
pkill openvpn
Starten Sie dann manuell OpenVPN auf der Kommandozeile (als root):
/usr/sbin/openvpn /etc/openvpn/openvpn.tpX.tunneleinwahl.de-udp.conf
Prüfen Sie in einem zweiten Konsolenfenster, dass die Ausgabe des folgenden Befehls auch das Tunnel-Interface "tun0" enthält:
ip address show
Prüfen Sie, ob der Tunnel die Standardroute zum Internet ist:
mtr 1.1.1.1
Wenn an erster Stelle unser Tunnel-Einwahlserver angezeigt wird und an letzter Stelle das Ziel 1.1.1.1 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; ansonsten liegt ein Fehler in der Crontab-Datei vor.
Abschließende Hinweise
Wegen der Komplexität sind wir in diesem Artikel nicht auf die folgenden Themen eingegangen:
- IP-Netz routen
- Dienste an die neue statische IP binden
- PBR (Policy Based Routing)