Das Buch «Linux in Action»

Das Buch «Linux in Action» Hallo, Habr-Bewohner! In seinem Buch beschreibt David Clinton 12 reale Projekte, darunter die Automatisierung von Backup- und Wiederherstellungssystemen, die Einrichtung eines persönlichen Datei-Clouds à la Dropbox und den Aufbau eines eigenen MediaWiki-Servers. Anhand spannender Beispiele lernen Sie Virtualisierung, Notfallwiederherstellung, Sicherheitsmaßnahmen, Backup, DevOps-Implementierung und Fehlersuche im System. Jedes Kapitel endet mit einer Übersicht über praktische Empfehlungen, einem Glossar neuer Begriffe und Übungen.

Auszug „10.1. Erstellung eines OpenVPN-Tunnels“

In diesem Buch habe ich bereits viel über Verschlüsselung gesprochen. SSH und SCP können Daten schützen, die über entfernte Verbindungen übertragen werden (Kapitel 3), die Verschlüsselung von Dateien schützt Daten während der Speicherung auf dem Server (Kapitel 8), und TLS/SSL-Zertifikate schützen Daten während der Übertragung zwischen Websites und Client-Browsern (Kapitel 9). Manchmal erfordert der Schutz Ihrer Daten jedoch ein breiteres Spektrum an Verbindungen. Zum Beispiel müssen möglicherweise einige Mitglieder Ihres Teams unterwegs arbeiten und über öffentliche WLAN-Hotspots auf das Netzwerk zugreifen. Es ist definitiv nicht ratsam, zu glauben, dass alle diese Hotspots sicher sind, aber Ihre Mitarbeiter benötigen wirklich einen Weg, um auf Unternehmensressourcen zuzugreifen — hier kann ein VPN hilfreich sein.

Ein gut gestalteter VPN-Tunnel schafft eine direkte Verbindung zwischen entfernten Clients und dem Server, sodass Daten während der Übertragung über unsichere Netzwerke verborgen bleiben. Was bedeutet das für Sie? Es gibt viele Tools, die dies durch Verschlüsselung ermöglichen. Der wahre Wert eines VPNs besteht darin, dass Sie durch das Öffnen eines Tunnels entfernte Netzwerke so verbinden können, als wären sie alle lokal miteinander verbunden. In gewissem Sinne nutzen Sie eine Umgehung.

Durch den Einsatz eines solchen erweiterten Netzwerks können Administratoren von überall aus auf ihre Server zugreifen. Noch wichtiger ist, dass ein Unternehmen mit Ressourcen, die auf mehrere Niederlassungen verteilt sind, diese allen Gruppen, die darauf angewiesen sind, sichtbar und zugänglich machen kann, wo auch immer sie sich befinden (siehe Abb. 10.1).

Ein Tunnel allein garantiert keine Sicherheit. Einer der gängigen Verschlüsselungsstandards kann jedoch in die Netzwerkstruktur integriert werden, was das Sicherheitsniveau erheblich erhöht. Tunnel, die mit der Open-Source-Software OpenVPN erstellt wurden, verwenden die gleiche TLS/SSL-Verschlüsselung, von der Sie bereits gelesen haben. OpenVPN ist nicht die einzige verfügbare Lösung für das Tunneln, aber eine der bekanntesten. Es gilt als etwas schneller und sicherer als das alternative Layer-2-Tunnelprotokoll, das IPsec-Verschlüsselung verwendet.

Möchten Sie, dass Ihr Team sicher miteinander kommuniziert, während es unterwegs ist oder in verschiedenen Gebäuden arbeitet? Dazu müssen Sie einen OpenVPN-Server einrichten, um die gemeinsame Nutzung von Anwendungen und den Zugriff auf die lokale Netzwerkumgebung des Servers zu ermöglichen. Dafür reicht es aus, zwei virtuelle Maschinen oder Container zu starten: eine für die Server-/Host-Rolle und die andere für den Client. Die Einrichtung eines VPN ist ein komplexer Prozess, daher sollten Sie sich wahrscheinlich ein paar Minuten Zeit nehmen, um die Gesamtstruktur zu visualisieren.

Das Buch «Linux in Action»

10.1.1. Konfiguration des OpenVPN-Servers

Bevor Sie beginnen, möchte ich Ihnen einen nützlichen Rat geben. Wenn Sie vorhaben, alles selbst zu machen (was ich Ihnen ausdrücklich empfehle), werden Sie wahrscheinlich feststellen, dass Sie mit mehreren Terminalfenstern auf Ihrem Desktop arbeiten, von denen jedes mit einer eigenen Maschine verbunden ist. Es besteht das Risiko, dass Sie irgendwann einen Befehl im falschen Fenster eingeben. Um dies zu vermeiden, können Sie den Befehl hostname verwenden, um den Namen der Maschine, der in der Eingabeaufforderung angezeigt wird, in etwas zu ändern, das Ihnen klar signalisiert, wo Sie sich befinden. Sobald Sie das getan haben, müssen Sie sich vom Server abmelden und erneut anmelden, damit die neuen Einstellungen wirksam werden. So sieht das aus:

Das Buch «Linux in Action»
Indem Sie diesem Ansatz folgen und jeder der Maschinen, mit denen Sie arbeiten, entsprechende Namen zuweisen, können Sie leicht nachverfolgen, wo Sie sich befinden.

Nach der Verwendung von hostname könnten Sie auf ärgerliche Fehlermeldungen wie "Unable to Resolve Host OpenVPN-Server" stoßen, wenn Sie nachfolgende Befehle ausführen. Das Aktualisieren der Datei /etc/hosts mit dem entsprechenden neuen Hostnamen sollte das Problem lösen.

Bereiten Sie Ihren Server für OpenVPN vor.

Für die Installation von OpenVPN auf Ihrem Server sind zwei Pakete erforderlich: openvpn und easy-rsa (zur Verwaltung des Prozesses der Schlüsselgenerierung). CentOS-Benutzer sollten gegebenenfalls zuerst das Repository epel-release installieren, wie Sie es in Kapitel 2 gemacht haben. Um den Zugriff auf die Serveranwendung zu überprüfen, können Sie auch den Webserver Apache installieren (apache2 für Ubuntu und httpd für CentOS).

Während Sie den Server einrichten, empfehle ich, die Firewall zu aktivieren, die alle Ports außer 22 (SSH) und 1194 (Standardport für OpenVPN) blockiert. Dieses Beispiel zeigt, wie ufw in Ubuntu funktioniert, aber ich bin sicher, dass Sie sich noch an das Programm firewalld in CentOS aus Kapitel 9 erinnern:

# ufw enable
# ufw allow 22
# ufw allow 1194

Um die interne Routing zwischen den Netzwerk-Interfaces auf dem Server zu ermöglichen, müssen Sie eine Zeile (net.ipv4.ip_forward = 1) in der Datei /etc/sysctl.conf auskommentieren. Dadurch wird es möglich, entfernte Clients nach ihrer Verbindung weiterzuleiten. Um die neue Einstellung zu aktivieren, führen Sie sysctl -p aus:

# nano /etc/sysctl.conf
# sysctl -p

Jetzt ist die Serverumgebung vollständig eingerichtet, aber es gibt noch etwas zu tun, bevor Sie bereit sind: Sie müssen die folgenden Schritte durchführen (wir werden sie im Detail später besprechen).

  1. Erstellen Sie auf dem Server ein Schlüsselpaar für die Public-Key-Infrastruktur (PKI) mithilfe der mit dem easy-rsa-Paket gelieferten Skripte. Im Wesentlichen fungiert der OpenVPN-Server auch als eigene Zertifizierungsstelle (CA).
  2. Bereiten Sie die entsprechenden Schlüssel für den Client vor.
  3. Konfigurieren Sie die Datei server.conf für den Server.
  4. Richten Sie Ihren OpenVPN-Client ein.
  5. Überprüfen Sie Ihr VPN.

Schlüsselerzeugung.

Um es einfach zu halten, können Sie Ihre Schlüssel-Infrastruktur auf dem gleichen Rechner einrichten, auf dem der OpenVPN-Server läuft. Allerdings wird in den Sicherheitsempfehlungen in der Regel geraten, einen separaten CA-Server für Produktionsumgebungen zu verwenden. Der Prozess der Erzeugung und Verteilung der Verschlüsselungsschlüssel zur Nutzung in OpenVPN wird in Abbildung 10.2 veranschaulicht.

Das Buch «Linux in Action»
Beim Installieren von OpenVPN wurde automatisch das Verzeichnis /etc/openvpn/ erstellt, aber es ist noch leer. Die Pakete openvpn und easy-rsa werden mit Beispiel-Template-Dateien geliefert, die Sie als Grundlage für Ihre Konfiguration verwenden können. Um den Zertifizierungsprozess zu starten, kopieren Sie das Template-Verzeichnis easy-rsa von /usr/share/ nach /etc/openvpn und wechseln Sie in das Verzeichnis easy-rsa/:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa

Das easy-rsa-Katalog wird jetzt viele Skripte enthalten. In Tabelle 10.1 sind die Werkzeuge aufgelistet, die Sie verwenden werden, um Schlüssel zu erstellen.

Das Buch «Linux in Action»

Die aufgeführten Operationen erfordern Root-Rechte, daher müssen Sie über sudo su Root werden.

Die erste Datei, mit der Sie arbeiten werden, heißt vars und enthält Umgebungsvariablen, die easy-rsa bei der Generierung von Schlüsseln verwendet. Sie müssen die Datei bearbeiten, um Ihre eigenen Werte anstelle von Standardwerten zu verwenden, die bereits vorhanden sind. So wird meine Datei aussehen (Listing 10.1).

Listing 10.1. Wichtige Fragmente der Datei /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY="CA"
export KEY_PROVINCE="ON"
export KEY_CITY="Toronto"
export KEY_ORG="Bootstrap IT"
export KEY_EMAIL="info@bootstrap-it.com"
export KEY_OU="IT"

Das Starten der vars-Datei überträgt ihre Werte in die Shell-Umgebung, von wo aus sie in den Inhalt Ihrer neuen Schlüssel eingefügt werden. Warum funktioniert der sudo-Befehl allein nicht? Weil wir im ersten Schritt das Skript vars bearbeiten und es dann anwenden. Die Anwendung bedeutet, dass die vars-Datei ihre Werte in die Shell-Umgebung überträgt, von wo aus sie in den Inhalt Ihrer neuen Schlüssel eingefügt werden.

Bitte starten Sie die Datei erneut mit der neuen Shell, um den unvollendeten Prozess abzuschließen. Nachdem dies erledigt ist, wird das Skript Sie auffordern, ein anderes Skript, clean-all, auszuführen, um alle Inhalte im Verzeichnis /etc/openvpn/easy-rsa/keys/ zu entfernen:

Das Buch «Linux in Action»
Der nächste Schritt besteht natürlich darin, das Skript clean-all auszuführen, gefolgt von build-ca, das das Skript pkitool verwendet, um ein Root-Zertifikat zu erstellen. Sie werden aufgefordert, die Identitätseinstellungen, die in vars angegeben sind, zu bestätigen:

# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key

Als nächstes folgt das Skript build-key-server. Da es dasselbe Skript pkitool mit dem neuen Root-Zertifikat verwendet, werden Sie dieselben Fragen zur Bestätigung der Erstellung des Schlüsselpaares sehen. Den Schlüsseln werden Namen basierend auf den von Ihnen übergebenen Argumenten zugewiesen, die, sofern Sie nicht mehrere VPNs auf diesem Computer ausführen, normalerweise server sein werden, wie im Beispiel:

# ./build-key-server server
[...]
Certificate is to be certified until Aug 15 23:52:34 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

OpenVPN verwendet Parameter, die mit dem Diffie-Hellman-Algorithmus (unter Verwendung von build-dh) generiert wurden, um die Authentifizierung für neue Verbindungen zu vereinbaren. Die hier erstellte Datei sollte nicht geheim sein, muss aber mit dem build-dh-Skript für die derzeit aktiven RSA-Schlüssel generiert werden. Wenn Sie in Zukunft neue RSA-Schlüssel erstellen, müssen Sie auch die Datei basierend auf dem Diffie-Hellman-Algorithmus aktualisieren.

# ./build-dh

Ihre Schlüssel auf der Serverseite gelangen nun in das Verzeichnis /etc/openvpn/easy-rsa/keys/, jedoch weiß OpenVPN davon nicht. Standardmäßig sucht OpenVPN nach Schlüsseln in /etc/openvpn/, also kopieren Sie diese dorthin:

# cp /etc/openvpn/easy-rsa/keys/server* /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn

Vorbereitung der Kundenschlüssel

Wie Sie bereits gesehen haben, werden bei der TLS-Verschlüsselung Paare entsprechender Schlüssel verwendet: einer ist auf dem Server installiert, der andere auf dem entfernten Client. Das bedeutet, dass Sie Kundenschlüssel benötigen. Unser alter Freund pkitool ist genau das, was Sie dafür brauchen. In diesem Beispiel starten wir das Programm im Verzeichnis /etc/openvpn/easy-rsa/ und übergeben ihm das Argument client, um die Dateien mit den Namen client.crt und client.key zu generieren:

# ./pkitool client

Die beiden Client-Dateien zusammen mit der Ursprungsdatei ca.crt, die sich noch im Verzeichnis keys/ befindet, sollten nun sicher an Ihren Kunden übermittelt werden. Aufgrund ihrer Zugehörigkeit und der Zugriffsrechte kann dies jedoch eine anspruchsvolle Aufgabe sein. Der einfachste Ansatz besteht darin, den Inhalt der Ursprungsdatei (und nichts anderes als diesen Inhalt) manuell in ein Terminal zu kopieren, das auf dem Desktop Ihres PCs läuft (markieren Sie den Text, klicken Sie mit der rechten Maustaste darauf und wählen Sie im Menü die Option Kopieren). Fügen Sie diesen dann in eine neue Datei mit demselben Namen ein, die Sie im zweiten Terminal erstellen, das mit Ihrem Kunden verbunden ist.

Aber jeder kann einfach ausschneiden und einfügen. Denken Sie stattdessen wie ein Administrator, denn nicht immer haben Sie Zugriff auf die GUI, wo Ausschneiden/Einfügen möglich ist. Kopieren Sie die Dateien in das Home-Verzeichnis Ihres Benutzers (damit der Remote-Befehl scp darauf zugreifen kann), und ändern Sie dann mit chown den Eigentümer der Dateien von root auf einen normalen Benutzer ohne root-Rechte, damit Sie die Remote-Aktion scp durchführen können. Stellen Sie sicher, dass alle Ihre Dateien derzeit gesetzt und zugänglich sind. Den Client werden Sie etwas später übertragen:

# cp /etc/openvpn/easy-rsa/keys/client.key /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/ca.crt /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/client.crt /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/client.key
# chown ubuntu:ubuntu /home/ubuntu/client.crt
# chown ubuntu:ubuntu /home/ubuntu/ca.crt

Mit einem vollständigen Satz von einsatzbereiten Verschlüsselungs-Schlüsseln müssen Sie dem Server mitteilen, wie Sie das VPN einrichten möchten. Dies geschieht über die Datei server.conf.

Minimieren Sie die Anzahl der Tastenschläge

Müssen Sie zu viel tippen? Das Erweiterungstool mit Klammern hilft, diese sechs Befehle auf zwei zu reduzieren. Ich bin mir sicher, dass Sie diese beiden Beispiele lernen und verstehen können, was passiert. Noch wichtiger ist, dass Sie lernen, wie Sie diese Prinzipien auf Vorgänge mit Dutzenden oder sogar Hunderten von Elementen anwenden können:

# cp /etc/openvpn/easy-rsa/keys/{ca.crt,client.{key,crt}} /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/{ca.crt,client.{key,crt}}

Konfiguration der Datei server.conf

Woher sollten Sie wissen, wie die Datei server.conf aussehen sollte? Erinnern Sie sich an die Vorlage im Verzeichnis easy-rsa, die Sie aus /usr/share/ kopiert haben? Bei der Installation von OpenVPN blieb eine komprimierte Konfigurationsvorlage, die Sie in /etc/openvpn/ kopieren können. Ich gehe davon aus, dass die Vorlage archiviert ist, und stelle Ihnen ein nützliches Werkzeug vor: zcat.

Sie wissen bereits, wie man den Inhalt einer Datei mit dem Befehl cat auf dem Bildschirm ausgibt, aber was ist, wenn die Datei mit gzip komprimiert ist? Sie können die Datei immer entpacken, und dann wird cat sie gerne ausgeben, aber das ist ein oder zwei Schritte mehr als nötig. Stattdessen, wie Sie sich wahrscheinlich bereits gedacht haben, können Sie den Befehl zcat verwenden, um den entpackten Text in einem Schritt in den Speicher zu laden. Im nächsten Beispiel leiten Sie den Text anstatt ihn auf dem Bildschirm anzuzeigen in eine neue Datei mit dem Namen server.conf um:

# zcat 
  /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz 
  > /etc/openvpn/server.conf
$ cd /etc/openvpn

Lassen Sie die umfangreiche und nützliche Dokumentation außer Acht, die der Datei beiliegt, und sehen Sie sich an, wie sie aussehen könnte, wenn Sie die Bearbeitung abgeschlossen haben. Beachten Sie, dass das Semikolon (;) OpenVPN anweist, die folgende Zeile nicht zu lesen und nicht auszuführen (Listing 10.2).

Das Buch «Linux in Action»
Schauen wir uns einige dieser Einstellungen an.

  • Standardmäßig läuft OpenVPN über den Port 1194. Sie können dies ändern, um Ihre Aktivitäten noch besser zu verschleiern oder Konflikte mit anderen aktiven Tunneln zu vermeiden. Da 1194 eine minimale Abstimmung mit den Clients erfordert, ist dies die empfohlene Vorgehensweise.
  • OpenVPN verwendet entweder das Transmission Control Protocol (TCP) oder das User Datagram Protocol (UDP) für die Datenübertragung. TCP kann etwas langsamer sein, bietet jedoch mehr Zuverlässigkeit und hat eine höhere Kompatibilität mit Anwendungen, die an beiden Enden des Tunnels laufen.
  • Sie können dev tun angeben, wenn Sie einen einfacheren und effizienten IP-Tunnel erstellen möchten, der nur den Dateninhalt überträgt und nichts mehr. Wenn Sie jedoch mehrere Netzwerkinterfaces (und die von ihnen repräsentierten Netzwerke) anschließen möchten, indem Sie ein Ethernet-Bridge erstellen, sollten Sie dev tap wählen. Wenn Sie sich nicht sicher sind, was das alles bedeutet, verwenden Sie den Parameter tun.
  • Die folgenden vier Zeilen geben OpenVPN die Namen der drei Authentifizierungsdateien auf dem Server und die dh2048-Konfigurationsdatei, die Sie zuvor erstellt haben.
  • Die Zeile server legt den Bereich und die Subnetzmaske fest, die zur Zuweisung von IP-Adressen an die Clients bei der Anmeldung verwendet werden.
  • Der optionale Parameter push „route 10.0.3.0 255.255.255.0“ ermöglicht es entfernten Clients, auf private Netzwerke hinter dem Server zuzugreifen. Dafür ist auch eine Netzwerkkonfiguration auf dem Server erforderlich, damit das private Netzwerk von dem OpenVPN-Subnetz (10.8.0.0) Kenntnis hat.
  • Die Zeile port-share localhost 80 leitet den Clientverkehr, der über den Port 1194 eingeht, an den lokalen Webserver weiter, der Port 80 abhört. (Dies ist nützlich, wenn Sie einen Webserver zum Testen Ihrer VPN einsetzen möchten.) Es funktioniert nur, wenn das TCP-Protokoll ausgewählt ist.
  • Die Zeilen user nobody und group nogroup müssen aktiviert sein — dazu müssen die Semikolons (;) entfernt werden. Das Erzwingen, dass entfernte Clients als nobody und nogroup ausgeführt werden, stellt sicher, dass die Sessions auf dem Server ohne Berechtigungen ausgeführt werden.
  • Das Log zeigt an, dass aktuelle Einträge im Protokoll alte Einträge bei jedem Start von OpenVPN überschreiben, während log-append neue Einträge zur bestehenden Protokolldatei hinzufügt. Die Datei openvpn.log wird im Verzeichnis /etc/openvpn/ aufgezeichnet.

Zusätzlich wird häufig der Wert client-to-client zur Konfigurationsdatei hinzugefügt, sodass mehrere Clients sich gegenseitig zusätzlich zum OpenVPN-Server sehen können. Wenn Sie mit Ihrer Konfiguration zufrieden sind, können Sie den OpenVPN-Server starten:

# systemctl start openvpn

Aufgrund der sich ändernden Beziehung zwischen OpenVPN und systemd kann es gelegentlich erforderlich sein, folgenden Syntax zu verwenden, um den Dienst zu starten: systemctl start openvpn@server.

Der Befehl ip addr zur Anzeige der Netzwerkschnittstellen Ihres Servers sollte jetzt einen Hinweis auf die neue Schnittstelle tun0 ausgeben. OpenVPN erstellt diese, um eingehende Clients zu betreuen:

$ ip addr
[...]
4: tun0: mtu 1500 qdisc [...]
      link/none
      inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
          valid_lft forever preferred_lft forever

Möglicherweise müssen Sie den Server neu starten, bevor alles vollständig funktioniert. Der nächste Schritt ist der Client-Computer.

10.1.2. Konfiguration des OpenVPN-Clients

Traditionell werden Tunnel mit mindestens zwei Ausgängen gebaut (sonst würden wir sie Höhlen nennen). Ein korrekt konfiguriertes OpenVPN auf dem Server leitet den Datenverkehr durch den Tunnel und zurück von einer Seite. Aber Sie benötigen auch eine Software, die auf der Client-Seite läuft, also am anderen Ende des Tunnels.

In diesem Abschnitt werde ich mich auf die manuelle Konfiguration eines Linux-Computers eines bestimmten Typs konzentrieren, um als OpenVPN-Client zu fungieren. Dies ist jedoch nicht die einzige Möglichkeit, diese Funktion zu nutzen. OpenVPN unterstützt Client-Anwendungen, die auf Desktops und Laptops mit Windows oder macOS sowie auf Android- und iOS-Smartphones und -Tablets installiert und verwendet werden können. Weitere Details finden Sie auf der Website openvpn.net.

Das OpenVPN-Paket muss auf dem Client-Computer installiert werden, ähnlich wie es auf dem Server installiert wurde. Allerdings ist hier kein easy-rsa erforderlich, da die verwendeten Schlüssel bereits vorhanden sind. Sie müssen die Datei template client.conf in das gerade erstellte Verzeichnis /etc/openvpn/ kopieren. Diesmal wird die Datei nicht komprimiert, daher funktioniert der übliche Befehl cp hervorragend für diese Aufgabe:

# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf 
  /etc/openvpn/

Die meisten Einstellungen in Ihrer Datei client.conf werden recht nachvollziehbar sein: Sie sollten den Werten auf dem Server entsprechen. Wie aus dem folgenden Beispiel der Datei ersichtlich ist, ist der einzigartige Parameter remote 192.168.1.23 1194, der dem Client die IP-Adresse des Servers angibt. Stellen Sie erneut sicher, dass dies die Adresse Ihres Servers ist. Sie sollten auch den Client-Computer veranlassen, das Zertifikat des Servers zu überprüfen, um mögliche "Man-in-the-Middle"-Angriffe zu verhindern. Eine Möglichkeit, dies zu tun, besteht darin, die Zeile remote-cert-tls server hinzuzufügen (Listing 10.3).

Das Buch «Linux in Action»
Jetzt können Sie in das Verzeichnis /etc/openvpn/ wechseln und die Zertifizierungsschlüssel vom Server extrahieren. Ersetzen Sie die IP-Adresse des Servers oder den Domainnamen im Beispiel durch Ihre Werte:

Das Buch «Linux in Action»
Nichts Aufregendes wird wahrscheinlich passieren, bis Sie OpenVPN auf dem Client starten. Da Sie ein paar Argumente übergeben müssen, erledigen Sie dies über die Eingabeaufforderung. Das Argument —tls-client teilt OpenVPN mit, dass Sie als Client agieren und über TLS-Verschlüsselung eine Verbindung herstellen, während —config auf Ihre Konfigurationsdatei verweist:

# openvpn --tls-client --config /etc/openvpn/client.conf

Überprüfen Sie aufmerksam die Ausgabe des Befehls, um sicherzustellen, dass Sie korrekt verbunden sind. Wenn beim ersten Mal etwas schiefgeht, kann dies an Inkonsistenzen zwischen den Konfigurationsdateien des Servers und des Clients oder an Problemen mit der Netzwerkverbindung/Firewall liegen. Hier sind einige Tipps zur Fehlersuche.

  • Lesen Sie die Ausgabe der OpenVPN-Operation auf dem Client sorgfältig durch. Sie enthält oft wertvolle Hinweise darauf, was genau nicht ausgeführt werden kann und warum.
  • Überprüfen Sie die Fehlermeldungen in den Dateien openvpn.log und openvpn-status.log im Verzeichnis /etc/openvpn/ auf dem Server.
  • Überprüfen Sie die mit OpenVPN verbundenen und zeitlich passenden Meldungen in den Systemprotokollen auf dem Server und dem Client. (journalctl -ce zeigt die neuesten Einträge an.)
  • Stellen Sie sicher, dass eine aktive Netzwerkverbindung zwischen dem Server und dem Client besteht (weitere Informationen finden Sie in Kapitel 14).

Über den Autor

David Clinton — Systemadministrator, Dozent und Autor. Er hat viele wichtige technische Disziplinen administriert, darüber geschrieben und Lehrmaterialien erstellt, einschließlich Linux-Systeme, Cloud-Computing (insbesondere AWS) und Containermanagementtechnologien wie Docker. Er ist der Autor des Buches "Learn Amazon Web Services in a Month of Lunches" (Manning, 2017). Viele seiner Lehrvideokurse sind auf Pluralsight.com verfügbar, und Links zu seinen anderen Büchern (über Linux-Administration und Servervirtualisierung) sind zu finden unter bootstrap-it.com.

» Weitere Informationen zu dem Buch finden Sie auf der Verlagswebsite
» Inhaltsverzeichnis
» Auszug

Für Habr-Besucher gilt ein Rabatt von 25 % mit dem Code — Linux
Nach Erhalt der Zahlung für die gedruckte Version des Buches wird das E-Book per E-Mail versendet.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster