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

OpenVPN-Server auf CentOS 8 einrichten

In diesem Handbuch erfahren Sie, wie Sie OpenVPN Server unter CentOS 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 sicheres 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 CentOS 8 einrichten

EPEL-Repository installieren

Die neuesten OpenVPN-Pakete werden von den EPEL-Repositories auf CentOS 8 und anderen ähnlichen Derivaten bereitgestellt. EPEL kann auf CentOS 8 installiert werden, indem Sie den folgenden Befehl ausführen:

dnf install epel-release -y

Installieren Sie OpenVPN auf CentOS 8

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

dnf install openvpn

Installieren Sie das Easy-RSA-CA-Dienstprogramm unter CentOS 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.

Damit Easy-RSA bei einem Upgrade keine eventuell vorgenommene Konfiguration überschreibt, kopieren Sie die Skripte in ein anderes Verzeichnis, am besten 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

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.1c FIPS 28 May 2019Enter New CA Key Passphrase:ENTER PASSWORD Neuen CA-Schlüssel-Passsatz erneut eingeben:PASSWORT WIEDER EINGEBEN Generieren eines privaten RSA-Schlüssels, 2048 Bit langer Modulus (2 Primzahlen)................................. ................................++++++.++++++e ist 65537 (0x010001)Kann nicht /etc/easy-rsa/pki/.rnd in RNG140160794502976 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. Was Sie gleich eingeben werden, ist ein sogenannter Distinguished Name oder DN. Es gibt einige Felder, aber Sie können einige Felder leer lassen ist ein Standardwert. Wenn Sie „.“ eingeben, bleibt das Feld leer.-----Allgemeiner Name (z. B.:Ihr Benutzer-, Host- oder Servername) [Easy-RSA CA]:Kifarunix -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 unter /etc/easy-rsa/pki/ca.crt gespeichert .

Diffie-Hellman-Parameter generieren

Führen Sie im selben Easy-RSA-Verzeichnis wie oben 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 speichert es die DH-Parameter in /etc/easy-rsa/pki/dh.pem 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.

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

Das Sperrzertifikat 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 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 johndoe nopass
zu generieren

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

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

mkdir /etc/openvpn/client/{koromicha,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/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/johndoe.crt,private/johndoe.key} /etc/openvpn/client/johndoe/

OpenVPN-Server auf CentOS 8 konfigurieren

OpenVPN wird mit einer Beispielkonfigurationsdatei in seinem Dokumentationsverzeichnis geliefert. Kopieren Sie die Datei nach /etc/openvpn/server/ und passen Sie es an Ihre Bedürfnisse an.

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 niemandgruppe niemandpersist-keypersist-tunstatus /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 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;

Weisen Sie OpenVPN-Clients statische IP-Adressen zu

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

Aktivieren Sie IP-Masquerading

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 über 192.168.43.1 dev enp0s3 src 192.168.43.73 uid 0

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: 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 ::2ed5:8f74:c456:96b7/64 Geltungsbereich Link stable-privacy gültig_lft für immer bevorzugt_lft für immer

Ü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.255
Socket Buffers: R=[212992->212992] S=[212992->212992]
UDPv4 link local (bound): [AF_INET][undef]:1194
UDPv4 link remote: [AF_UNSPEC]
GID set to nobody
UID set to nobody
MULTI: multi_init called, r=256 v=256
IFCONFIG POOL: base=10.8.0.2 size=252, ipv6=0
IFCONFIG POOL LIST
Initialization Sequence Completed 

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

Sie können jetzt mit der Konfiguration von OpenVPN-Clients fortfahren;

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

Konfigurieren Sie die OpenVPN-LDAP-basierte Authentifizierung.

Konfigurieren Sie die OpenVPN-LDAP-basierte Authentifizierung

Verwandte Anleitung

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. So richten Sie einen SFTP-Server unter CentOS ein

  2. Richten Sie den IPSec-VPN-Server mit Libreswan auf CentOS 8 ein

  3. OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

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

  5. Wie richte ich einen NTP-Server in CentOS ein?

So installieren Sie OpenVPN Server und Client auf CentOS 7

So richten Sie einen SVN-Server unter CentOS ein

So richten Sie OpenVPN auf Ubuntu Server ein

CentOS 8 – Ersteinrichtung des Servers

Einrichten eines OpenVPN-Servers mit CentOS und Viscosity

So richten Sie HAProxy unter CentOS 8 ein