Ein virtuelles privates Netzwerk (VPN) ist eine sichere und verschlüsselte Verbindung zwischen zwei Netzwerken und einzelnen Benutzern, die Ihre Internetverbindung und Ihre Privatsphäre online schützt. OpenVPN ist ein kostenloses Open-Source-VPN-Protokoll, das Techniken zum Erstellen sicherer Punkt-zu-Punkt-Verbindungen in gerouteten Konfigurationen implementiert. Es ist plattformübergreifend und mit allen gängigen Betriebssystemen kompatibel.
In diesem Tutorial zeigen wir Ihnen, wie Sie OpenVPN auf einem Debian 10-Server installieren und einrichten.
Voraussetzungen
- Debian 10 VPS (wir verwenden unseren NVMe 2 VPS-Plan)
- Zugriff auf das Root-Benutzerkonto (oder Zugriff auf ein Administratorkonto mit Root-Rechten)
Schritt 1:Melden Sie sich beim Server an und aktualisieren Sie die Server-OS-Pakete
Melden Sie sich zunächst über SSH als Root-Benutzer bei Ihrem Debian 10-Server an:
ssh root@IP_Address -p Port_number
Sie müssen „IP_Address“ und „Port_number“ durch die jeweilige IP-Adresse und SSH-Portnummer Ihres Servers ersetzen. Ersetzen Sie außerdem „root“ gegebenenfalls durch den Benutzernamen des Administratorkontos.
Bevor Sie beginnen, müssen Sie sicherstellen, dass alle auf dem Server installierten Debian-Betriebssystempakete auf dem neuesten Stand sind. Sie können dies tun, indem Sie die folgenden Befehle ausführen:
apt-get update -y apt-get upgrade -y
Schritt 2:OpenVPN und EasyRSA installieren
Standardmäßig ist OpenVPN im Debian-Standard-Repository enthalten. Sie können es mit dem folgenden Befehl installieren:
apt-get install openvpn -y
Nachdem das OpenVPN-Paket installiert wurde, müssen Sie EasyRSA auf Ihr System herunterladen.
EasyRSA ist ein Befehlszeilendienstprogramm zum Erstellen und Verwalten einer PKI-Zertifizierungsstelle. Es ermöglicht Ihnen, mehrere Arten von Zertifikaten zu generieren.
Es wird verwendet, um eine Stammzertifizierungsstelle zu erstellen und Zertifikate für OpenVPN anzufordern und zu signieren.
Sie können die neueste Version von EasyRSA mit dem folgenden Befehl aus dem Git-Repository herunterladen:
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvzf EasyRSA-3.0.8.tgz
Als nächstes kopieren Sie das extrahierte Verzeichnis in das OpenVPN-Verzeichnis:
cp -r EasyRSA-3.0.8 /etc/openvpn/easy-rsa
An diesem Punkt sind OpenVPN und EasyRSA auf Ihrem Server installiert.
Schritt 3:Erstellen Sie die Zertifizierungsstelle
Als Nächstes müssen Sie die Zertifizierungsstelle (CA) für OpenVPN erstellen.
Wechseln Sie zunächst mit dem folgenden Befehl in das Verzeichnis EasyRSA:
cd /etc/openvpn/easy-rsa
Als nächstes müssen Sie darin eine vars-Datei erstellen. Eine vars-Datei ist eine einfache Datei, die Easy-RSA zur Konfiguration bezieht.
Sie können es mit dem folgenden Befehl erstellen:
nano vars
Fügen Sie je nach Bedarf die folgenden Zeilen hinzu:
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 "ROSE CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "admin@example.com" set_var EASYRSA_REQ_OU "ROSE 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 "ROSE CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf" set_var EASYRSA_DIGEST "sha256"
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Als nächstes initiieren Sie die Public-Key-Infrastruktur mit dem folgenden Befehl:
./easyrsa init-pki
Sie sollten die folgende Ausgabe erhalten:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /etc/openvpn/easy-rsa/pki
Als nächstes müssen Sie den Befehl build-ca ausführen, um die Dateien ca.crt und ca.key zu erstellen. Sie können es mit dem folgenden Befehl ausführen:
./easyrsa build-ca nopass
Ihnen werden mehrere Fragen gestellt, wie unten gezeigt:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.1.1f 31 Mar 2020 Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: Generating RSA private key, 2048 bit long modulus (2 primes) ...+++++ ......................................................................+++++ e is 65537 (0x010001) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]:vpnserver CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /etc/openvpn/easy-rsa/pki/ca.crt
Schritt 4:Serverzertifikat und Schlüsseldateien generieren
Als Nächstes müssen Sie den Befehl gen-req gefolgt vom allgemeinen Namen verwenden, um den Serverschlüssel zu generieren.
./easyrsa gen-req vpnserver nopass
Sie sollten die folgende Ausgabe sehen:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.1.1f 31 Mar 2020 Generating a RSA private key .......................................................+++++ ....+++++ writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1428.Angtmh/tmp.C9prw4' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [vpnserver]: Keypair and certificate request completed. Your files are: req: /etc/openvpn/easy-rsa/pki/reqs/vpnserver.req key: /etc/openvpn/easy-rsa/pki/private/vpnserver.key
Als nächstes müssen Sie den vpnserver-Schlüssel mit Ihrem CA-Zertifikat signieren. Sie können dies mit dem folgenden Befehl tun:
./easyrsa sign-req server vpnserver
Sie sollten die folgende Ausgabe erhalten:
Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'vpnserver' Certificate is to be certified until Feb 6 14:38:52 2022 GMT (365 days) Write out database with 1 new entries Data Base Updated Certificate created at: /etc/openvpn/easy-rsa/pki/issued/vpnserver.crt
Als Nächstes müssen Sie einen starken Diffie-Hellman-Schlüssel für den Schlüsselaustausch generieren. Sie können es mit dem folgenden Befehl generieren:
./easyrsa gen-dh
Schritt 5:Alle Zertifikate und Schlüsseldateien kopieren
Als nächstes müssen Sie alle Zertifikate und Schlüsseldateien in das Verzeichnis /etc/openvpn/server/ kopieren. Sie können die mit dem folgenden Befehl kopieren:
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/vpnserver.key /etc/openvpn/server/ cp pki/issued/vpnserver.crt /etc/openvpn/server/
Schritt 6:Clientzertifikat und Schlüsseldatei erstellen
Als Nächstes müssen Sie ein Zertifikat und eine Schlüsseldatei für das Clientsystem generieren.
Sie können es mit dem folgenden Befehl erstellen:
./easyrsa gen-req vpnclient nopass
Sie sollten die folgende Ausgabe erhalten:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.1.1f 31 Mar 2020 Generating a RSA private key ....+++++ .................................+++++ writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1563.TeOf5v/tmp.i4YxLz' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [vpnclient]: Keypair and certificate request completed. Your files are: req: /etc/openvpn/easy-rsa/pki/reqs/vpnclient.req key: /etc/openvpn/easy-rsa/pki/private/vpnclient.key
Als nächstes signieren Sie den Client-Schlüssel mit dem folgenden Befehl:
./easyrsa sign-req client vpnclient
Sie sollten die folgende Ausgabe erhalten:
Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'vpnclient' Certificate is to be certified until Feb 6 14:43:18 2022 GMT (365 days) Write out database with 1 new entries Data Base Updated Certificate created at: /etc/openvpn/easy-rsa/pki/issued/vpnclient.crt
Kopieren Sie als Nächstes alle Client-Zertifikate und -Schlüssel in das Verzeichnis /etc/openvpn/client/.
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/vpnclient.crt /etc/openvpn/client/ cp pki/private/vpnclient.key /etc/openvpn/client/
Schritt 7:OpenVPN-Server konfigurieren
An diesem Punkt sind sowohl das Server- als auch das Client-Zertifikat und der Schlüssel bereit. Jetzt müssen Sie eine OpenVPN-Konfigurationsdatei erstellen und alle Zertifikate und Schlüssel definieren.
nano /etc/openvpn/server.conf
Fügen Sie die folgenden Zeilen hinzu:
port 1194 proto udp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/vpnserver.crt key /etc/openvpn/server/vpnserver.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 nogroup log-append /var/log/openvpn.log verb 3
Speichern und schließen Sie die Datei, starten Sie dann den OpenVPN-Dienst und ermöglichen Sie ihm, beim Systemneustart zu starten:
systemctl start openvpn@server systemctl enable openvpn@server
Wenn alles in Ordnung ist, wird eine neue Schnittstelle erstellt. Sie können dies mit dem folgenden Befehl überprüfen:
ip a show tun0
Sie sollten die folgende Ausgabe erhalten:
4: tun0: mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::153d:f29:39a2:571a/64 scope link stable-privacy valid_lft forever preferred_lft forever
Schritt 8:IP-Weiterleitung aktivieren
Die IP-Weiterleitung ermöglicht Ihrem Betriebssystem, die eingehenden Netzwerkpakete anzunehmen und an das andere Netzwerk weiterzuleiten. Sie können es mit dem folgenden Befehl aktivieren:
nano /etc/sysctl.conf
Kommentieren Sie die folgende Zeile aus oder fügen Sie sie hinzu:
net.ipv4.ip_forward = 1
Speichern Sie die Datei und wenden Sie dann die Konfigurationsänderungen mit dem folgenden Befehl an:
sysctl -p
Schritt 9:OpenVPN-Client installieren und konfigurieren
Als Nächstes müssen Sie den OpenVPN-Client auf einem anderen System installieren und sich mit dem OpenVPN-Server verbinden.
Installieren Sie zuerst das OpenVPN mit dem folgenden Befehl:
apt-get install openvpn -y
Kopieren Sie nach der Installation alle Client-Zertifikate und -Schlüssel vom OpenVPN-Server auf den Client-Computer. Sie können dies mit dem folgenden Befehl tun:
scp -r root@vpn-server-ip:/etc/openvpn/client .
Als nächstes ändern Sie das Verzeichnis in client und erstellen eine Client-Konfigurationsdatei:
cd client nano client.ovpn
Fügen Sie die folgenden Zeilen hinzu:
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert vpnclient.crt key vpnclient.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
Speichern und schließen Sie die Datei und verbinden Sie sich dann mit dem folgenden Befehl mit Ihrem OpenVPN-Server:
openvpn --config client.ovpn
Sobald die Verbindung hergestellt wurde, sollten Sie die folgende Ausgabe erhalten:
Sat Feb 6 14:53:50 2021 SENT CONTROL [vpnserver]: 'PUSH_REQUEST' (status=1) Sat Feb 6 14:53:50 2021 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 20,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM' Sat Feb 6 14:53:50 2021 OPTIONS IMPORT: timers and/or timeouts modified Sat Feb 6 14:53:50 2021 OPTIONS IMPORT: --ifconfig/up options modified Sat Feb 6 14:53:50 2021 OPTIONS IMPORT: route options modified
Sie können die OpenVPN-Schnittstelle auf dem Client-Rechner mit dem folgenden Befehl überprüfen:
ip a show tun0
Sie sollten die folgende Ausgabe erhalten:
4: tun0: mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::9206:94d7:8fb2:6b21/64 scope link stable-privacy valid_lft forever preferred_lft forever
Natürlich müssen Sie OpenVPN nicht installieren, wenn Sie einen unserer Managed OpenVPN-Hosting-Dienste verwenden. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, dies für Sie zu installieren. Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS . Wenn Ihnen dieser Beitrag zur Installation von OpenVPN auf Ubuntu gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.