GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> OpenVPN

OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

In diesem Handbuch erfahren Sie, wie Sie OpenVPN Server unter Ubuntu 20.04 installieren und einrichten. OpenVPN ist eine robuste und hochflexible Open-Source-VPN-Software, die alle Verschlüsselungs-, Authentifizierungs- und Zertifizierungsfunktionen der OpenSSL-Bibliothek verwendet, um IP-Netzwerke sicher über einen einzelnen UDP- oder TCP-Port zu tunneln.

Es erleichtert die Erweiterung des privaten Netzwerks über ein öffentliches Netzwerk, den Zugriff auf entfernte Standorte, das Herstellen sicherer Punkt-zu-Punkt-Verbindungen, während die Sicherheit aufrechterhalten wird, die in einem privaten Netzwerk erreicht würde.

Installieren und konfigurieren Sie den OpenVPN-Server unter Ubuntu 20.04

Systemaktualisierung ausführen

apt updateapt upgrade

Installieren Sie OpenVPN auf Ubuntu 20.04

Das OpenVPN-Paket ist in den standardmäßigen Ubuntu 20.04-Repositorys verfügbar. Daher ist die Installation so einfach wie das Ausführen des folgenden Befehls;

apt install openvpn

Installieren Sie das Easy-RSA-CA-Dienstprogramm unter Ubuntu 20.04

Das Easy-RSA-Paket enthält Dienstprogramme zum Generieren von SSL-Schlüsselpaaren, die zum Sichern von VPN-Verbindungen verwendet werden.

apt install easy-rsa

OpenVPN-Public-Key-Infrastruktur erstellen

Nachdem Sie easy-rsa installiert haben, müssen Sie die OpenVPN PKI initialisieren. Die PKI besteht aus:

  • ein öffentlicher Schlüssel und ein privater Schlüssel für den Server und jeden Client
  • ein CA-Zertifikat (Master Certificate Authority) und einen Schlüssel, der verwendet wird, um jedes der Server- und Client-Zertifikate zu signieren.

Bevor Sie fortfahren, kopieren Sie das easy-rsa-Konfigurationsverzeichnis an einen anderen Ort, um sicherzustellen, dass zukünftige OpenVPN-Paket-Upgrades Ihre Änderungen nicht überschreiben.

cp -r /usr/share/easy-rsa /etc/ 

Als nächstes initialisieren Sie die PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Sobald die PKI initialisiert ist, /etc/easy-rsa/pki geschaffen.

Generieren Sie das Zertifikat und den Schlüssel der Zertifizierungsstelle (CA)

Als nächstes generieren Sie das CA-Zertifikat und den Schlüssel zum Signieren von OpenVPN-Server- und -Client-Zertifikaten.

cd /etc/easy-rsa/./easyrsa build-ca

Dadurch werden Sie zur Eingabe der CA-Schlüssel-Passphrase und des allgemeinen Servernamens aufgefordert.

Using SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Geben Sie die neue CA-Schlüssel-Passphrase ein:ENTER PASSWORD Neuen CA-Schlüssel-Passsatz erneut eingeben:PASSWORT WIEDER EINGEBEN Generieren des privaten RSA-Schlüssels, 2048 Bit langer Modulus (2 Primzahlen) ....................++++++............. .+++++e ist 65537 (0x010001)Kann /etc/easy-rsa/pki/.rnd nicht in RNG139840045897024 laden:Fehler:2406F079:Zufallszahlengenerator:RAND_load_file:Datei kann nicht geöffnet werden:../crypto/rand /randfile.c:98:Filename=/etc/easy-rsa/pki/.rndSie werden gleich aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden ein DN. Es gibt ziemlich viele Felder, aber Sie können einige leer lassen. Für einige Felder gibt es einen Standardwert. Wenn Sie '.' eingeben, bleibt das Feld leer. ----- Gemeinsamer Name (zB:Ihr Benutzer , Host- oder Servername) [Easy-RSA CA]:Kifarunix-demo CA CA-Erstellung abgeschlossen und Sie können jetzt Zertifikatsanfragen importieren und signieren. Ihre neue CA-Zertifikatsdatei zur Veröffentlichung befindet sich unter:/etc/easy-rsa/pki/ca.crt

Das CA-Zertifikat wird generiert und unter /etc/easy-rsa/pki/ca.crt gespeichert .

Diffie-Hellman-Parameter generieren

Generieren Sie Diffie-Hellman-Schlüssel, die für den Schlüsselaustausch während des TLS-Handshakes zwischen dem OpenVPN-Server und den sich verbindenden Clients verwendet werden. Dieser Befehl muss im Easy-RSA-Verzeichnis ausgeführt werden;

./easyrsa gen-dh

DH-Parameter der Größe 2048 erstellt unter /etc/easy-rsa/pki/dh.pem .

OpenVPN-Serverzertifikat und -schlüssel generieren

Um ein Zertifikat und einen privaten Schlüssel für den OpenVPN-Server zu generieren, führen Sie den folgenden Befehl aus:

cd /etc/easy-rsa
./easyrsa build-server-full server nopass

Geben Sie die oben erstellte Passphrase für den CA-Schlüssel ein, um die Zertifikate und Schlüssel zu generieren.

nopass deaktiviert die Verwendung von Passphrasen.

Hash-basierten Message Authentication Code (HMAC)-Schlüssel generieren

Der vorinstallierte TLS/SSL-Authentifizierungsschlüssel wird als zusätzliche HMAC-Signatur für alle SSL/TLS-Handshake-Pakete verwendet, um DoS-Angriffe und UDP-Port-Flooding zu vermeiden. Diese kann mit dem Befehl

openvpn --genkey --secret /etc/easy-rsa/pki/ta.key
generiert werden

OpenVPN-Sperrzertifikat generieren

Um ein zuvor signiertes Zertifikat ungültig zu machen, müssen Sie ein Sperrzertifikat generieren. Führen Sie das Skript im Easy-RSA-Verzeichnis aus;

./easyrsa gen-crl

Das Widerrufszertifikat wird generiert und unter /etc/easy-rsa/pki/crl.pem gespeichert .

Serverzertifikate und -schlüssel in das Serverkonfigurationsverzeichnis kopieren

Kopieren Sie alle generierten Serverzertifikate/Schlüssel in das Konfigurationsverzeichnis des OpenVPN-Servers.

cp -rp /etc/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} / etc/openvpn/server/

Generieren Sie OpenVPN-Client-Zertifikate und -Schlüssel

Zertifikate und private Schlüssel von OpenVPN-Clients können wie folgt generiert werden

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass
  • wo koromicha ist der Name des Clients, für den das Zertifikat und die Schlüssel generiert werden.
  • Verwenden Sie immer einen eindeutigen allgemeinen Namen für jeden Client, für den Sie Zertifikate und Schlüssel generieren.

Um für den zweiten Client

./easyrsa build-client-full janedoe nopass
zu generieren

Sie können sehen, wie Sie easyrsa verwenden Befehl mit ./easyrsa --help .

Kopieren Sie Client-Zertifikate und -Schlüssel in das Client-Verzeichnis

Erstellen Sie Verzeichnisse für OpenVPN-Clients. Zum Beispiel haben wir Zertifikate und Schlüsseldateien für zwei Clients generiert, koromicha und janedoe, daher erstellen wir Verzeichnisse als:

mkdir /etc/openvpn/client/{koromicha,janedoe}

Kopieren Sie danach die vom Client generierten Zertifikate/Schlüssel und das Server-CA-Zertifikat in das OpenVPN-Client-Konfigurationsverzeichnis. Sie können

cp -rp /etc/easy-rsa/pki/{ca.crt,issued/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

OpenVPN-Server auf Ubuntu 20.04 konfigurieren

Der nächste Schritt ist die Konfiguration des OpenVPN-Servers. Kopieren Sie die OpenVPN-Beispielserverkonfiguration nach /etc/openvpn/server Verzeichnis wie unten gezeigt;

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/

Extrahieren Sie die Konfiguration und passen Sie sie an Ihre Bedürfnisse an;

cd /etc/openvpn/server/gunzip server.conf.gz
vim /etc/openvpn/server/server.conf

So sieht unsere Beispielkonfiguration ohne Kommentare aus. Die Konfiguration ist ausführlich kommentiert, um Ihnen zu helfen, die Verwendung verschiedener Optionen zu verstehen.

port 1194
proto udp
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 192.168.2.11"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512 

Speichern und beenden Sie die Konfiguration, sobald Sie mit der Bearbeitung fertig sind.

OpenVPN-IP-Weiterleitung konfigurieren

Um sicherzustellen, dass der Datenverkehr vom Client über die IP-Adresse des OpenVPN-Servers geleitet wird (hilft, die Client-IP-Adresse zu maskieren), müssen Sie die IP-Weiterleitung auf dem OpenVPN-Server aktivieren.

Entkommentieren Sie die Zeile net.ipv4.ip_forward=1 , auf /etc/sysctl.conf um die Paketweiterleitung für IPv4 zu aktivieren

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

Wenden Sie die Änderungen an, ohne den Server neu zu starten.

sysctl --system

OpenVPN-Dienstport durch Firewall zulassen;

ufw allow 1194/udp

IP-Masquerading auf UFW konfigurieren

Finden Sie Ihre Standardschnittstelle, über die Ihre Pakete gesendet werden.

ip route get 8.8.8.8
8.8.8.8 über 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0

Aktualisieren Sie als Nächstes die UFW-Regeln;

vim /etc/ufw/before.rules

Fügen Sie die folgenden hervorgehobenen Zeilen unmittelbar vor *filter hinzu Tisch Einstellungen. Beachten Sie, dass die verwendete Schnittstelle mit dem obigen Schnittstellennamen übereinstimmen sollte.

...*nat:POSTROUTING ACCEPT [0:0]-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADECOMMIT # Diese Pflichtzeilen nicht löschen, sonst kommt es zu Fehlern*filter...

Speichern und beenden Sie die Konfiguration.

UFW-Paketweiterleitung aktivieren;

sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

UFW neu laden;

ufw neu laden

Ausführen von OpenVPN-Server auf Ubuntu 20.04

Starten und aktivieren Sie den OpenVPN-Server, damit er beim Systemstart ausgeführt wird;

systemctl enable --now [email protected]

Überprüfen des Status;

systemctl status [email protected]
[email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-01 16:07:33 UTC; 3s ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 11980 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 2281)
     Memory: 1.0M
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─11980 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

May 01 16:07:33 vpn.kifarunix-demo.com systemd[1]: Starting OpenVPN service for server...
May 01 16:07:33 vpn.kifarunix-demo.com systemd[1]: Started OpenVPN service for server. 

Wenn der OpenVPN-Dienst ausgeführt wird, erstellt er eine Tunneling-Schnittstelle, tun0;

ip add s
...
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::1989:2bf2:1e7f:7415/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever 

Überprüfen Sie auch unbedingt die Protokolle;

tail /var/log/openvpn/openvpn.log
/sbin/ip link set dev tun0 up mtu 1500/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255 IPv4/IPv6-Protokoll konnte nicht bestimmt werden. AF_INETSocket-Puffer verwenden:R=[212992->212992] S=[212992->212992]UDPv4-Link lokal (gebunden):[AF_INET][undef]:1194UDPv4-Link remote:[AF_UNSPEC]MULTI:multi_init aufgerufen, r=256 v =256IFCONFIG POOL:base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LISTInitialisierungssequenz abgeschlossen 

Herrlich. Der OpenVPN-Server ist jetzt bereit. Damit endet unsere Anleitung zur Installation von OpenVPN Server auf Ubuntu 20.04.

Sie können nun Ihre Clients entsprechend konfigurieren.

Verwandte Tutorials

Installieren und konfigurieren Sie den OpenVPN-Client unter CentOS 8/Ubuntu 18.04

Konfigurieren Sie die OpenVPN-LDAP-basierte Authentifizierung

Konfigurieren Sie IPSEC VPN mit StrongSwan auf Ubuntu 18.04

Konfigurieren Sie den strongSwan VPN-Client auf Ubuntu 18.04/CentOS 8

Stellen Sie eine Verbindung zu Cisco VPN her, indem Sie die PCF-Datei auf Ubuntu verwenden

OpenVPN
  1. Ersteinrichtung des Servers mit Ubuntu 14.04

  2. OpenVPN-Server auf CentOS 8 einrichten

  3. Installieren und konfigurieren Sie den OpenVPN-Server FreeBSD 12

  4. OpenVPN-Server auf Fedora 29/CentOS 7 installieren und einrichten

  5. So installieren und konfigurieren Sie den OpenVPN-Server unter Ubuntu 20.04

Installieren und konfigurieren Sie VNC unter Ubuntu 20.04

So richten Sie OpenVPN auf Ubuntu Server ein

So richten Sie einen OpenVPN-Server unter Ubuntu 22.04 ein und konfigurieren ihn

Einrichten eines OpenVPN-Servers mit Ubuntu und Viscosity

Plex Media Server auf Ubuntu 22.04 LTS installieren und einrichten

So installieren Sie OpenVPN unter Ubuntu 16.04 LTS