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

OpenVPN-Server auf Rocky Linux 8 einrichten

In diesem Leitfaden erfahren Sie, wie Sie OpenVPN Server auf Rocky Linux 8 installieren und einfach einrichten. OpenVPN ist eine robuste und hochflexible Open-Source-VPN-Software, die alle Verschlüsselungs-, Authentifizierungs- und Zertifizierungsfunktionen der OpenSSL-Bibliothek verwendet zum sicheren Tunneln von IP-Netzwerken über einen einzelnen UDP- oder TCP-Port. Es erleichtert die Erweiterung eines privaten Netzwerks über ein öffentliches Netzwerk, während die Sicherheit aufrechterhalten wird, die in einem privaten Netzwerk erreicht werden würde.

OpenVPN-Server auf Rocky Linux 8 einrichten

EPEL-Repository installieren

Die neuesten OpenVPN-Pakete werden von den EPEL-Repositories auf Rocky Linux 8 und anderen ähnlichen Derivaten bereitgestellt. EPEL kann unter Rocky Linux 8 installiert werden, indem der folgende Befehl ausgeführt wird;

dnf install epel-release -y

Installieren Sie OpenVPN auf Rocky Linux 8

Sobald die EPEL-Repositorys vorhanden sind, können Sie jetzt das OpenVPN-Paket auf Rocky Linux 8 installieren, indem Sie den folgenden Befehl ausführen:

dnf installiere openvpn

Installieren Sie das Easy-RSA-CA-Dienstprogramm unter Rocky Linux 8

Das Easy-RSA-Paket ist ein Shell-basiertes CA-Dienstprogramm, das verwendet wird, um SSL-Schlüsselpaare zu generieren, die zum Sichern von VPN-Verbindungen verwendet werden.

dnf install easy-rsa

OpenVPN-Public-Key-Infrastruktur erstellen

Der erste Schritt beim Einrichten eines OpenVPN-Servers besteht darin, eine PKI zu erstellen, die aus öffentlichen und privaten Schlüsseln für den OpenVPN-Server und die Verbindungsclients sowie einem Master-Zertifizierungsstellenzertifikat und einem privaten Schlüssel zum Signieren des OpenVPN-Servers und der Clientzertifikate besteht. Wenn möglich, sollten Sie die PKI aus Sicherheitsgründen auf einem separaten Server erstellen, auf dem OpenVPN ausgeführt wird.

PKI initialisieren

Easy-RSA wird für das PKI-Management verwendet. Die Easy-RSA-Skripte werden unter /usr/share/easy-rsa Verzeichnis.

Um sicherzustellen, dass Easy-RSA im Falle eines Upgrades keine vorgenommene Konfiguration überschreibt, kopieren Sie die Skripte in ein anderes Verzeichnis, vorzugsweise unter /etc Verzeichnis.

mkdir /etc/easy-rsa
cp -air /usr/share/easy-rsa/3/* /etc/easy-rsa/

Sobald die Skripte vorhanden sind, navigieren Sie zum Verzeichnis und initialisieren Sie die PKI.

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

Beispielbefehlsausgabe;

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/easy-rsa/pki 

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

Generieren Sie als Nächstes das CA-Zertifikat und den Schlüssel, die zum Signieren von Zertifikaten verwendet werden, indem Sie die folgenden Befehle im obigen Easy-RSA-Verzeichnis ausführen.

./easyrsa build-ca

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

Using SSL:openssl OpenSSL 1.1.1g FIPS 21 Apr 2020Enter New CA Key Passphrase:Re-Enter New CA Key Passphrase:Generating RSA private key, 2048 bit langer Modul (2 Primzahlen) ..........................................++++ +................................................ ...+++++e ist 65537 (0x010001) Sie werden gleich aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden. Was Sie gleich eingeben werden, ist ein sogenannter Distinguished Name oder DN 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 (z. B.:Ihr Benutzer, Host oder Server Name) [Easy-RSA CA]:Die Kifarunix-Demo-CACA-Erstellung ist 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

Die CA-Datei ist /etc/easy-rsa/pki/ca.crt .

Diffie-Hellman-Parameter generieren

Während Sie sich im gleichen Easy-RSA-Verzeichnis wie oben befinden, führen Sie den folgenden Befehl aus, um eine Diffie-Hellman-Schlüsseldatei zu generieren, die für den Schlüsselaustausch während des TLS-Handshakes mit verbindenden Clients verwendet werden kann.

./easyrsa gen-dh

Es dauert einige Zeit, bis der Befehl abgeschlossen ist. Anschließend werden die DH-Parameter in /etc/easy-rsa/pki/dh.pem gespeichert Datei.

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

Wenn der Befehl ausgeführt wird, werden Sie aufgefordert, die oben erstellte Passphrase für den CA-Schlüssel einzugeben.

nopass deaktiviert die Verwendung von Passphrasen in Zertifikaten. ...................+++++Neuen privaten Schlüssel nach '/etc/easy-rsa/pki/easy-rsa-10170.VLZsfK/tmp.4TRoOP schreiben '-----Using configuration from /etc/easy-rsa/pki/easy-rsa-10170.VLZsfK/tmp.jTJJ7fEnter pass phrase for /etc/easy-rsa/pki/private/ca.key:Check that the Anforderung stimmt mit der Signatur übereinSignatur okDer Distinguished Name des Subjekts lautet wie folgtCommonName :ASN.1 12:'Server'Zertifikat muss bis 3. Oktober 18:03:20 2023 GMT (825 Tage)zertifiziert werden Datenbank mit 1 neuen Einträgen ausschreibenDatenbank aktualisiert vor>

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

Um einen vorinstallierten TLS/SSL-Authentifizierungsschlüssel zu generieren, der zum Hinzufügen einer zusätzlichen HMAC-Signatur zu allen SSL/TLS-Handshake-Paketen verwendet wird, um DoS-Angriffe und UDP-Port-Flooding zu vermeiden, führen Sie den folgenden Befehl aus:

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

Generieren Sie ein Widerrufszertifikat

Um ein zuvor signiertes Zertifikat ungültig zu machen, müssen Sie ein Sperrzertifikat generieren.

./easyrsa gen-crl
Using SSL:openssl OpenSSL 1.1.1g FIPS 21 Apr 2020Uusing configuration from /etc/easy-rsa/pki/easy-rsa-10284.mSzk9F/tmp.qdix0APassphrase für /etc/easy-rsa/pki/private eingeben /ca.key:Eine aktualisierte CRL wurde erstellt.CRL-Datei:/etc/easy-rsa/pki/crl.pe

Das Widerrufszertifikat wird als /etc/easy-rsa/pki/crl.pem gespeichert .

Serverzertifikate und -schlüssel in das Serververzeichnis kopieren

Kopieren Sie als Nächstes alle generierten Zertifikate/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/

OpenVPN-Client-Zertifikat und -Schlüssel generieren

Um das OpenVPN-Client-Zertifikat und den privaten Schlüssel zu generieren, führen Sie den folgenden Befehl aus;

cd /etc/easy-rsa
./easyrsa build-client-full gentoo nopass

Beispielausgabe;

Verwendung von SSL:openssl OpenSSL 1.1.1g FIPS 21. April 2020Generieren eines privaten RSA-Schlüssels........................++++++.. .................................................... .....................................+++++Neuen privaten Schlüssel nach '/etc /easy-rsa/pki/easy-rsa-10316.rcXRdS/tmp.tauo7u'-----Using configuration from /etc/easy-rsa/pki/easy-rsa-10316.rcXRdS/tmp.RxlTawEnter pass phrase for /etc/easy-rsa/pki/private/ca.key:Überprüfen Sie, ob die Anforderung mit der Signatur übereinstimmtSignatur okDer Distinguished Name des Antragstellers lautet wie folgtCommonName :ASN.1 12:„gentoo“Zertifikat muss bis 3. Oktober 18:05 zertifiziert werden:23 2023 GMT (825 Tage)Datenbank ausschreiben mit 1 neuen EinträgenDatenbank aktualisiert

wo gentoo 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 johndoe nopass
zu generieren

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

Erstellen Sie ein Verzeichnis für jeden Client im Verzeichnis des OpenVPN-Clients

mkdir /etc/openvpn/client/{gentoo,johndoe}

Kopieren Sie als Nächstes alle vom Client generierten Zertifikate/Schlüssel und das CA-Zertifikat in das Konfigurationsverzeichnis des OpenVPN-Clients. Sie können

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

OpenVPN-Server auf Rocky Linux 8 konfigurieren

OpenVPN wird mit einer Beispielkonfigurationsdatei in seinem Dokumentationsverzeichnis geliefert. Kopieren Sie die Datei nach /etc/openvpn/server/ und ändern Sie es nach Ihren Bedürfnissen.

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

Öffnen Sie die Konfiguration zur Änderung.

vim /etc/openvpn/server/server.conf

Die Datei ist stark kommentiert. Lesen Sie die Kommentare für alle Konfigurationsoptionen.

Unten sind unsere Konfigurationsoptionen in der einfachsten Form ohne Kommentare aufgeführt 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 192.168.10.3"client-to-clientkeepalive 10 120tls-auth ta .key 0 # Diese Datei ist secretcipher AES-256-CBCcomp-lzouser Nobodygroup Nobodypersist-keypersist-tunstatus /var/log/openvpn/openvpn-status.loglog-append /var/log/openvpn/openvpn.logverb 3explicit-exit-notify 1auth SHA512

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

Möchten Sie Ihren OpenVPN-Clients feste/statische IP-Adressen zuweisen? Folgen Sie der Anleitung unten;

Feste IP-Adressen für OpenVPN-Clients zuweisen

Protokollverzeichnis erstellen;

mkdir /var/log/openvpn/

Erkunden Sie die Konfiguration und nehmen Sie weitere Feinabstimmungen vor, um sie an Ihre Bedürfnisse anzupassen.

OpenVPN-Server-Routing konfigurieren

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

echo "net.ipv4.ip_forward =1">> /etc/sysctl.conf

Führen Sie den folgenden Befehl aus, um die Änderungen zu übernehmen, ohne den Server neu zu starten.

sysctl --system

OpenVPN-Dienstport durch Firewall zulassen

firewall-cmd --add-port=1194/udp --permanent

IP-Masquerading aktivieren

firewall-cmd --add-masquerade --permanent

Leiten Sie den im angegebenen OpenVPN-Subnetz empfangenen Datenverkehr, in unserem Fall beispielsweise 10.8.0.0/24, an eine Schnittstelle weiter, über die Pakete gesendet werden.

Um die Schnittstelle zu finden, über die Pakete gesendet werden, führen Sie den folgenden Befehl aus:

ip route get 8.8.8.8
8.8.8.8 via 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0 
    cache 

Der Schnittstellenname und das definierte Subnetz können für Ihren Fall unterschiedlich sein. Ersetzen Sie sie entsprechend.

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s 3 -j MASKERADE

Laden Sie firewalld neu, damit die Änderungen wirksam werden.

firewall-cmd --reload

Starten Sie OpenVPN und legen Sie fest, dass es beim Systemstart ausgeführt wird.

systemctl enable --now [email protected]

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::afd7:17a6:57ee:7f3b/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever 

Überprüfen der Protokolle;

tail /var/log/openvpn/openvpn.log
/sbin/ip addr add dev tun0 10.8.0.1/24 Broadcast 10.8.0.255Socket-Puffer:R=[212992->212992] S=[212992->212992]UDPv4 Link Local (gebunden):[AF_INET][ undef]:1194UDPv4-Link remote:[AF_UNSPEC]GID auf none gesetztUID auf none gesetztMULTI:multi_init aufgerufen, r=256 v=256IFCONFIG POOL:base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LISTinitialization Sequence Completed

Ihr OpenVPN-Server ist jetzt betriebsbereit. Damit sind wir am Ende unseres Leitfadens zur Installation und Einrichtung von OpenVPN Server unter Rocky Linux 8 angelangt.

Sie können jetzt damit fortfahren, OpenVPN-Clients zu konfigurieren und sie über den VPN-Server zu verbinden.

Installieren und konfigurieren Sie den OpenVPN-Client unter Rocky Linux 8

Andere Tutorials

Feste IP-Adressen für OpenVPN-Clients zuweisen

OpenVPN-LDAP-basierte Authentifizierung konfigurieren


OpenVPN
  1. Konfigurieren Sie Ihren OpenVPN-Server unter Linux

  2. Installieren Sie OpenVPN auf Ihrem Linux-PC

  3. Einrichtung des WebDAV-Servers unter Ubuntu Linux

  4. Installieren und konfigurieren Sie den OpenVPN-Client unter Rocky Linux 8

  5. OpenVPN-Server auf Rocky Linux 8 einrichten

So installieren Sie Webmin unter Rocky Linux 8

So konfigurieren Sie die FreeIPA-Replikation unter Rocky Linux/Alma Linux/Centos 8

Installieren Sie LAMP Stack auf Rocky Linux 8

So installieren Sie Jenkins unter Rocky Linux 8

So richten Sie einen Linux-VPN-Server und -Client mit OpenVPN ein

So installieren Sie Nginx unter Rocky Linux 9