Das Buch „Linux in Aktion“

Das Buch „Linux in Aktion“ Hallo, Habra-Teilnehmer! In diesem Buch beschreibt David Clinton 12 reale Projekte, darunter die Automatisierung des Backup- und Wiederherstellungssystems, die Einrichtung einer persönlichen Dateiwolke im Stil von Dropbox und die Erstellung eines eigenen MediaWiki-Servers. Anhand interessanter Beispiele lernen Sie Virtualisierung, Notfallwiederherstellung, Sicherheitsmaßnahmen, Backups, die Implementierung von DevOps und die Fehlersuche im System kennen. Jedes Kapitel endet mit einem Überblick ü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 erzählt. SSH und SCP können Daten schützen, die über Remote-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 können Daten beim Austausch zwischen Websites und Client-Browsern schützen (Kapitel 9). Manchmal erfordert jedoch der Schutz Ihrer Daten eine breitere Palette von Verbindungen. Zum Beispiel müssen einige Mitglieder Ihres Teams möglicherweise unterwegs arbeiten und verbinden sich über WLAN mit öffentlichen Hotspots. Man sollte definitiv nicht davon ausgehen, dass all diese Hotspots sicher sind, aber Ihre Leute benötigen wirklich einen Weg, um auf Unternehmensressourcen zuzugreifen – in diesem Fall kann ein VPN helfen.

Ein gut gestalteter VPN-Tunnel stellt eine direkte Verbindung zwischen Remote-Clients und dem Server her, um Daten während der Übertragung über ein unsicheres Netzwerk zu verbergen. Und was ist damit? Sie haben bereits viele Werkzeuge gesehen, die dies mithilfe von Verschlüsselung ermöglichen. Der wirkliche Wert eines VPNs besteht darin, dass Sie durch das Öffnen eines Tunnels Remote-Netzwerke so anschließen können, als wären sie alle lokal zusammen. In gewisser Weise verwenden Sie eine Umgehung.

Mit einem solchen erweiterten Netzwerk können Administratoren ihre Arbeit auf ihren Servern von überall aus erledigen. Aber noch wichtiger ist, dass ein Unternehmen mit Ressourcen, die über mehrere Niederlassungen verteilt sind, diese für alle Gruppen sichtbar und zugänglich machen kann, die sie benötigen, egal wo sie sich befinden (Abb. 10.1).

Der Tunnel selbst garantiert keine Sicherheit. Aber einer der Standardverschlüsselungen kann in die Netzwerkstruktur integriert werden, was das Sicherheitsniveau erheblich erhöht. Tunnel, die unter Verwendung des OpenVPN-Pakets mit offenem Quellcode erstellt wurden, nutzen die gleiche TLS/SSL-Verschlüsselung, von der Sie bereits gelesen haben. OpenVPN ist nicht die einzige verfügbare Option zum Tunnelieren, aber eines der bekanntesten. Man geht davon aus, dass es etwas schneller und sicherer ist als das alternative Tunnelprotokoll der Stufe 2, das die IPsec-Verschlüsselung verwendet.

Möchten Sie, dass in Ihrem Team alle sicher miteinander kommunizieren, während sie unterwegs sind oder in verschiedenen Gebäuden arbeiten? Dazu müssen Sie einen OpenVPN-Server erstellen, um die gemeinsame Nutzung von Anwendungen und den Zugriff auf die lokale Netzwerkumgebung des Servers zu ermöglichen. Um dies zu realisieren, reicht es aus, zwei virtuelle Maschinen oder zwei Container zu starten: eine für die Rolle des Servers/Hosts und die andere für den Client. Die Erstellung eines VPN ist kein einfacher Prozess, daher ist es wahrscheinlich sinnvoll, einige Minuten darauf zu verwenden, sich ein Gesamtbild zu machen.

Das Buch „Linux in Aktion“

10.1.1. Konfiguration des OpenVPN-Servers

Bevor Sie anfangen, gebe ich Ihnen einen nützlichen Hinweis. Wenn Sie alles selbst machen möchten (und ich empfehle Ihnen dringend, dies zu tun), werden Sie wahrscheinlich feststellen, dass Sie mit mehreren Terminalfenstern arbeiten, die auf Ihrem Desktop geöffnet sind, von denen jedes mit seiner eigenen Maschine verbunden ist. Es besteht die Gefahr, dass Sie irgendwann einen Befehl in das falsche Fenster eingeben. Um dies zu vermeiden, können Sie den Befehl hostname verwenden, um den Anzeigenamen der Maschine im Terminal in etwas zu ändern, das Ihnen klar sagt, wo Sie sich befinden. Sobald Sie dies getan haben, müssen Sie sich vom Server abmelden und wieder anmelden, damit die neuen Einstellungen wirksam werden. So sieht das aus:

Das Buch „Linux in Aktion“
Indem Sie diesen Ansatz verfolgen und jeder Maschine, mit der Sie arbeiten, passende Namen zuweisen, können Sie leicht nachverfolgen, wo Sie sich befinden.

Nach der Verwendung von hostname könnten Sie auf nervige Meldungen 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.

Um OpenVPN auf Ihrem Server zu installieren, benötigen Sie zwei Pakete: openvpn und easy-rsa (zur Verwaltung des Generierungsprozesses für den Verschlüsselungsschlüssel). CentOS-Benutzer sollten gegebenenfalls zunächst das Repository epel-release installieren, wie Sie es in Kapitel 2 gemacht haben. Um den Zugriff auf die Serveranwendung überprüfen zu können, können Sie auch den Webserver Apache (apache2 für Ubuntu und httpd auf CentOS) installieren.

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 veranschaulicht, wie ufw in Ubuntu funktioniert, aber ich bin mir sicher, dass Sie sich noch an das Programm firewalld CentOS aus Kapitel 9 erinnern:

# ufw enable
# ufw allow 22
# ufw allow 1194

Um die interne Routenbildung zwischen den Netzwerkinterfaces auf dem Server zu ermöglichen, müssen Sie eine Zeile (net.ipv4.ip_forward = 1) in der Datei /etc/sysctl.conf entkommentieren. Dies erlaubt es, entfernte Clients nach Bedarf weiterzuleiten, sobald sie verbunden sind. Um den neuen Parameter 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 einige Schritte, die Sie unternehmen müssen, bevor Sie bereit sind: Sie müssen die folgenden Schritte ausführen (wir werden diese später im Detail besprechen).

  1. Erstellen Sie auf dem Server ein Schlüsselpaar für die Infrastruktur öffentlicher Schlüssel (PKI) mit den mit dem Paket easy-rsa gelieferten Skripten. Im Grunde 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.

Generierung von Verschlüsselungsschlüsseln.

Um es nicht komplizierter zu machen, können Sie Ihre Schlüssel-Infrastruktur auf der gleichen Maschine einrichten, die den OpenVPN-Server hostet. In den Sicherheitsempfehlungen wird jedoch häufig geraten, einen separaten CA-Server für einsatzfähige Umgebungen zu verwenden. Der Prozess der Generierung und Verteilung von Verschlüsselungsressourcen für die Verwendung mit OpenVPN ist in Abb. 10.2 dargestellt.

Das Buch „Linux in Aktion“
Als Sie OpenVPN installiert haben, wurde automatisch das Verzeichnis /etc/openvpn/ erstellt, aber es ist noch nichts darin. Die Pakete openvpn und easy-rsa werden mit Beispielvorlagendateien geliefert, die Sie als Grundlage für Ihre Konfiguration verwenden können. Um den Zertifizierungsprozess zu starten, kopieren Sie das Vorlagenverzeichnis 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

Der easy-rsa-Katalog wird nun eine beträchtliche Anzahl von Skripten enthalten. In Tabelle 10.1 sind die Werkzeuge aufgelistet, die Sie zur Generierung von Schlüsseln verwenden werden.

Das Buch „Linux in Aktion“

Die genannten 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 die Umgebungsvariablen, die easy-rsa bei der Schlüsselerzeugung verwendet. Sie müssen die Datei bearbeiten, um Ihre eigenen Werte anstelle der bereits vorhandenen Standardwerte zu verwenden. 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 Ausführen der vars-Datei ermöglicht es, ihre Werte in die Shell-Umgebung zu übergeben, wo sie in den Inhalt Ihrer neuen Schlüssel einfließen. Warum funktioniert der Befehl sudo allein nicht? Weil wir zu Beginn das Skript mit dem Namen vars bearbeiten und es dann anwenden. Anwenden bedeutet auch, dass die vars-Datei ihre Werte in die Shell-Umgebung überträgt, wo sie in den Inhalt Ihrer neuen Schlüssel einfließen.

Stellen Sie sicher, dass Sie die Datei erneut ausführen, indem Sie eine neue Shell verwenden, um den unvollendeten Prozess abzuschließen. Wenn dies abgeschlossen ist, wird das Skript Sie auffordern, ein weiteres Skript, clean-all, auszuführen, um alle Inhalte im Verzeichnis /etc/openvpn/easy-rsa/keys/: zu entfernen.

Das Buch „Linux in Aktion“
Natürlich wird der nächste Schritt die Ausführung des Skripts clean-all sein, gefolgt von build-ca, das das pkitool-Skript verwendet, um das Root-Zertifikat zu erstellen. Sie werden aufgefordert, die Identitätseinstellungen zu bestätigen, die von vars bereitgestellt werden:

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

Anschließend kommt das Skript build-key-server. Da es dasselbe pkitool-Skript mit dem neuen Root-Zertifikat verwendet, sehen Sie die gleichen Fragen zur Bestätigung der Erstellung des Schlüsselpaares. Den Schlüsseln werden Namen basierend auf den von Ihnen übergebenen Argumenten zugewiesen, die, vorausgesetzt, Sie führen nicht mehrere VPNs auf diesem Computer aus, 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 jedoch unter Verwendung des build-dh-Skripts 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 jetzt in das Verzeichnis /etc/openvpn/easy-rsa/keys/, aber OpenVPN weiß das nicht. Standardmäßig sucht OpenVPN nach Schlüsseln im Verzeichnis /etc/openvpn/, daher kopieren Sie sie:

# 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 Client-Verschlüsselungsschlüssel

Wie Sie bereits gesehen haben, verwenden TLS-Verschlüsselung entsprechende Schlüsselpaare: einer ist auf dem Server eingerichtet und der andere auf dem Remote-Client. Das bedeutet, dass Sie Client-Schlüssel benötigen. Unser alter Freund pkitool ist genau das, was Sie dafür brauchen. In diesem Beispiel, während wir das Programm im Verzeichnis /etc/openvpn/easy-rsa/ ausführen, übergeben wir ihm das Argument client, um die Dateien client.crt und client.key zu generieren:

# ./pkitool client

Die beiden Client-Dateien zusammen mit der ursprünglichen Datei ca.crt, die sich noch im Verzeichnis keys/ befindet, müssen jetzt sicher an Ihren Client übertragen werden. Aufgrund ihrer Zuordnung und Zugriffsrechte kann dies eine Herausforderung sein. Der einfachste Ansatz besteht darin, den Inhalt der ursprünglichen Datei manuell in ein Terminal auf dem Desktop Ihres PCs zu kopieren (Text auswählen, mit der rechten Maustaste klicken und im Menü Kopieren auswählen). Fügen Sie dies dann in eine neue Datei mit demselben Namen ein, die Sie im zweiten Terminal erstellen, das mit Ihrem Client verbunden ist.

Aber jeder kann doch einfach schneiden und einfügen. Denken Sie stattdessen wie ein Administrator, denn Sie haben nicht immer Zugriff auf eine GUI, wo diese Schneide-/Einfügeoperation möglich ist. Kopieren Sie die Dateien in das Heimatverzeichnis Ihres Benutzers (damit der Remote-Befehl scp darauf zugreifen kann) und ändern Sie dann mit chown den Besitzer der Dateien von root zu einem regulären Benutzer ohne root-Rechte, damit die Remote-Aktion scp ausgeführt werden kann. Stellen Sie sicher, dass alle Ihre Dateien zu diesem Zeitpunkt installiert und zugänglich sind. Auf den Client werden Sie sie ein wenig später verschieben:

# 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 dem vollständigen Satz an Verschlüsselungsschlüsseln, die bereit zur Anwendung sind, müssen Sie dem Server mitteilen, wie Sie das VPN erstellen möchten. Dies geschieht über die Datei server.conf.

Reduzierung der Tastenanschläge

Müssen Sie zu viel tippen? Die Erweiterung mit Klammern hilft, diese sechs Befehle auf zwei zu reduzieren. Ich bin mir sicher, dass Sie lernen können, diese beiden Beispiele zu verstehen und zu begreifen, was passiert. Was noch wichtiger ist, Sie werden verstehen, wie Sie diese Prinzipien auf Operationen 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 wissen Sie, 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 Datei mit der Konfiguration Vorlage, die Sie nach /etc/openvpn/ kopieren können. Ich werde davon ausgehen, dass die Vorlage komprimiert ist, und Ihnen ein nützliches Tool vorstellen: zcat.

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

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

Lassen Sie die umfangreiche und hilfreiche Dokumentation, die mit der Datei geliefert wird, beiseite und sehen Sie sich an, wie sie aussehen kann, wenn Sie mit der Bearbeitung fertig sind. Beachten Sie, dass das Semikolon (;) OpenVPN anweist, die folgende Zeile nicht zu lesen und nicht auszuführen (Listing 10.2).

Das Buch „Linux in Aktion“
Lassen Sie uns einige dieser Einstellungen durchgehen.

  • Standardmäßig arbeitet OpenVPN über Port 1194. Sie können dies ändern, um Ihre Aktivitäten weiter zu verbergen oder Konflikte mit anderen aktiven Tunneln zu vermeiden. Da 1194 eine minimale Koordination mit den Clients erfordert, ist es am besten, dies so zu belassen.
  • OpenVPN verwendet für die Datenübertragung entweder das Transmission Control Protocol (TCP) oder das User Datagram Protocol (UDP). TCP kann etwas langsamer sein, ist aber zuverlässiger und wird mit höherer Wahrscheinlichkeit von Anwendungen verstanden, die an beiden Enden des Tunnels arbeiten.
  • Sie können dev tun angeben, wenn Sie ein einfacheres und effizienteres IP-Tunnel erstellen möchten, das Dateninhalte überträgt und nichts weiter. Wenn Sie hingegen mehrere Netzwerkschnittstellen (und die Netzwerke, die sie repräsentieren) verbinden müssen, indem Sie einen Ethernet-Brücke erstellen, sollten Sie dev tap wählen. Wenn Sie nicht verstehen, was das alles bedeutet, verwenden Sie das Argument tun.
  • Die nächsten vier Zeilen übergeben OpenVPN die Namen von drei Authentifizierungsdateien auf dem Server und die zuvor erstellte dh2048-Parameterdatei.
  • Die Zeile server legt den Adressbereich und die Subnetzmaske fest, die zur Vergabe von IP-Adressen an Clients beim Einloggen verwendet werden.
  • Die optionale Anweisung push „route 10.0.3.0 255.255.255.0“ ermöglicht es externen Clients, auf private Subnetze hinter dem Server zuzugreifen. Um dies zu ermöglichen, ist auch eine Netzwerk-Konfiguration auf dem Server erforderlich, damit das private Subnetz vom OpenVPN-Subnetz (10.8.0.0) Kenntnis hat.
  • Die Zeile port-share localhost 80 ermöglicht es, den Clientverkehr, der über den Port 1194 eintrifft, auf einen lokalen Webserver weiterzuleiten, der den Port 80 überwacht. (Das ist nützlich, wenn Sie einen Webserver zum Testen Ihres VPN einbinden möchten.) Dies funktioniert nur, wenn das TCP-Protokoll gewählt ist.
  • Die Zeilen user nobody und group nogroup müssen aktiv sein — dazu müssen die Semikolons (;) entfernt werden. Das Erzwingen, dass externe Clients unter nobody und nogroup arbeiten, stellt sicher, dass die Sitzungen auf dem Server unprivilegiert sind.
  • log gibt an, dass aktuelle Logeinträge alte Einträge bei jedem Start von OpenVPN überschreiben, während log-append neue Einträge in eine bestehende Logdatei hinzufügt. Die Datei openvpn.log wird im Verzeichnis /etc/openvpn/ gespeichert.

Darüber hinaus wird oft der Wert client-to-client zur Konfigurationsdatei hinzugefügt, damit mehrere Clients sich gegenseitig neben dem 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 manchmal erforderlich sein, solchen Syntax zu verwenden, um den Dienst zu starten: systemctl start openvpn@server.

Das Ausführen von ip addr zur Anzeige der Liste der Netzwerkschnittstellen Ihres Servers sollte nun einen Verweis auf ein neues Interface mit dem Namen tun0 ausgeben. OpenVPN wird es zur Bedienung eingehender Clients erstellen:

$ 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 Halt ist der Client-Computer.

10.1.2. Konfiguration des OpenVPN-Clients

Traditionell werden Tunnel mit mindestens zwei Ausgängen gebaut (ansonsten würden wir sie Höhlen nennen). Richtig konfiguriertes OpenVPN auf dem Server leitet den Traffic in den Tunnel und aus ihm heraus auf einer Seite. Sie benötigen jedoch auch eine Software, die auf der Client-Seite, also am anderen Ende des Tunnels, läuft.

In diesem Abschnitt werde ich mich auf die manuelle Konfiguration eines bestimmten Linux-Computers konzentrieren, der als OpenVPN-Client dient. Es ist jedoch nicht der einzige Weg, um diese Möglichkeit zu nutzen. OpenVPN unterstützt Client-Anwendungen, die auf Desktop-Computern und Laptops mit Windows oder macOS sowie auf Smartphones und Tablets mit Android und iOS 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, obwohl hier kein easy-rsa erforderlich ist, da die von Ihnen verwendeten Schlüssel bereits existieren. Sie müssen die Vorlage client.conf in das gerade erstellte Verzeichnis /etc/openvpn/ kopieren. Diesmal wird die Datei nicht komprimiert, daher sollte der normale cp-Befehl diese Aufgabe problemlos erledigen können:

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

Die meisten Einstellungen in Ihrer Datei client.conf sollten recht verständlich sein: Sie sollten mit den Werten auf dem Server übereinstimmen. Wie im Folgenden Beispiel zu sehen ist, ist der einzigartige Parameter remote 192.168.1.23 1194, der dem Client die IP-Adresse des Servers angibt. Stellen Sie also sicher, dass dies die Adresse Ihres Servers ist. Sie sollten auch den Client-Computer zur Überprüfung des Serverzertifikats zwingen, um eine mögliche Man-in-the-Middle-Attacke 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 Aktion“
Jetzt können Sie in das Verzeichnis /etc/openvpn/ wechseln und die Zertifizierungsschlüssel vom Server abrufen. Ersetzen Sie die IP-Adresse des Servers oder den Domainnamen im Beispiel durch Ihre Werte:

Das Buch „Linux in Aktion“
Nichts Aufregendes wird wahrscheinlich passieren, bis Sie OpenVPN auf dem Client starten. Da Sie ein paar Argumente übergeben müssen, werden Sie das über die Kommandozeile tun. Das Argument —tls-client sagt OpenVPN, dass Sie als Client fungieren und sich über TLS-Verschlüsselung verbinden werden, und —config verweist auf Ihre Konfigurationsdatei:

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

Lesen Sie die Ausgabe des Befehls sorgfältig durch, um sicherzustellen, dass Sie korrekt verbunden sind. Wenn beim ersten Mal etwas schiefgeht, könnte es an Inkonsistenzen zwischen den Einstellungen der Server- und Client-Konfigurationsdateien oder an einem Problem mit der Netzwerkverbindung/firewall liegen. Hier sind einige Tipps zur Fehlersuche.

  • Studieren Sie die Ausgabe der OpenVPN-Operation auf dem Client. 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.
  • Prüfen Sie die mit OpenVPN verbundenen und zeitlich passenden Einträge in den Systemprotokollen auf dem Server und dem Client. (journalctl -ce zeigt die letzten Einträge an.)
  • Stellen Sie sicher, dass eine aktive Netzwerkverbindung zwischen dem Server und dem Client besteht (nähere Informationen finden Sie in Kapitel 14).

Über den Autor

David Clinton — Systemadministrator, Dozent und Schriftsteller. Er hat administriert, darüber geschrieben und Schulungsmaterialien für viele wichtige technische Disziplinen erstellt, einschließlich Linux-Systeme, Cloud-Computing (insbesondere AWS) und Container-Technologien wie Docker. Er hat das Buch Learn Amazon Web Services in a Month of Lunches (Manning, 2017) geschrieben. Viele seiner Schulungsvideokurse finden Sie auf Pluralsight.com, und Links zu seinen anderen Büchern (zur Linux-Administration und Servervirtualisierung) sind verfügbar unter bootstrap-it.com.

» Mehr über das Buch erfahren Sie auf der Verlagswebsite
» Inhaltsverzeichnis
» Auszug

Für die Bewohner von Chabro Rabatt von 25% mit dem Gutschein — Linux
Nach der Bezahlung der gedruckten Version des Buches wird ein elektronisches Buch an die E-Mail-Adresse gesendet.

Quelle: habr.com

60GB SSD 8Gb DDR4