OpenVPN -Setup auf Ubuntu 18.04 Bionic Beaver Linux

OpenVPN -Setup auf Ubuntu 18.04 Bionic Beaver Linux

Zielsetzung

Erfahren Sie, wie Sie den OpenVPN -Server auf Ubuntu 18 installieren und konfigurieren.04 Bionischer Biber

Anforderungen

  • Wurzelberechtigungen

Konventionen

  • # - Erfordert, dass gegebene Linux -Befehle entweder mit Root -Berechtigungen ausgeführt werden müssen
    direkt als Stammbenutzer oder durch Verwendung von sudo Befehl
  • $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Andere Versionen dieses Tutorials

Ubuntu 20.04 (fokale Fossa)

Einführung

Die virtuelle private Netzwerktechnologie ermöglicht es, auf sichere, private Netzwerke zuzugreifen, indem weniger sichere Netzwerke wie das Internet verwendet werden. VPNs werden normalerweise verwendet, um physikalisch abgelegene Zweige einer Organisation zu verbinden, sodass sie als Teil desselben LANs aussehen (zum Beispiel zwei Büros in verschiedenen Städten). Der Verkehr zwischen den Seiten der Verbindung wird mit Tunneln verschlüsselt, wodurch die übertragenen Daten und die Verbindungsinformationen selbst geschützt werden. Für die gleichen Merkmale werden VPNs häufig verwendet, um staatliche Beschränkungen zu umgehen und den Internetverkehr zu anonymisieren.

In diesem Tutorial sehen wir mithilfe von OpenVPN, der Open -Source -VPN -Software auf Ubuntu 18, einen virtuellen privaten Netzwerkserver erstellen.04 Bionischer Biber.

Schritt 1 - Installation

Installieren von OpenVPN auf Ubuntu 18.04 ist wirklich einfach: Die Software ist in den Standard -Repositories verfügbar. Wir müssen auch die installieren Easy-RSA Paket, das uns bei der Erstellung der benötigten Zertifikate und Schlüsseln unterstützt:

$ sudo APT-Get Update && sudo apt-Get Installieren Sie OpenVPN Easy-RSA

Nur wenige Sekunden und die Software wird in unserem Computer installiert, bereit für die Konfiguration.

Schritt 2 - Serverinfrastruktur -Setup

In diesem Abschnitt generieren wir die benötigten Zertifikate und Schlüssel: Zuerst erstellen wir unseren Brauch Ca (Zertifikatautorität), dann generieren wir den Server Zertifikat/Schlüsselpaar, Die Diffie-Hellman Parameter und die TLS-AUTH-Schlüssel.

Beginnen wir zunächst das Verzeichnis, das die Skripte enthält, die den schweren Job für uns erledigen. Wir laufen die Make-Cadir Befehl, das ist Teil der Easy-RSA Paket, das den Namen des Verzeichnisses bereitstellt, das wir erstellen möchten. Wir möchten auch das Verzeichnis eingeben, sobald es erstellt wurde:

$ Make-Cadir-Zertifikate && CD-Zertifikate

In diesem Fall habe ich das Verzeichnis angerufen Zertifikate. Dies wird unser Arbeitsverzeichnis für den Rest des Tutorials sein. Daher müssen alle erwähnten Befehle als darin eingeführt angesehen werden.



Schritt 2.1 - Variablen Setup

Als erstes müssen wir die Variablen anpassen, mit denen die während der Erzeugung der Zertifikatberechtigung verwendeten Werte und das Zertifikat/die Taste festgelegt werden können. Die Variablen sind in der definiert vars Datei:

export key_config = "$ easy_rsa/whemopenSslcnf $ easy_rsa" export key_country = "us" export key_province = "ca" export key_city = "sanfrancisco" export key_org = "fach-funston" export key_email = "me@@@@@@@@@@@@@myhost.Mydomain "export key_ou =" myorganizationalUnit " 

Eine sehr wichtige Variable ist Key_config, Dies wird standardmäßig festgelegt, indem ein kleines Wrapper -Skript aufgerufen wird, das die richtige SSL -Konfiguration abrufen sollte. Wenn es jedoch auf diese Weise verwendet wird, wird ein Fehler erzeugt, da das Skript die Konfiguration nicht abgerufen hat. Um dies zu vermeiden, geben wir die Konfigurationsdatei direkt an:

exportieren key_config = "$ easy_rsa/openssl-1.0.0.CNF "

Die Werte für die anderen Variablen müssen geändert und an Ihre spezifischen Anforderungen angepasst werden. Nachdem wir die Datei bearbeitet haben, müssen wir sie „beziehen“, damit die Variablen Teil unserer Laufzeitumgebung werden lassen:

$ Quellvars

Schritt 2.2 - Generierung der CA

Wir können fortfahren und unsere CA (Zertifikatsbehörde) generieren und). Ausführen der alles putzen Und Build-Ca Skripte in Ordnung. Die CA -Generation beginnt unter Verwendung der Werte der Variablen, die wir in der definiert haben vars Datei als Standardeinstellungen für die entsprechenden Felder:

$ ./alles putzen && ./bau-ca

Schritt 2.3 - Zertifikat und Schlüsselgeneration

Der nächste Schritt ist die Erzeugung des Zertifikats und der Schlüssel für den Server. Es geht nur darum, das Skript zur Kee-Key-Server auszuführen, das den Namen für das Zertifikat und den Schlüssel als Parameter verwendet. In diesem Fall verwenden wir "Server", da es sich um den Standardnamen handelt, der in der VPN -Konfigurationsdatei verwendet wird, wie wir im Tutorial weiter angezeigt werden:

$ ./build-key-server-Server

Befolgen Sie die Anweisungen auf dem Bildschirm. Der Herausforderung Passwort Und Name der Firma Felder sind optional.

Schritt 2.4 - Erzeugung von Diffie -Hellman -Parametern

Der nächste Schritt besteht darin, die Diffie-Hellman-Parameter zu erstellen. Diese Parameter werden verwendet, um kryptografische Schlüssel mit einem öffentlichen und unsicheren Kanal auszutauschen. Wir benutzen das build-dh Skript:

$ ./Build-dh

Das Skript dauert einige Zeit, um die Parameter zu generieren, abhängig von der Maschine, auf der wir laufen, geduldig sein!

Schritt 2.5 - Generieren Sie einen zufälligen Schlüssel, der als gemeinsames Geheimnis verwendet werden soll

Um unsere Sicherheit zu stärken, werden wir zusätzlich ein Zertifikat verwenden, sondern auch einen Schlüssel zur Verwendung eines gemeinsam genutzten Geheimnisses generieren und verwenden. Der Server und jeder Client benötigt eine Kopie dieses Schlüssels:

$ openVPN -Agenkey -Seehunde Keys/Ta.Taste

Schritt 2.6 - Kopieren der generierten Dateien

Die Zertifikatbehörde (CA).CRT), Zertifikat (Server.CRT), Schlüssel (Server.Schlüssel), Diffie-Hellman-Parameter (DH2048.pem) und tls-auth key (ta.Schlüssel-) Dateien sollten in den generiert werden Schlüssel Verzeichnis. Jetzt ist es Zeit, sie zu kopieren /etc/openVPN:

$ sudo cp keys/Server.CRT, Server.Schlüssel, ca.CRT, DH2048.Pem, ta.Schlüssel /etc /openvpn

Schritt 3 - OpenVPN -Konfiguration

Wir können fortfahren, um den OpenVPN -Dienst zu konfigurieren. Eine (komprimierte) Probenkonfiguration kann bei gefunden werden /usr/share/doc/openVPN/Beispiele/Beispiel-Config-Files/Server.Conf.gz: Wir müssen es nur in das Verzeichnis /etc /openVPN extrahieren:

$ gzip -d -c/usr/share/doc/openVPN/Beispiele/Beispiel -Config -Files/Server.Conf.gz | sudo tee/etc/openvpn/server.conf> /dev /null

Mit dem obigen Befehl dekomprimierte wir die Originaldatei, sendeten ihre Ausgabe an stdout und umleiten sie durch die /etc/openVPN/Server.Conf Datei. Stellen Sie sicher, dass die Standardwerte in der Konfigurationsdatei denen entsprechen, die wir generiert haben:

ca ca.CRT -Zertifikatserver.CRT -Schlüsselserver.Schlüssel # Diese Datei sollte geheim gehalten werden DH DH2048.Pem 


Schritt 4 - Richten Sie die Firewall ein und lassen Sie die IP -Weiterleitung zu

Wir haben fast fertig mit dem Einrichten unseres VPN -Server 1194/UDP (Standardport und Protokoll):

$ sudo ufw erlauben openvpn

Sehr wichtig: Standardmäßig nur der Datenverkehr zwischen dem Client und dem Server über den VPN -Tunnel übergeht, schließt dies den Internetverkehr aus. Um dieses Verhalten zu ändern, müssen wir zunächst die Option online überzeugen 192 der Serverkonfigurationsdatei (/etc/openVPN/Server.Conf):

Drücken Sie "Redirect-Gateway Def1 Bypass-DHCP" 

Als nächstes müssen wir eine iptierbare Regel verwenden, um den VPN -Client über das Internet zu nat. Beachten Sie, dass ich das angegeben habe Eth0 Schnittstelle, aber Sie müssen die Regel an die auf Ihrem Computer verwendete Schnittstelle anpassen:

$ sudo iptables -t nat -a postrouting -s 10.8.0.0/24 -O ETH0 -J Maskerade

Setzen Sie diese Weise jedoch, dass die Regel jedoch keinen Neustart bestehen bleibt. Um es anhaltend zu machen, müssen wir es dem hinzufügen /etc/ufw/vor.Regeln Datei. Diese Datei enthält Regeln, die von UFW vor den aus der Befehlszeile definierten Zeile angewendet werden. Fügen Sie die Regel als erste in der Datei hinzu:

*nat: poTrouting akzeptieren [0: 0] -a poTrouting -s 10.8.0.0/8 -O ETH0 -J Masquerade Commit 

Jetzt müssen wir die Paketweiterleitung aktivieren. Zuerst müssen wir die /etc /sysctl bearbeiten.Conf -Datei und die Zeile überzeugen 28:

# Überzeugen Sie die nächste Zeile, um die Paketweiterleitung für IPv4 -Netz zu aktivieren.IPv4.ip_forward = 1 

Zu diesem Zeitpunkt sollten wir die Konfiguration neu laden:

$ sudo sysctl -p /etc /sysctl.Conf

Wir müssen immer noch zulassen. Offen /etc/Standard/UFW und ändern Default_forward_policy aus TROPFEN Zu AKZEPTIEREN:

# Legen Sie die Standard -Weiterleitungsrichtlinie fest, um zu akzeptieren, fallen zu lassen oder abzulehnen. Bitte beachten Sie, dass # Wenn Sie dies ändern, möchten Sie höchstwahrscheinlich Ihre Regeln für default_forward_policy = "Akzeptieren" anpassen 

Zum Schluss laden Sie die Firewall neu:

$ sudo UFW Reload

Schritt 5 - Starten Sie den Service

Wir werden nun SystemCTL verwenden, um den Server zu starten und die Variable mit dem Namen unserer Konfigurationsdatei an die Serviceeinheit weiterzugeben. Durch die Verwendung von Systemd können wir dies tun, indem wir den Wert mit dem Präfixen des Werts tun @ Symbol. Zum Beispiel:

$ sudo systemctl starten openvpn@server

Zu diesem Zeitpunkt sollte der Server in Betrieb sein. Überprüfen Sie es durch Laufen

$ sudo systemctl is-active OpenVPN@Server

Der Befehl sollte "aktiv" zurückgeben.



Schritt 6 - Client -Setup

Für jeden Client, den wir verwenden möchten, müssen wir ein Zertifikat/Schlüsselpaar generieren, genau wie oben für den Server:

$ Quelle vars && ./Build-Key-Kunde

Jetzt haben wir zwei Optionen: Wir können entweder die erforderlichen Dateien in unseren Kunden kopieren oder eine generieren .ovpn Datei, in die der Inhalt dieser Dateien einbettet. Wir werden uns auf die zweite Option konzentrieren.

Genau wie wir serverseitig, werden wir eine Beispielkonfiguration als unseren Ausgangspunkt nehmen. Erstellen wir ein dediziertes Verzeichnis und kopieren Sie die Vorlage:

$ mkdir clients && cp/usr/share/doc/openVPN/Beispiele/Beispiel-Config-Files/Client.Conf Clients/Client.ovpn

Befolgen Sie die sehr gut kommentierten Abschnitte der Datei und passen Sie die Optionen an die in der Serverkonfiguration definierten Optionen an (in unserem Fall ist bereits erledigt). Stellen Sie den Server -IP und den Port ein, indem Sie die Einstellung ändern (Zeile 42):

Remote my-server-1 1194 

Wobei „my-server“ durch die Server-IP ersetzt werden muss und der Port geändert werden muss, wenn Sie die Standardeinstellung nicht verwenden. Als nächstes wenden Sie sich an die folgenden Zeilen (61,62):

# Downgrade-Berechtigungen nach der Initialisierung (nur Nicht-Windows); Benutzer niemand; Gruppennogroup 

Jetzt ersetzen wir Referenzen auf CA, Zertifikat, Schlüssel, DH-Parameter und TLS-Auth-Schlüssel durch den tatsächlichen Inhalt der Dateien: Auf diese Weise erstellen wir eine einbettbezogene, leicht exportierbare Konfiguration. Erste Kommentarreferenzen (Zeilen 88-90 und 108)

#ca ca.CRT #cert Client.CRT #Key -Kunde.Schlüssel #tls-auth ta.Schlüssel 1

Kopieren Sie als nächstes den Inhalt der genannten Dateien zwischen den entsprechenden Tags. Der Inhalt der Zertifikatberechtigung muss zwischen Tags, dem Inhalt der Zertifikatdatei in der Zertifikatdatei und dem Schlüssel zwischen den . Betrachten Sie als Beispiel die CA:

 # Hier geht der Inhalt der CA.CRT -Datei  

Für den TLS-Auth-Schlüssel würden wir stattdessen tun:

Schlüsselanleitung 1 # Der Inhalt des TA.Schlüsseldatei  

Importieren Sie schließlich die Datei in Ihrer Client -Anwendung und Sie sollten bereit sein zu gehen.

Beispiel für Android -Verbindungen

Um eine Verbindung zu unserem OpenVPN -Server von Android herzustellen, verwenden wir die offizielle OpenVPN -Anwendung: OpenVPN Connect. Nach der Installation und Start wird das folgende Menü angezeigt:

Android OpenVPN App -Menü



Tippen Sie auf den letzten Artikel, OVPN -Profil

Navigieren Sie aus der Datei -Picker zu dem Ort, an dem Sie die gespeichert haben .OVPN -Datei und auswählen, als auf "Import" in der oberen rechten Ecke zu tippen. Das Profil sollte korrekt importiert werden:

Android OpenVPN App Import
Tippen Sie nun wie zuvor auf Add und aktivieren Sie auf dem folgenden Bildschirm die Verbindung:

Android OpenVPN App angeschlossen
Erfolg!

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • Basic Ubuntu 22.04 OpenVPN -Client/Server -Verbindungsanschluss -Setup
  • Ubuntu 20.04 Leitfaden
  • Ubuntu 20.04 Hadoop
  • Die 8 besten Ubuntu -Desktop -Umgebungen (20.04 fokale Fossa…
  • FTP -Clientliste und -installation auf Ubuntu 20.04 Linux…
  • Linux GUI -Netzwerkmanager