So installieren und konfigurieren Sie den OpenVPN -Server auf Ubuntu 18.04, 16.04

So installieren und konfigurieren Sie den OpenVPN -Server auf Ubuntu 18.04, 16.04

VPN oder virtuelles privates Netzwerk ist eine Gruppe von Computern, die über das öffentliche Netzwerk (Internet) mit dem privaten Netzwerk verbunden sind. Heutzutage ist Sicherheit für alle das Hauptanliegen und es ist mehr erforderlich, während sie über das öffentliche Netzwerk arbeiten.

Wie Sie eine Gruppe von Computern an einem abgelegenen Ort haben. Jetzt müssen Sie auf diese Computer als LAN -Netzwerk in Ihrem System zugreifen. Außerdem benötigen Sie alle Daten, die während der Übertragung zwischen Computern verschlüsselt werden sollten. Die Lösung ist ein VPN. Sie können ein VPN -Netzwerk verwenden, um zwei Remote -Standortsysteme miteinander zu verbinden, da es sich auf demselben LAN befindet. Dieses Tutorial hilft Ihnen bei der Installation und Konfiguration des OpenVPN -Servers auf Ubuntu-, Debian- und Linux -Mint -Systemen.

Schritt 1 - Voraussetzungen

Melden Sie sich in Ihrem Ubuntu -System mit SSH an. Aktualisieren Sie nun den passenden Cache von System und aktualisieren Sie Ihre Systempakete auf die neuesten Versionen.

sudo APT-Get-Update sudo APT-Get-Upgrade 

Schritt 2 - OpenVPN -Server installieren

Installieren Sie nun das OpenVPN -Paket, indem Sie den folgenden Befehl eingeben. Installieren Sie auch Easy-RSA-Pakete zum Verwalten von SSL-Zertifikaten, die für die Datenverschlüsselung zwischen Server und Client erforderlich sind.

sudo apt-Get Installieren Sie OpenVPN Easy-RSA 

Kopieren Sie die Beispielkonfigurationsdatei für OpenVPN nach/etc/openvpn/server.Conf -Datei. Dies wird als OpenVPN -Serverkonfigurationsdatei verwendet.

Gunzip -c/usr/share/doc/openVPN/Beispiele/Beispiel-Config-Files/Server.Conf.GZ>/etc/openVPN/Server.Conf 

Schritt 3 - OpenVPN -Server konfigurieren

Bearbeiten Sie die OpenVPN -Serverkonfigurationsdatei in Ihrem bevorzugten Texteditor.

vim/etc/openVPN/Server.Conf 

Entferne das ";" Um Zeilen zu kontrollieren oder neue Zeilen für die folgenden Einträge in der Konfigurationsdatei hinzuzufügen.

 tls-auth ta.Schlüssel 0 Tastenanleitung 0 CIPHER AES-256-CBC AUTH SHA256 COMP-LZO-Benutzer Niemand Gruppen-NOGROUP-Zertifikat Server.CRT -Schlüsselserver.Taste 

Die obigen Einstellungen ermöglichen die VPN -Verbindung zwischen den Systemen. Aber sie werden den Internetverkehr des Kunden nicht über VPN leiten. Auch die DHCP-Option-Werte überzeugen.

 Push "Redirect-Gateway Def1 Bypass-DHCP" Push "DHCP-Option DNS 208.67.222.222 "Push" DHCP-Option DNS 208.67.220.220 " 

Schritt 4 - Netzwerkkonfiguration aktualisieren

Führen Sie einige Netzwerkeinstellungen durch, mit denen Benutzer auf demselben Netzwerk von OpenVPN -Servern auf den Server zugreifen können. Ermöglichen Sie zunächst die IP -Weiterleitung auf dem Server, indem Sie die folgenden Befehle auf das Netz ausführen.IPv4.IP_FORWARD -Wert zu 1 in /etc /sysctl.Conf -Datei.

Echo "Netz.IPv4.ip_forward = 1 ">> /etc /sysctl.Conf sudo sysctl -p 

Maskerade den Internetverkehr aus dem VPN -Netzwerk (10.8.0.0/24) an Systeme Local Network Interface (ETH0). Wo 10.8.0.0 ist mein VPN -Netzwerk und Eth0 ist die Netzwerkschnittstelle meines Systems.

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

Schritt 5 - Setup Certificate Authority

OpenVPN bietet einen sicheren VPN -Dienst mithilfe der TLS/SSL -Verschlüsselung des Datenverkehrs zwischen Server und Client. Dazu müssen Sie vertrauenswürdige Zertifikate für Server und Kunden ausstellen, um zu arbeiten. Um Zertifikate auszustellen, müssen Sie die Zertifikatberechtigung für Ihr System konfigurieren.

Erstellen wir ein Verzeichnis für die Zertifikatautorität mit dem Befehl make-cadir. Dieser Befehl initialisiert auch das Verzeichnis mit den erforderlichen Dateien.

make-cadir/etc/openvpn/openvpn-ca/cd/etc/openvpn/openvpn-ca// 

Bearbeiten Sie die VARS -Datei in Ihrem bevorzugten Texteditor.

vim vars 

und aktualisieren Sie die folgenden Werte nach Bedarf. Diese Werte werden als Standardwerte verwendet, um die Zertifikate für Server und Clients auszuführen. Sie können diese Werte auch während der Zertifikaterstellung überschreiben.

export key_country = "us" export key_province = "ca" export key_city = "sanfrancisco" export key_org = "tecadmin" export key_email = "[E -Mail geschützt]" Export key_ou = "Sicherheit" 

Laden Sie die Werte in der Systemumgebung.

Quellvars 

Jetzt benutzen ./Reinigen Sie alle, um die Ausgänge zu entfernen und dann zu laufen ./Build-CA zum Erstellen von CA-Zertifikaten unter/etc/openVPN/openVPN-ca/Verzeichnis/Verzeichnis.

./alles putzen ./bau-ca 

Beispielausgabe des obigen Befehls:

Generieren eines 2048 -Bit -RSA -privaten Schlüssels… +++… +++ Neue private Schlüssel zu 'ca.Key '----- Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatanfrage aufgenommen werden. Was Sie eingeben wollen. Es gibt einige Felder, aber Sie können einige Felder leer lassen, es gibt einen Standardwert, wenn Sie eingeben. '.', Das Feld wird leer gelassen. ----- Landname (2 Briefcode) [USA]: Staat oder Provinzname (Vollname) [CA]: Lokalitätsname (z. B. Stadt) [Sanfrancisco]: Organisationsname (z. , Abschnitt) [Sicherheit]: Common Name (z. B. Ihr Name oder der Hostname Ihres Servers) [Tecadmin CA]: Name [EasyRSA]: E -Mail -Adresse [[E -Mail -Schutz]: 

Jetzt ist Ihr System als Zertifikatberechtigung bereit, die Zertifikate auszustellen.

Schritt 6 - Serverzertifikatdateien generieren

Erstellen Sie zunächst die Zertifikate für den OpenVPN -Server mit dem ./build-key-server-Befehl, gefolgt vom Keyword-Server zum Generieren von Zertifikaten für den Server. Dadurch werden die erforderlichen Zertifikate und die Schlüsseldatei im Keys -Verzeichnis erstellt.

CD/etc/openvpn/openVPN-ca/ ./build-key-server-Server 

Beispielausgabe des obigen Befehls:

… Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'US' stateOrProvinceName :PRINTABLE:'CA' localityName :PRINTABLE:'SanFrancisco' organizationName :PRINTABLE:'TecAdmin' organizationalUnitName:PRINTABLE:'Security' commonName :PRINTABLE:' Server 'Name: Druckbar:' EasyRSA 'E -MailAddress: IA5String:' [E -Mail -Protected] 'Zertifikat ist bis zum 2. Januar 05:33:24 2028 GMT (3650 Tage) zertifiziert das Zertifikat? [y/n]: y 1 von 1 Zertifikatanfragen zertifiziert, Commit? [y/n] Y schreiben Sie eine Datenbank mit 1 Neueinstimmungsdatenbank aktualisiert 

Generieren Sie nun einen starken Diffie-Hellman-Schlüssel, der für den Schlüsselaustausch mit dem Befehl verwendet werden kann. Dieser Befehl kann einige Zeit dauern, um fertig zu werden.

OpenSSL DHPARAM -OUT/ETC/OpenVPN/DH2048.PEM 2048 

Erstellen Sie danach eine HMAC -Signatur, um sicherere TLS -Integritätsüberprüfungsfunktionen des Server.

OpenVPN --Genkey-Sekret/etc/openvpn/openvpn-ca/keys/ta.Taste 

Kopieren Sie nach dem Erstellen aller Dateien in das Verzeichnis /etc /openVPN.

CD/etc/openvpn/openvpn-ca/keys sudo cp ca.crt ta.Schlüsselserver.CRT -Server.Schlüssel /etc /openVPN 

Schritt 7 - OpenVPN -Service starten

Der OpenVPN -Server ist jetzt fertig. Beginnen wir den Dienst mit dem SystemCortl -Befehl. Überprüfen Sie auch den Status des Dienstes.

sudo systemctl start [E -Mail geschützt] sudo systemctl Status [E -Mail geschützt] 

Zum erfolgreichen Service -Start sehen Sie Ergebnisse wie unten.

● [E-Mail-Protected]-OpenVPN-Verbindung zum Server geladen: geladen (/lib/systemd/system/[E-Mail-Schutz]; Deaktiviert; Anbieter voreingestellt: aktiviert) aktiv: aktiv (laufend) seit dem 2018-01-04 11:09: 51 IST; Vor 6s Dokumenten: Mann: OpenVPN (8) https: // Community.OpenVPN.net/openvpn/wiki/openVPN23ManPage https: // Community.OpenVPN.net/openvpn/wiki/howto process: 4403 execstart =/usr/sbin/openvpn--daemon ovpn-%i-status/run/openvpn/%i.Status 10 -CD /etc /openVPN -HauptpID: 4404 (OpenVPN) CGROUP: /SYSTEM.Slice/System-OpenVPN.Slice/[E-Mail geschützt] └─4404/usr/sbin/openvpn--daemon ovpn-server-status/run/openvpn/server.Status 10-CD /etc /openVPN-Jan 04 11:09:51 Laitkor237 OVPN-Server [4404]: /SBIN /IP ADDR Add Dev Tun0 Local 10 10.8.0.1 Peer 10.8.0.2. Januar 04 11:09:51 Laitkor237 ovpn-server [4404]: /sbin /ip Route add 10.8.0.0/24 über 10.8.0.2. Januar 04 11:09:51 Laitkor237 ovpn-server [4404]: GID auf Nogroup Jan 04 11:09:51 Laitkor237 Ovpn-Server [4404]: UID auf niemanden 04. Januar 11:09:51 Laitkor237 OVPN-Server eingestellt [4404]: UDPV4 Link Local (gebunden): [UNDEF] Jan 04 11:09:51 LAITKOR237 OVPN-SERVER [4404]: UDPV4 Link Remote: [UNDEF] Jan 04 11:09:51 Laitkor237 OVPN-server [4404] [4404] : Multi: Multi_init CALLE, R = 256 V = 256 Jan 04 11:09:51 LAITKOR237 OVPN-SERVER [4404]: IFConfig Pool: Base = 10.8.0.4 Größe = 62, IPv6 = 0 Jan 04 11:09:51 Laitkor237 OVPN-Server [4404]: IFConfig Poolliste 04 Jan 04 11:51 Laitkor237 OVPN-Server [4404]: Initialisierungssequenz abgeschlossen 

OpenVPN erstellt einen Netzwerkschnittstellennamen Tun0. Führen Sie den folgenden Befehl aus, um die der Schnittstelle zugewiesene IP anzuzeigen. Meistens weist es die erste IP des auf Server definierten Netzwerks zu.Conf -Datei.

Ifconfig Tun0 

Schritt 8 - Client -Konfiguration generieren

Sie OpenVPN -Server können Sie verwenden. Generieren Sie nun die Client -Konfigurationsdateien einschließlich des privaten Schlüssels, Zertifikate. Ich habe diesen Vorgang für Sie erleichtert, um eine beliebige Anzahl von Konfigurationsdateien mit einem einfachen Skript zu generieren. Befolgen Sie die folgenden Schritte, um Konfigurationsdateien zu generieren. Stellen Sie sicher, dass Sie die richtige Verzeichnisstruktur verwenden.

mkdir/etc/openVPN/Clients CD/etc/openVPN/Clients 

Erstellen Sie eine Shell -Skriptdatei wie unten.

Vim Make-vpn-Client.Sch 

Kopieren Sie den folgenden Inhalt. Aktualisieren Sie die Variable OpenVPN_Server mit der IP OpenVPN -Server -IP -Adresse und speichern Sie sie.

#!/bin/bash # OpenVPN -Client -Konfigurationsdateien generieren. Client_name = $ 1 openvpn_server = "192.168.1.237 "ca_dir =/etc/openvpn/openvpn-ca client_dir =/etc/openvpn/client CD $ ca_dir Quellvars ./Build-Key $ client_name echo "Client Dev Tun Proto UDP Remote $ openvpn_server 1194 Benutzer Niemand Gruppe NOgrup Persist-Key Persist-Tun Cipher AES-128-CBC Auth SHA256 KLEISION 1 Remote-Cert-TLS Server Comp Comp Comps -lzo Verb 3 "> $ client_dir/$ client_name.ovpn cat <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir/$ client_name.ovpn echo -e "Client -Datei erstellt - $ client_dir/$ client_name.ovpn "
12345678910111213141516171819202122232425262728293031323334353637383940#!/bin/bash # OpenVPN -Client -Konfigurationsdateien generieren. Client_name = $ 1openvpn_server = "192.168.1.237 "ca_dir =/etc/openvpn/openvpn-caclient_dir =/etc/openvpn/client CD $ ca_dir Quellvars./build-key $CLIENT_NAME echo "clientdev tunproto udpremote $OPENVPN_SERVER 1194user nobodygroup nogrouppersist-keypersist-tuncipher AES-128-CBCauth SHA256key-direction 1remote-cert-tls servercomp-lzoverb 3" > $CLIENT_DIR/$ KUNDENNAME.ovpn cat <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir/$ client_name.ovpn echo -e "Client -Datei erstellt - $ client_dir/$ client_name.ovpn "

Legen Sie die Berechtigung für das neu erstellte Skript ein.

Chmod +x ./make-vpn-client.Sch 

Verwenden Sie nun dieses Skript, um eine Konfigurationsdatei für die VPN -Clients einschließlich Zertifikate und Schlüssel zu generieren. Sie müssen den Client -Namen als Befehlszeilenparameter übergeben.

./make-vpn-client.sh vpnclient1 

Drücken Sie die Eingabetaste für die Standardwerte des Zertifikats. Am Ende fordert es das Zeichen für das Zertifikat und das Bestimmungen auf. Drücken Sie y für beide Eingänge.

Das Zertifikat ist bis zum 2. Januar 07:18:10 2028 GMT (3650 Tage) zu zertifizieren. Unterschreiben Sie das Zertifikat? [y/n]: y 1 von 1 Zertifikatanfragen zertifiziert, Commit? [y/n] Y schreiben Sie eine Datenbank mit 1 Neueintragsdatenbank -Aktualisierte Client -Datei aus -/etc/openvpn/client/vpnclient1.ovpn 

Das obige Skript erstellt die Client -Konfigurationsdatei unter/etc/openvpn/client/client/verzeichnis mit dem clientnamen mit .OVPN -Erweiterung, wie in der letzten Ausgangszeile angezeigt. Verwenden Sie diese Datei, um eine Verbindung von Remote -Systemen herzustellen.

Schritt 9 - Verbinden Sie VPN von Clients

Sie benötigen die von oben generierte Konfigurationsdatei

Windows -Clients

Laden Sie die OpenVPN -GUI -Client -Software von ihrer offiziellen Download -Seite herunter und installieren Sie sich auf Ihrem System. Kopieren Sie nun die angegebenen .OVPN -Datei unter C: \ Programmdateien \ OpenVPN \ Konfigurationsdatei \ Verzeichnis. Starten Sie nun den OpenVPN -GUI -Client und verbinden Sie sich. Auf erfolgreiche Verbindung werden Sie ein grünes Symbol in Benachrichtigungen mit rechtsköpfigen Benachrichtigungen erhalten. Sie können Status per Rigth anzeigen Klicken Sie auf Symbol.

Linux -Clients

Auf Linux -Clients müssen Sie zunächst OpenVPN -Pakete installieren. Verwenden Sie danach den folgenden Befehl, um eine Verbindung zum OpenVPN -Server mit der angegebenen Client -Konfigurationsdatei herzustellen.

OpenVPN - -Config Client1.ovpn 

Nach dem erfolgreichen Verbindungsverbindung ägt OpenVPN Ihrem System eine IP -Adresse zu. Verwenden Sie den folgenden Befehl, um die zugewiesene IP -Adresse zu überprüfen.

Ifconfig Tun0 

[Ausgang]

TUN0 LINK CNAP: UNSPEC HWADDR 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 INET ADDR: 10.8.0.18 P-T-P: 10.8.0.17 Maske: 255.255.255.255 UP -Pointopoint Ausführen von Noarp Multicast MTU: 1500 Metrik: 1 RX -Pakete: 0 Fehler: 0 gesunken: 0 Überrungen: 0 Frame: 0 TX -Pakete: 0 Fehler: 0 fallen gelassen: 0 Überrungen: 0 Träger: 0 Kollisionen: 0 Txqueuelen: 100 RX -Bytes: 0 (0.0 b) tx Bytes: 0 (0.0 b)