OpenVPN -Setup auf Ubuntu 18.04 Bionic Beaver Linux
- 3636
- 631
- Matteo Möllinger
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 vonsudo
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
- « So stellen Sie das Dock -Panel auf Ubuntu 18 an.04 Bionic Beaver Linux
- So installieren Sie Kylin Desktop auf Ubuntu 18.04 Bionic Beaver Linux »