OpenVPN ist eine Open-Source-VPN-Software, mit der wir einen SSL-basierten VPN-Tunnel erstellen können. Stellen Sie sich vor, Sie möchten sich von einem entfernten Standort aus mit dem Intranet Ihres Unternehmens verbinden. Machen Sie sich keine Sorgen, denn wenn Sie einen VPN-Server eingerichtet haben, kann dies möglich sein. Virtual Private Network (VPN) bietet einen sicheren Tunnel, der ein privates Netzwerk über ein öffentliches Netzwerk erweitert, d. h. es hilft, ein Wide Area Network (WAN) aus bestehenden Local Area Networks (LAN) zu erstellen. Dadurch können Benutzer Daten sicher über öffentliche Netzwerke senden, als wären sie direkt mit ihrem LAN verbunden.
Hier erfahren Sie mehr über OpenVPN.
Installieren und konfigurieren Sie den OpenVPN-Server auf Fedora 29/28/CentOS 7
Schauen wir uns ohne viel Theorie eine Schritt-für-Schritt-Anleitung zur Installation und Einrichtung von OpenVPN Server unter Fedora 29/28/CentOS 7 an.
Aktualisieren Sie Ihren Server.
dnf update <Installieren Sie OpenVPN und Easy-RSA auf Fedora 29/28
OpenVPN bietet einen robusten und hochflexiblen VPN-Daemon, während das Easy-RSA-Paket verwendet wird, um SSL-Schlüsselpaare zu generieren, die zum Sichern von VPN-Verbindungen verwendet werden. Sowohl OpenVPN- als auch Easy-RSA-Pakete sind in den standardmäßigen Fedora-Repos verfügbar. Führen Sie den folgenden Befehl aus, um sie zu installieren.
dnf install openvpn easy-rsaInstallieren Sie OpenVPN und Easy-RSA auf CentOS 7
OpenVPN ist nicht in den standardmäßigen CentOS-Repositories verfügbar, aber es ist in EPEL verfügbar, daher müssen Sie EPEL-Repos installieren, bevor Sie OpenVPN installieren können.
Um Extra Packages for Enterprise Linux (EPEL) hinzuzufügen, führen Sie einen der folgenden Befehle aus:
yum install epel-releaseoder
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmrpm -ivh epel-release-latest-7.noarch.rpmInstallieren Sie OpenVPN und Easy-RSA
yum install openvpn easy-rsaErstellen Sie die lokale Zertifizierungsstelle und generieren Sie Serverschlüssel und Zertifikatsdatei
Erstellen Sie ein Verzeichnis zum Speichern von Serverschlüsseln und Zertifikatsdateien.
mkdir /etc/openvpn/easy-rsaKopieren Sie die von Easy-RSA installierten Schlüssel-/Zertifikatgenerierungsskripte aus dem Standardverzeichnis in das oben erstellte Verzeichnis.
cp -air /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsaNavigieren Sie zu
/etc/openvpn/easy-rsa
Verzeichnis und starten Sie eine neue PKI.cd /etc/openvpn/easy-rsa./easyrsa init-pkiErstellen Sie das CA-Zertifikat. Dadurch werden Sie zur Eingabe des Verschlüsselungskennworts und des allgemeinen Servernamens aufgefordert.
./easyrsa build-ca...Schreiben des neuen privaten Schlüssels in '/etc/openvpn/easy-rsa/pki/private/ca.key.EajtR0SkLM'Geben Sie die PEM-Passphrase ein:PASSWORT Überprüfung – Geben Sie die PEM-Passphrase ein:PASSWORT -----...-----Allgemeiner Name (zB:Ihr Benutzer-, Host- oder Servername) [Easy-RSA CA]:Server CA-Erstellung abgeschlossen und Sie können jetzt Zertifikatsanfragen importieren und signieren. Ihre neue CA-Zertifikatsdatei zur Veröffentlichung befindet sich unter:/etc/openvpn/easy-rsa/pki/ca.crtWie bereits erwähnt, wird das CA-Zertifikat unter
/etc/openvpn/easy-rsa/pki/ca.crt
gespeichert .Generieren Sie eine Diffie-Hellman-Schlüsseldatei, die während des TLS-Handshakes mit verbindenden Clients verwendet werden kann.
./easyrsa gen-dhDadurch wird der DH-Schlüssel generiert und als
/etc/openvpn/easy-rsa/pki/dh.pem
gespeichert .Generieren Sie eine Schlüssel- und Zertifikatsdatei für den Server.
./easyrsa build-server-full server nopassGenerieren Sie eine Schlüssel- und Zertifikatsdatei für den Client.
./easyrsa build-client-full client nopassFalls Sie ein zuvor signiertes Zertifikat ungültig machen müssen, generieren Sie ein Widerrufszertifikat.
./easyrsa gen-crlDieses speichert das Sperrzertifikat unter
/etc/openvpn/easy-rsa/pki/crl.pem
.Generieren Sie einen vorinstallierten TLS/SSL-Authentifizierungsschlüssel
openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.keyKopieren Sie generierte Zertifikate/Schlüssel in das Serverkonfigurationsverzeichnis.
cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,issued,private} /etc/openvpn/server /OpenVPN-Server konfigurieren
OpenVPN hat eine Beispielkonfigurationsdatei in seinem Dokumentationsverzeichnis und um uns das Leben zu erleichtern, kopieren wir das Beispiel
/usr/share/doc/openvpn{-2.4.6,}/sample/sample-config-files/server.conf
Datei nach/etc/openvpn
zur Modifikation.Auf Fedora
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/Unter CentOS 7
cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/server/Bearbeiten Sie die
server.conf
Datei wie folgt:vim /etc/openvpn/server/server.confÄndern Sie die Datei so, dass sie wie folgt aussieht:
# Auf welchem TCP/UDP-Port soll OpenVPN lauschen?# Ändern Sie ihn entsprechend Ihrem Port und öffnen Sie ihn im Firewallport 1194# TCP- oder UDP-Server?proto udp# "dev tun " wird eine geroutete IP erstellen tunneldev tun# Pfad für Zertifikate ändernca ca.crtcert issueed/server.crtkey private/server.key# Diffie hellman exchange key pathdh dh.pem# Network topologytopology subnet# OpenVPN Network IP. Für unten nimmt der Server 10.8.0.1 für sich, # der Rest wird für clients.server 172.16.0.0 255.255.255.0 # verfügbar gemacht. Gateway def1 bypass-dhcp"# DNS-Serverpush "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"# Für Komprimierung, die mit älteren Clients kompatibel ist, verwenden Sie comp-lzo.comp-lzo# VPN mit eingeschränkten Rechten ausführenuser nonegroup niemand# Statusprotokoll filestatus /var/log/openvpn/openvpn-status.log# TLS/SSL vorinstallierte Authentifizierung keytls-auth ta.key 0# VPN-Protokollverzeichnis und Protokolldatei erstellenlog-append /var/log/openvpn/openvpn .log#Fügen Sie diese Zeile an, um den Authentifizierungsalgorithmus (HMAC) von SHA1 auf SHA512auth SHA512 zu ändernErstellen Sie das Protokollverzeichnis;
mkdir /var/log/openvpn/Speichern Sie die Konfigurationsdatei
Routing konfigurieren
IP-Weiterleitung aktivieren
Durch Aktivieren der IP-Weiterleitung wird sichergestellt, dass der Datenverkehr vom Client über die IP-Adresse des Servers geleitet wird, sodass die IP-Adresse des Clients maskiert wird.
echo "net.ipv4.ip_forward =1">> /etc/sysctl.confFühren Sie den folgenden Befehl aus, um die Änderungen zu übernehmen:
sysctl --systemOpenVPN-Dienstport durch Firewall zulassen
firewall-cmd --add-port=1194/udp --permanentAktivieren Sie IP-Masquerading
firewall-cmd --add-masquerade --permanentLeiten Sie den im angegebenen OpenVPN-Subnetz empfangenen Datenverkehr an eine Schnittstelle weiter, über die Pakete gesendet werden.
Suchen Sie die Schnittstelle, über die Pakete gesendet werden, indem Sie den folgenden Befehl ausführen:
ip route get 8.8.8.88.8.8.8 via 192.168.43.1 dev enp0s8 src 192.168.43.23Der Schnittstellenname kann für Ihren Fall anders sein. Ersetzen Sie entsprechend.
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s8 -j MASKERADELaden Sie firewalld neu, damit die Änderungen wirksam werden.
firewall-cmd --reloadStarten und setzen Sie OpenVPN start on boot.
systemctl start [email protected] enable [email protected]Wenn der OpenVPN-Dienst ausgeführt wird, erstellt er eine Tunnelschnittstelle, tun0;
ip add show tun04:tun0:mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 172.16 .0.1/24 brd 172.16.0.255 Geltungsbereich global tun0 valid_lft für immer Preferred_lft für immer inet6 fe80::1155:c60c:c009:48c9/64 Geltungsbereich Link Stable-Privacy Valid_lft für immer Preferred_lft für immer Dem VPN-Server wird die IP-Adresse 172.16.0.1 zugewiesen, während dem ersten Client 172.16.0.2 zugewiesen wird.
VPN-Client konfigurieren
Damit sich der VPN-Client mit dem VPN-Server verbinden kann, ist eine Kopie des oben generierten CA-Zertifikats, Client-Schlüssels, Client-Zertifikats und TLS/SSL-Authentifizierungsschlüssels erforderlich. Kopieren Sie daher diese Dateien auf den Zielclient und legen Sie sie in einem geeigneten Verzeichnis ab.
cd /etc/openvpn/easy-rsa/pki/scp {ca.crt,issued/client.crt,private/client.key, ta.key} [email protected]:~/OpenVPN-Client installieren
- Wenn Sie einen Linux/Unix-Server als Client verwenden, installieren Sie den OpenVPN-Client beispielsweise über den jeweiligen Paketmanager:
apt install openvpnyum install openvpn- Wenn Sie sich von einem Windows-Rechner aus verbinden, können Sie einfach das OpenVPN-Client-Installationsprogramm von der OpenVPN-Downloadseite herunterladen und installieren.
Erstellen Sie die OpenVPN-Konfigurationsdatei für den Client wie unten gezeigt. Als Beispiel habe ich das Zertifikat und die Schlüsseldateien in mein Home-Verzeichnis auf dem Client kopiert.
[email protected]:/home/amos# lsca.crt client.crt client.key ta.keyvim-client.ovpnclienttls-clientpulldev tunproto udpremote 192.168.43.69 1194resolv-retry infinitenobinddhcp-option DNS 8.8.8.8user nonegroup nogrouppersist-keypersist-tunkey-direction 1tls-auth ta.key 1comp-lzoverb 3ca ca.crtcert client.crtkey client.keyauth SHA512Um vom Client aus eine Verbindung zum OpenVPN-Server herzustellen, führen Sie einen der folgenden Befehle aus:
sudo openvpn client.ovpnoder
sudo openvpn --config client.ovpnWenn die Verbindung erfolgreich ist, sollten Sie eine
Initialization Sequence Completed
sehen .Mo 31. Dez 03:54:39 2018 TUN/TAP-Gerät tun0 geöffnetMon 31. Dez 03:54:39 2018 TUN/TAP TX-Warteschlangenlänge auf 100 gesetztMon 31. Dez 03:54:39 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup =0Mo 31. Dez 03:54:39 2018 /sbin/ip link set dev tun0 up mtu 1500Mon 31. Dez 03:54:39 2018 /sbin/ip addr add dev tun0 172.16.0.2/24 Broadcast 172.16.0.255Mon 31. Dez 03 :54:39 2018 /sbin/ip route add 192.168.43.69/32 dev enp0s8Mo 31. Dez 03:54:39 2018 /sbin/ip route add 0.0.0.0/1 via 172.16.0.1Mon 31. Dez 03:54:39 2018 /sbin/ip route add 128.0.0.0/1 via 172.16.0.1Mon 31. Dez 03:54:39 2018 GID auf nogroup gesetztMon 31. Dez 03:54:39 2018 UID auf none gesetztMon 31. Dez 03:54:39 2018 Initialisierungssequenz AbgeschlossenWenn Sie die Schnittstelle überprüfen können, sollten Sie sehen, dass eine Tunneling-Schnittstelle erstellt wurde 172.16.0.2 /24 brd 172.16.0.255 Geltungsbereich global tun0 valid_lft für immer Preferred_lft für immer inet6 fe80::dc37:c115:60f:6b86/64 Geltungsbereich Link-Flags 800 valid_lft für immer Preferred_lft für immer
Sie haben sich erfolgreich mit Ihrem VPN-Server verbunden.
Hier geht es um die Installation und Einrichtung des OpenVPN-Servers unter Fedora 29/CentOS 7. Ihr OpenVPN-Server ist voll funktionsfähig. Genießen.
Verwandte Anleitungen
Konfigurieren Sie IPSEC VPN mit StrongSwan auf Ubuntu 18.04
Konfigurieren Sie den strongSwan VPN-Client auf Ubuntu 18.04/CentOS 8
Richten Sie IPSEC VPN mit StrongSwan auf Debian 10 ein