Ein VPN „Virtual Private Network“ ist ein privates Netzwerk, das Benutzeridentität, Herkunft und Daten durch Verschlüsselung verbirgt. Sein Hauptzweck ist der Datenschutz des Benutzers und die sichere Verbindung zum Internet. Da Daten ausgeblendet werden, können Sie auf Daten zugreifen, die normalerweise durch geografische Beschränkungen blockiert sind.
OpenVPN ist eine Open-Source-VPN-Software, die sowohl eine Software als auch ein Protokoll für sich ist. Es wird sehr geschätzt, da es weiterhin Firewalls umgeht.
Dieses Tutorial zeigt Ihnen Schritt für Schritt, wie Sie einen OpenVPN-Server installieren, einrichten und mit dem OpenVPN-Client verbinden. Wir werden einen CentOS 8-Server für die Installation verwenden, das gleiche Verfahren funktioniert auch auf Rocky Linux 8 und AlmaLinux 8.
Voraussetzungen
Terminalzugriff
Ein Benutzerkonto mit sudo-Berechtigungen.
Hinweis: Die Befehle in diesem Tutorial werden auf CentOS 8 ausgeführt. Alle Methoden im Tutorial gelten auch für CentOS 7.
System aktualisieren und upgraden
Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist, indem Sie Ihr System aktualisieren und aktualisieren, indem Sie den folgenden Befehl ausführen.
sudo dnf update && sudo dnf upgrade
SELinux deaktivieren
Als Nächstes müssen Sie SELinux deaktivieren, da es mit OpenVPN in Konflikt gerät und dessen Start verhindert.
Um SELinux zu deaktivieren, öffnen Sie die SELinux-Konfigurationsdatei mit dem folgenden Befehl.
sudo nano /etc/selinux/config
Sobald die Datei mit dem Nano-Editor geöffnet wird. Suchen Sie nach SELinux und ändern Sie seinen Wert in disabled oder ersetzen Sie ihn einfach durch die folgende Codezeile.
SELINUX=disabled
Drücken Sie Strg+O und dann Strg+X, um die Datei zu speichern und zu beenden.
IP-Weiterleitung aktivieren
Jetzt müssen Sie die IP-Weiterleitung aktivieren, damit die eingehenden Pakete an verschiedene Netzwerke weitergeleitet werden können.
Um die IP-Weiterleitung zu aktivieren, öffnen Sie die sysctl-Konfigurationsdatei mit dem Nano-Editor.
sudo nano /etc/sysctl.conf
Fügen Sie der Datei den folgenden Code hinzu.
net.ipv4.ip_forward = 1
Drücken Sie Strg+O und dann Strg+X.
OpenVPN-Server installieren
Stellen Sie sicher, dass Sie das Paket epel-release installieren.
sudo dnf install epel-release -y
Jetzt können Sie OpenVPN mit dem folgenden Befehl installieren.
sudo dnf install openvpn -y
Jetzt ist OpenVPN installiert. Navigieren Sie zum Installationsordner und laden Sie easy-rsa herunter. Easy-RSA erstellt und verwaltet Zertifizierungsstellen (CAs).
cd /etc/openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
Extrahieren Sie die heruntergeladene ZIP-Datei.
sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz
Und verschieben Sie die EasyRSA-Datei in ihren Ordner.
sudo mv EasyRSA-v3.0.6 easy-rsa
Easy-RSA konfigurieren
Als nächstes müssen wir ein SSL-Zertifikat hinzufügen und erstellen. Navigieren Sie dazu zunächst in das easy-rsa-Verzeichnis.
cd /etc/openvpn/easy-rsa
Führen Sie den folgenden Befehl aus, um die vars-Datei im Nano-Editor zu öffnen.
sudo nano vars
Kopieren Sie nun die folgenden Codezeilen und fügen Sie sie in die vars-Datei ein.
set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "USA" set_var EASYRSA_REQ_PROVINCE "Newyork" set_var EASYRSA_REQ_CITY "Newyork" set_var EASYRSA_REQ_ORG "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "" set_var EASYRSA_REQ_OU "osradar EASY CA" set_var EASYRSA_KEY_SIZE 2048 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 365 set_var EASYRSA_NS_SUPPORT "no" set_var EASYRSA_NS_COMMENT "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf" set_var EASYRSA_DIGEST "sha256"
Sie können den Wert von Land, Stadt, Provinz und E-Mail Ihren Anforderungen entsprechend ändern.
Drücken Sie Strg+O und dann Strg+X.
Starten Sie nun das PKI-Verzeichnis mit dem folgenden Befehl.
./easyrsa init-pki
Schließlich können Sie Ihr CA-Zertifikat erstellen.
sudo ./easyrsa build-ca
Serverzertifikatsdateien generieren
Verwenden Sie den folgenden Befehl, um Ihr Schlüsselpaar und Ihre Zertifikatsanforderung abzurufen.
sudo ./easyrsa gen-req vitux-server nopass
Signieren Sie den Serverschlüssel mit CA
Führen Sie den folgenden Befehl aus, um Ihren Serverschlüssel mit der Zertifizierungsstelle zu signieren.
sudo ./easyrsa sign-req server vitux-server
Wir benötigen den Diffie-Hellman-Schlüssel für Schlüsselaustauschzwecke. Generieren Sie den Schlüssel, indem Sie den folgenden Befehl ausführen.
sudo ./easyrsa gen-dh
Kopieren Sie als Nächstes alle diese Dateien nach /etc/openvpn/server/ Verzeichnis.
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/vitux-server.key /etc/openvpn/server/ cp pki/issued/vitux-server.crt /etc/openvpn/server/
Clientschlüssel und Zertifikat generieren
Sie können den Client-Schlüssel erhalten, indem Sie den folgenden Befehl ausführen.
sudo ./easyrsa gen-req client nopass
Als nächstes signieren Sie Ihren Client-Schlüssel mit dem generierten CA-Zertifikat.
sudo ./easyrsa sign-req client client
Kopieren Sie diese Dateien nach /etc/openvpn/client/ Verzeichnis
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/client.crt /etc/openvpn/client/ cp pki/private/client.key /etc/openvpn/client/
OpenVPN-Server konfigurieren
Erstellen und öffnen Sie eine neue Konfigurationsdatei im Client-Verzeichnis mit dem folgenden Befehl.
sudo nano /etc/openvpn/server/server.conf
Fügen Sie dann die folgenden Codezeilen in die Datei ein.
port 1194 proto udp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/vitux-server.crt key /etc/openvpn/server/vitux-server.key dh /etc/openvpn/server/dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" duplicate-cn cipher AES-256-CBC tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 auth SHA512 auth-nocache keepalive 20 60 persist-key persist-tun compress lz4 daemon user nobody group nobody log-append /var/log/openvpn.log verb 3
Drücken Sie Strg+O und Strg+X.
OpenVPN-Dienst starten und aktivieren
Ihr OpenVPN ist startbereit. Starten und aktivieren Sie den Server mit den folgenden Befehlen.
sudo systemctl start [email protected] sudo systemctl enable [email protected]
Sie können den aktiven Status mit dem folgenden Befehl sehen und überprüfen.
systemctl status [email protected]
Beim erfolgreichen Start des OpenVPN-Servers wird eine neue Netzwerkschnittstelle erstellt. Führen Sie den folgenden Befehl aus, um die Details anzuzeigen.
ifconfig
Generieren Sie die Client-Konfigurationsdatei
Der nächste Schritt besteht darin, den Client mit dem OpenVPN-Server zu verbinden. Dazu benötigen wir die Client-Konfigurationsdatei. Führen Sie den folgenden Befehl aus, um die Client-Konfigurationsdatei zu generieren.
sudo nano /etc/openvpn/client/client.ovpn
Kopieren Sie nun den folgenden Code und fügen Sie ihn in die Datei ein.
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert client.crt key client.key cipher AES-256-CBC auth SHA512 auth-nocache tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 resolv-retry infinite compress lz4 nobind persist-key persist-tun mute-replay-warnings verb 3
Drücken Sie Strg+O, um die Änderungen zu speichern, und drücken Sie Strg+X, um den Editor zu verlassen.
Routing konfigurieren
Legen Sie die OpenVPN-Diensteinstellungen mit den folgenden Befehlen fest, um es durch die Firewall zuzulassen.
firewall-cmd --permanent --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-interface=tun0
firewall-cmd --add-masquerade firewall-cmd --permanent --add-masquerade
Legen Sie das Routing fest, um den eingehenden Datenverkehr vom VPN an das lokale Netzwerk weiterzuleiten.
routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}') firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE
Neu laden, damit die Änderungen wirksam werden.
firewall-cmd --reload
Installieren und verwenden Sie OpenVPN auf dem Client-Rechner
Sie müssen epel-release und OpenVPN wie auf der Serverseite installieren.
dnf install epel-release -y dnf install openvpn -y
Kopieren Sie nun die Client-Konfigurationsdateien vom Server mit dem unten angegebenen Befehl.
sudo scp -r [email protected]:/etc/openvpn/client .
Wechseln Sie in das Client-Verzeichnis und verbinden Sie sich mit den folgenden Befehlen mit dem OpenVPN-Server.
cd client openvpn --config client.ovpn
Führen Sie ifconfig aus, um die zugewiesene IP-Adresse anzuzeigen.
ifconfig tun0