So richten Sie einen OpenVPN-Server unter Debian 10 ein

_Eine frühere Version dieses Tutorials wurde von Justin Ellingwood _ geschrieben.

Einführung

Möchten Sie von Ihrem Smartphone oder Laptop aus sicher auf das Internet zugreifen, wenn Sie mit einem nicht vertrauenswürdigen Netzwerk wie dem WiFi eines Hotels oder eines Coffeeshops verbunden sind? Ein Virtual Private Network (VPN) ermöglicht es Ihnen, nicht vertrauenswürdige Netzwerke privat und sicher zu durchqueren, als wären Sie in einem privaten Netzwerk. Der Datenverkehr kommt vom VPN-Server und setzt seine Reise zum Ziel fort.

In Verbindung mit HTTPS connections können Sie mit diesem Setup Ihre drahtlosen Anmeldungen und Transaktionen sichern. Sie können geografische Beschränkungen und Zensur umgehen und Ihren Standort sowie den unverschlüsselten HTTP-Datenverkehr vor dem nicht vertrauenswürdigen Netzwerk schützen.

https://openvpn.net [OpenVPN] ist eine umfassende Open-Source-VPN-Lösung mit Secure Socket Layer (SSL), die eine Vielzahl von Konfigurationen ermöglicht. In diesem Tutorial werden Sie einen OpenVPN-Server auf einem Debian 10-Server einrichten und dann den Zugriff von Windows, macOS, iOS und / oder Android darauf konfigurieren. In diesem Lernprogramm werden die Installations- und Konfigurationsschritte für jedes dieser Setups so einfach wie möglich gehalten.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie Zugriff auf einen Debian 10-Server, um Ihren OpenVPN-Dienst zu hosten. Sie müssen einen Nicht-Root-Benutzer mit den Rechten "+ sudo +" konfigurieren, bevor Sie dieses Handbuch starten. Sie können unserer Debian 10 - Handbuch zur Ersteinrichtung des Servers folgen, um einen Benutzer mit den entsprechenden Berechtigungen einzurichten. Das verlinkte Tutorial richtet auch eine * Firewall * ein, von der angenommen wird, dass sie in diesem Handbuch vorhanden ist.

Darüber hinaus benötigen Sie einen separaten Computer als Zertifizierungsstelle. Obwohl es technisch möglich ist, Ihren OpenVPN-Server oder Ihren lokalen Computer als Zertifizierungsstelle zu verwenden, wird dies nicht empfohlen, da hierdurch Ihr VPN für einige Sicherheitslücken geöffnet wird. Gemäß der offiziellen OpenVPN-Dokumentation sollten Sie Ihre Zertifizierungsstelle auf einem eigenständigen Computer platzieren, der für das Importieren und Signieren von Zertifikatanforderungen vorgesehen ist. Aus diesem Grund wird in diesem Handbuch davon ausgegangen, dass sich Ihre Zertifizierungsstelle auf einem separaten Debian 10-Server befindet, der auch einen Nicht-Root-Benutzer mit den Rechten "+ sudo +" und einer grundlegenden Firewall hat.

Wenn Sie die Kennwortauthentifizierung während der Konfiguration dieser Server deaktivieren, können später in diesem Handbuch Probleme beim Übertragen von Dateien zwischen diesen Servern auftreten. Um dieses Problem zu beheben, können Sie die Kennwortauthentifizierung auf jedem Server erneut aktivieren. Alternativ können Sie für jeden Server ein SSH-Schlüsselpaar generieren und dann den öffentlichen SSH-Schlüssel des OpenVPN-Servers zur Datei "+ authorized_keys" des CA-Computers hinzufügen und umgekehrt. Anweisungen zum Einrichten von SSH-Schlüsseln unter Debian 10 finden Sie unter How to Setup SSH Keys unter Debian 10 dieser Lösungen.

Wenn Sie diese Voraussetzungen erfüllt haben, können Sie mit Schritt 1 dieses Tutorials fortfahren.

Schritt 1 - Installieren von OpenVPN und Easy RSA

Aktualisieren Sie zunächst den Paketindex Ihres * VPN-Servers * und installieren Sie OpenVPN. OpenVPN ist in den Standard-Repositorys von Debian verfügbar, so dass Sie für die Installation "+ apt +" verwenden können:

sudo apt update
sudo apt install openvpn

OpenVPN ist ein TLS / SSL-VPN. Dies bedeutet, dass Zertifikate verwendet werden, um den Datenverkehr zwischen Server und Clients zu verschlüsseln. Um vertrauenswürdige Zertifikate auszustellen, richten Sie Ihre eigene einfache Zertifizierungsstelle (CA) ein. Dazu laden wir die neueste Version von EasyRSA herunter, mit der wir unsere CA Public Key-Infrastruktur (PKI) aus dem offiziellen GitHub-Repository des Projekts erstellen.

Wie in den Voraussetzungen erwähnt, wird die Zertifizierungsstelle auf einem eigenständigen Server erstellt. Der Grund für diesen Ansatz ist, dass ein Angreifer, wenn er Ihren Server infiltrieren könnte, auf Ihren privaten CA-Schlüssel zugreifen und ihn zum Signieren neuer Zertifikate verwenden kann, um Zugriff auf Ihr VPN zu erhalten. Dementsprechend kann durch die Verwaltung der Zertifizierungsstelle von einem eigenständigen Computer aus verhindert werden, dass nicht autorisierte Benutzer auf Ihr VPN zugreifen. Beachten Sie auch, dass empfohlen wird, den CA-Server ausgeschaltet zu lassen, wenn Sie ihn nicht zum Signieren von Schlüsseln verwenden, um weitere Vorsichtsmaßnahmen zu treffen.

Um mit dem Aufbau der CA- und PKI-Infrastruktur zu beginnen, laden Sie mit "+ wget " die neueste Version von EasyRSA auf * Ihren CA-Rechner und Ihren OpenVPN-Server * herunter. Um die neueste Version zu erhalten, rufen Sie die Seite https://github.com/OpenVPN/easy-rsa/releases[*Releases* im offiziellen EasyRSA GitHub-Projekt auf.] Kopieren Sie den Download-Link für die Datei mit der Endung " .tgz +" `, und fügen Sie es dann in den folgenden Befehl ein:

wget -P ~/

Dann extrahiere das Archiv:

cd ~
tar xvf EasyRSA-unix-v.tgz

Sie haben die erforderliche Software erfolgreich auf Ihrem Server und CA-Computer installiert. Konfigurieren Sie anschließend die von EasyRSA verwendeten Variablen und richten Sie ein CA-Verzeichnis ein, aus dem Sie die Schlüssel und Zertifikate generieren, die Ihr Server und Ihre Clients für den Zugriff auf das VPN benötigen.

Schritt 2 - Konfigurieren der EasyRSA-Variablen und Erstellen der Zertifizierungsstelle

EasyRSA wird mit einer Konfigurationsdatei geliefert, die Sie bearbeiten können, um eine Reihe von Variablen für Ihre Zertifizierungsstelle zu definieren.

Navigieren Sie auf Ihrem * CAR-Computer * zum Easy RSA-Verzeichnis:

cd ~/EasyRSA-v/

In diesem Verzeichnis befindet sich eine Datei mit dem Namen "+ vars.example". Erstellen Sie eine Kopie dieser Datei und benennen Sie die Kopie + vars + ohne Dateierweiterung:

cp vars.example vars

Öffnen Sie diese neue Datei mit Ihrem bevorzugten Texteditor:

nano vars

Suchen Sie die Einstellungen, die die Feldstandards für neue Zertifikate festlegen. Es wird ungefähr so ​​aussehen:

~ / EasyRSA-v3.0.6 / vars

. . .

#set_var EASYRSA_REQ_COUNTRY    "US"
#set_var EASYRSA_REQ_PROVINCE   "California"
#set_var EASYRSA_REQ_CITY       "San Francisco"
#set_var EASYRSA_REQ_ORG        "Copyleft Certificate Co"
#set_var EASYRSA_REQ_EMAIL      "[email protected]"
#set_var EASYRSA_REQ_OU         "My Organizational Unit"

. . .

Kommentieren Sie diese Zeilen aus und aktualisieren Sie die hervorgehobenen Werte wie gewünscht. Lassen Sie sie jedoch nicht leer:

~ / EasyRSA-v3.0.6 / vars

. . .

set_var EASYRSA_REQ_COUNTRY    ""
set_var EASYRSA_REQ_PROVINCE   ""
set_var EASYRSA_REQ_CITY       ""
set_var EASYRSA_REQ_ORG        ""
set_var EASYRSA_REQ_EMAIL      ""
set_var EASYRSA_REQ_OU         ""

. . .

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Im Easy RSA-Verzeichnis befindet sich ein Skript mit dem Namen "+ easyrsa", mit dem eine Reihe von Aufgaben zum Erstellen und Verwalten der Zertifizierungsstelle ausgeführt werden. Führen Sie dieses Skript mit der Option "+ init-pki +" aus, um die Infrastruktur für öffentliche Schlüssel auf dem CA-Server zu initiieren:

./easyrsa init-pki
Output. . .
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home//EasyRSA-v/pki

Rufen Sie danach das Skript "+ easyrsa " erneut auf und folgen Sie ihm mit der Option " build-ca ". Dadurch wird die Zertifizierungsstelle erstellt und es werden zwei wichtige Dateien erstellt - " ca.crt" und "+ ca.key" -, die die öffentlichen und privaten Seiten eines SSL-Zertifikats ausmachen.

  • "+ ca.crt " ist die öffentliche Zertifikatsdatei der Zertifizierungsstelle, die im Kontext von OpenVPN verwendet wird, um Server und Client darüber zu informieren, dass sie Teil desselben Vertrauensnetzes sind und nicht von jemandem, der einen Man-in-the-Vorgang ausführt -Mittelangriff. Aus diesem Grund benötigen Ihr Server und alle Ihre Clients eine Kopie der Datei " ca.crt +".

  • + ca.key + ist der private Schlüssel, mit dem der CA-Computer Schlüssel und Zertifikate für Server und Clients signiert. Wenn ein Angreifer Zugriff auf Ihre Zertifizierungsstelle und im Gegenzug auf Ihre "+ ca.key " - Datei erhält, kann er Zertifikatanforderungen signieren und Zugriff auf Ihr VPN erhalten, wodurch dessen Sicherheit beeinträchtigt wird. Aus diesem Grund sollte sich Ihre " ca.key +" - Datei * nur * auf Ihrem CA-Computer befinden und im Idealfall sollte Ihr CA-Computer offline bleiben, wenn Sie Zertifikatsanforderungen nicht als zusätzliche Sicherheitsmaßnahme signieren.

Wenn Sie nicht bei jeder Interaktion mit Ihrer Zertifizierungsstelle zur Eingabe eines Kennworts aufgefordert werden möchten, können Sie den Befehl "+ build-ca " mit der Option " nopass +" wie folgt ausführen:

./easyrsa build-ca nopass

In der Ausgabe werden Sie aufgefordert, den gemeinsamen Namen Ihrer Zertifizierungsstelle zu bestätigen:

Output. . .
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

Der allgemeine Name ist der Name, der verwendet wird, um im Kontext der Zertifizierungsstelle auf diesen Computer zu verweisen. Sie können eine beliebige Zeichenfolge für den allgemeinen Namen der Zertifizierungsstelle eingeben, aber der Einfachheit halber drücken Sie "+ ENTER +", um den Standardnamen zu übernehmen.

Damit ist Ihre Zertifizierungsstelle eingerichtet und kann mit dem Signieren von Zertifikatsanforderungen beginnen.

Schritt 3 - Erstellen des Serverzertifikats, des Schlüssels und der Verschlüsselungsdateien

Nachdem Sie eine Zertifizierungsstelle eingerichtet haben, können Sie eine Anforderung für einen privaten Schlüssel und ein Zertifikat von Ihrem Server generieren und die Anforderung dann zur Signierung an Ihre Zertifizierungsstelle übertragen und das erforderliche Zertifikat erstellen. Sie können auch einige zusätzliche Dateien erstellen, die während des Verschlüsselungsvorgangs verwendet werden.

Navigieren Sie zunächst zum EasyRSA-Verzeichnis auf Ihrem * OpenVPN-Server *:

cd EasyRSA-v/

Führen Sie von dort aus das Skript "+ easyrsa " mit der Option " init-pki +" aus. Obwohl Sie diesen Befehl bereits auf dem CA-Computer ausgeführt haben, muss er hier ausgeführt werden, da Ihr Server und Ihre CA separate PKI-Verzeichnisse haben:

./easyrsa init-pki

Rufen Sie dann das Skript "+ easyrsa " erneut auf, diesmal mit der Option " gen-req ", gefolgt von einem allgemeinen Namen für die Maschine. Auch dies könnte alles sein, was Sie wollen, aber es kann hilfreich sein, es beschreibend zu machen. In diesem Tutorial lautet der allgemeine Name des OpenVPN-Servers einfach "Server". Stellen Sie sicher, dass Sie auch die Option " nopass +" verwenden. Andernfalls wird die Anforderungsdatei durch ein Kennwort geschützt, was später zu Berechtigungsproblemen führen kann:

./easyrsa gen-req server nopass

Dadurch wird ein privater Schlüssel für den Server und eine Zertifikatsanforderungsdatei mit dem Namen "+ server.req " erstellt. Kopieren Sie den Serverschlüssel in das Verzeichnis ` / etc / openvpn / +`:

sudo cp ~/EasyRSA-v/pki/private/server.key /etc/openvpn/

Übertragen Sie die Datei "+ server.req +" mit einer sicheren Methode (wie SCP in unserem Beispiel unten) auf Ihren CA-Computer:

scp ~/EasyRSA-v/pki/reqs/server.req @:/tmp

Navigieren Sie anschließend auf * Ihrem CAR-Computer * zum Easy RSA-Verzeichnis:

cd EasyRSA-v/

Importieren Sie die Datei "+ server.req " erneut mit dem Skript " easyrsa +" und folgen Sie dabei dem Dateipfad mit dem allgemeinen Namen:

./easyrsa import-req /tmp/server.req server

Unterschreiben Sie dann die Anfrage, indem Sie das Skript "+ easyrsa " mit der Option " sign-req " ausführen, gefolgt vom Typ "_request" und dem allgemeinen Namen. Der Anfragetyp kann entweder " client" oder "+ server iso" für die Zertifikatanforderung des OpenVPN-Servers sein. Verwenden Sie unbedingt den Anfragetyp "+ server +":

./easyrsa sign-req server server

In der Ausgabe werden Sie aufgefordert, zu überprüfen, ob die Anforderung von einer vertrauenswürdigen Quelle stammt. Geben Sie "+ yes" oder "+ ENTER" ein, um dies zu bestätigen:

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 1080 days:

subject=
   commonName                = server


Type the word 'yes' to continue, or any other input to abort.
 Confirm request details:

Wenn Sie Ihren CA-Schlüssel verschlüsselt haben, werden Sie zu diesem Zeitpunkt zur Eingabe Ihres Kennworts aufgefordert.

Übertragen Sie als Nächstes das signierte Zertifikat mithilfe einer sicheren Methode zurück auf Ihren VPN-Server:

scp pki/issued/server.crt @:/tmp

Übertragen Sie vor dem Abmelden von Ihrem CA-Computer auch die Datei "+ ca.crt +" auf Ihren Server:

scp pki/ca.crt @:/tmp

Melden Sie sich als nächstes wieder bei Ihrem OpenVPN-Server an und kopieren Sie die Dateien "+ server.crt " und " ca.crt " in Ihr " / etc / openvpn / +" -Verzeichnis:

sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/

Navigieren Sie dann zu Ihrem EasyRSA-Verzeichnis:

cd EasyRSA-v/

Erstellen Sie von dort aus einen starken Diffie-Hellman-Schlüssel, der während des Schlüsselaustauschs verwendet werden soll, indem Sie Folgendes eingeben:

./easyrsa gen-dh

Dies kann einige Minuten dauern. Generieren Sie anschließend eine HMAC-Signatur, um die TLS-Integritätsprüfungsfunktionen des Servers zu stärken:

sudo openvpn --genkey --secret ta.key

Wenn der Befehl beendet ist, kopieren Sie die beiden neuen Dateien in Ihr + / etc / openvpn / + Verzeichnis:

sudo cp ~/EasyRSA-v/ta.key /etc/openvpn/
sudo cp ~/EasyRSA-v/pki/dh.pem /etc/openvpn/

Damit sind alle von Ihrem Server benötigten Zertifikats- und Schlüsseldateien generiert. Sie können die entsprechenden Zertifikate und Schlüssel erstellen, mit denen Ihr Client-Computer auf Ihren OpenVPN-Server zugreift.

Schritt 4 - Erstellen eines Client-Zertifikats und eines Schlüsselpaars

Obwohl Sie auf Ihrem Client-Computer einen privaten Schlüssel und eine Zertifikatanforderung generieren und diese dann zur Signierung an die Zertifizierungsstelle senden können, beschreibt dieses Handbuch einen Vorgang zum Generieren der Zertifikatanforderung auf dem Server. Dies hat den Vorteil, dass wir ein Skript erstellen können, das automatisch Client-Konfigurationsdateien generiert, die alle erforderlichen Schlüssel und Zertifikate enthalten. Auf diese Weise müssen Sie keine Schlüssel, Zertifikate und Konfigurationsdateien auf die Clients übertragen und können den Vorgang des Beitritts zum VPN optimieren.

Für dieses Handbuch erstellen wir ein einzelnes Paar aus Client-Schlüssel und Zertifikat. Wenn Sie mehr als einen Kunden haben, können Sie diesen Vorgang für jeden Kunden wiederholen. Beachten Sie jedoch, dass Sie für jeden Client einen eindeutigen Namenswert an das Skript übergeben müssen. In diesem Lernprogramm wird das erste Zertifikat / Schlüssel-Paar als "+ client1 +" bezeichnet.

Erstellen Sie zunächst eine Verzeichnisstruktur in Ihrem Ausgangsverzeichnis, um das Client-Zertifikat und die Schlüsseldateien zu speichern:

mkdir -p ~/client-configs/keys

Da Sie die Zertifikats- / Schlüsselpaare und Konfigurationsdateien Ihrer Clients in diesem Verzeichnis speichern, sollten Sie die Berechtigungen jetzt aus Sicherheitsgründen sperren:

chmod -R 700 ~/client-configs

Navigieren Sie anschließend zum EasyRSA-Verzeichnis zurück und führen Sie das Skript "+ easyrsa " mit den Optionen " gen-req " und " nopass +" sowie dem allgemeinen Namen für den Client aus:

cd ~/EasyRSA-v/
./easyrsa gen-req client1 nopass

Drücken Sie + ENTER +, um den allgemeinen Namen zu bestätigen. Kopieren Sie dann die Datei + client1.key + in das zuvor erstellte Verzeichnis + / client-configs / keys / +:

cp pki/private/client1.key ~/client-configs/keys/

Übertragen Sie als Nächstes die Datei "+ client1.req +" mit einer sicheren Methode auf Ihren CA-Computer:

scp pki/reqs/client1.req @:/tmp

Melden Sie sich bei Ihrem CA-Computer an, navigieren Sie zum EasyRSA-Verzeichnis und importieren Sie die Zertifikatanforderung:

ssh @
cd EasyRSA-v/
./easyrsa import-req /tmp/client1.req client1

Unterschreiben Sie dann die Anforderung wie im vorherigen Schritt für den Server. Stellen Sie diesmal jedoch sicher, dass Sie den Anfragetyp "+ client +" angeben:

./easyrsa sign-req client client1

Geben Sie an der Eingabeaufforderung "+ yes +" ein, um zu bestätigen, dass Sie die Zertifikatsanforderung signieren möchten und dass sie von einer vertrauenswürdigen Quelle stammt:

OutputType the word 'yes' to continue, or any other input to abort.
 Confirm request details:

Wenn Sie Ihren CA-Schlüssel verschlüsselt haben, werden Sie hier zur Eingabe Ihres Kennworts aufgefordert.

Dadurch wird eine Client-Zertifikatdatei mit dem Namen "+ client1.crt +" erstellt. Übertragen Sie diese Datei zurück auf den Server:

scp pki/issued/client1.crt @:/tmp

SSH zurück in Ihren OpenVPN-Server und kopieren Sie das Client-Zertifikat in das Verzeichnis + / client-configs / keys / +:

cp /tmp/client1.crt ~/client-configs/keys/

Kopieren Sie als nächstes die Dateien + ca.crt + und + ta.key + in das Verzeichnis + / client-configs / keys / +:

sudo cp ~/EasyRSA-v/ta.key ~/client-configs/keys/
sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

Damit sind Ihre Server- und Client-Zertifikate und -Schlüssel generiert und in den entsprechenden Verzeichnissen auf Ihrem Server gespeichert. Es gibt noch einige Aktionen, die mit diesen Dateien ausgeführt werden müssen, aber diese werden in einem späteren Schritt ausgeführt. Im Moment können Sie OpenVPN auf Ihrem Server konfigurieren.

Schritt 5 - Konfigurieren des OpenVPN-Dienstes

Nachdem sowohl die Zertifikate als auch die Schlüssel Ihres Clients und Servers generiert wurden, können Sie den OpenVPN-Dienst so konfigurieren, dass diese Anmeldeinformationen verwendet werden.

Beginnen Sie, indem Sie eine OpenVPN-Beispielkonfigurationsdatei in das Konfigurationsverzeichnis kopieren und dann extrahieren, um sie als Grundlage für Ihr Setup zu verwenden:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Öffnen Sie die Serverkonfigurationsdatei in Ihrem bevorzugten Texteditor:

sudo nano /etc/openvpn/server.conf

Suchen Sie den Abschnitt HMAC, indem Sie nach der Direktive + tls-auth + suchen. Diese Zeile sollte bereits unkommentiert sein. Wenn dies nicht der Fall ist, entfernen Sie das "*; *", um das Kommentarzeichen zu entfernen.

/etc/openvpn/server.conf

tls-auth ta.key 0 # This file is secret

Suchen Sie als nächstes den Abschnitt über kryptografische Chiffren, indem Sie nach den auskommentierten "+ cipher " - Zeilen suchen. Die " AES-256-CBC" -Verschlüsselung bietet ein gutes Maß an Verschlüsselung und wird gut unterstützt. Auch diese Zeile sollte bereits unkommentiert sein. Wenn dies nicht der Fall ist, entfernen Sie einfach das vorangestellte "*; *":

/etc/openvpn/server.conf

cipher AES-256-CBC

Fügen Sie darunter eine Anweisung + auth + hinzu, um den HMAC-Message-Digest-Algorithmus auszuwählen. Dafür ist + SHA256 + eine gute Wahl:

/etc/openvpn/server.conf

Suchen Sie als nächstes die Zeile mit der Direktive "+ dh ", die die Diffie-Hellman-Parameter definiert. Aufgrund einiger kürzlich an EasyRSA vorgenommener Änderungen kann sich der Dateiname für den Diffie-Hellman-Schlüssel von dem in der Beispiel-Serverkonfigurationsdatei aufgelisteten unterscheiden. Ändern Sie gegebenenfalls den hier aufgeführten Dateinamen, indem Sie das Zeichen " 2048 +" entfernen, damit es mit dem Schlüssel übereinstimmt, den Sie im vorherigen Schritt generiert haben:

/etc/openvpn/server.conf

dh dh.pem

Suchen Sie abschließend die Einstellungen für "+ Benutzer" und "+ Gruppe" und entfernen Sie das "*; *" am Anfang jeder Zeile, um die folgenden Kommentare zu entfernen:

/etc/openvpn/server.conf

user nobody
group nogroup

Die Änderungen, die Sie bis zu diesem Zeitpunkt an der Beispieldatei "+ server.conf +" vorgenommen haben, sind erforderlich, damit OpenVPN funktioniert. Die unten aufgeführten Änderungen sind optional, werden jedoch auch für viele häufig vorkommende Anwendungsfälle benötigt.

(Optional) Push-DNS-Änderungen, um den gesamten Datenverkehr über das VPN umzuleiten

Die obigen Einstellungen stellen die VPN-Verbindung zwischen den beiden Computern her, erzwingen jedoch keine Verwendung des Tunnels. Wenn Sie das VPN zum Weiterleiten des gesamten Datenverkehrs verwenden möchten, möchten Sie wahrscheinlich die DNS-Einstellungen auf die Clientcomputer übertragen.

Die Datei + server.conf + enthält einige Anweisungen, die Sie ändern müssen, um diese Funktionalität zu aktivieren. Suchen Sie den Abschnitt "+ redirect-gateway " und entfernen Sie das Semikolon "*; *" am Anfang der Zeile " redirect-gateway +", um das Kommentarzeichen zu entfernen:

/etc/openvpn/server.conf

push "redirect-gateway def1 bypass-dhcp"

Direkt darunter finden Sie den Abschnitt + dhcp-option +. Entfernen Sie erneut das "*; *" vor beiden Zeilen, um die Kommentare zu entfernen:

/etc/openvpn/server.conf

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Auf diese Weise können Clients ihre DNS-Einstellungen so konfigurieren, dass der VPN-Tunnel als Standardgateway verwendet wird.

(Optional) Passen Sie den Port und das Protokoll an

Standardmäßig verwendet der OpenVPN-Server den Port "+ 1194 " und das UDP-Protokoll, um Client-Verbindungen zu akzeptieren. Wenn Sie aufgrund der restriktiven Netzwerkumgebung, in der sich Ihre Clients möglicherweise befinden, einen anderen Port verwenden müssen, können Sie die Option " Port " ändern. Wenn Sie keine Webinhalte auf Ihrem OpenVPN-Server hosten, ist der Port " 443 +" eine beliebte Wahl, da er normalerweise durch Firewall-Regeln zulässig ist.

/etc/openvpn/server.conf

# Optional!
port

Oft ist das Protokoll auch auf diesen Port beschränkt. Wenn ja, ändern Sie "+ proto +" von UDP zu TCP:

/etc/openvpn/server.conf

# Optional!
proto

Wenn Sie das Protokoll auf TCP umstellen, müssen Sie den Wert der Direktive "+ explicit-exit-notify " von " 1 " in " 0 +" ändern, da diese Direktive nur von UDP verwendet wird. Wenn Sie dies nicht tun, während Sie TCP verwenden, wird dies zu Fehlern führen, wenn Sie den OpenVPN-Dienst starten:

/etc/openvpn/server.conf

# Optional!
explicit-exit-notify

Wenn Sie keinen anderen Port und kein anderes Protokoll verwenden müssen, sollten Sie diese beiden Einstellungen als Standardeinstellungen beibehalten.

(Optional) Zeigen Sie auf Nicht-Standardanmeldeinformationen

Wenn Sie zuvor beim Befehl ". / Build-key-server +" einen anderen Namen ausgewählt haben, ändern Sie die angezeigten Zeilen " cert " und " key " so, dass sie auf die entsprechenden Zeichen " .crt " und "" verweisen. key + `files. Wenn Sie den Standardnamen "Server" verwendet haben, ist dieser bereits korrekt eingestellt:

/etc/openvpn/server.conf

cert .crt
key .key

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Nachdem Sie alle Änderungen an der OpenVPN-Konfiguration Ihres Servers vorgenommen haben, die für Ihren speziellen Anwendungsfall erforderlich sind, können Sie einige Änderungen am Netzwerk Ihres Servers vornehmen.

Schritt 6 - Anpassen der Servernetzwerkkonfiguration

Es gibt einige Aspekte der Netzwerkkonfiguration des Servers, die optimiert werden müssen, damit OpenVPN den Datenverkehr über das VPN ordnungsgemäß weiterleiten kann. Die erste davon ist die IP-Weiterleitung, eine Methode zur Bestimmung, wohin der IP-Verkehr weitergeleitet werden soll. Dies ist wichtig für die VPN-Funktionalität, die Ihr Server bereitstellt.

Passen Sie die Standardeinstellung für die IP-Weiterleitung Ihres Servers an, indem Sie die Datei "+ / etc / sysctl.conf +" ändern:

sudo nano /etc/sysctl.conf

Suchen Sie im Inneren nach der kommentierten Zeile, die "+ net.ipv4.ip_forward" setzt. Entfernen Sie das Zeichen "* # *" ​​am Zeilenanfang, um diese Einstellung zu entfernen:

/etc/sysctl.conf

net.ipv4.ip_forward=1

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Geben Sie Folgendes ein, um die Datei zu lesen und die Werte für die aktuelle Sitzung anzupassen:

sudo sysctl -p
Outputnet.ipv4.ip_forward = 1

Wenn Sie den in den Voraussetzungen aufgeführten Debian 10 initial server setup guide gefolgt sind, sollte eine UFW-Firewall vorhanden sein . Unabhängig davon, ob Sie die Firewall verwenden, um unerwünschten Datenverkehr zu blockieren (was Sie fast immer tun sollten), benötigen Sie in diesem Handbuch eine Firewall, um einen Teil des auf dem Server eingehenden Datenverkehrs zu manipulieren. Einige der Firewall-Regeln müssen geändert werden, um Masquerading zu ermöglichen. Dies ist ein iptables-Konzept, das eine dynamische Netzwerkadressübersetzung (NAT) im laufenden Betrieb ermöglicht, um Client-Verbindungen korrekt weiterzuleiten.

Bevor Sie die Firewall-Konfigurationsdatei öffnen, um die Maskierungsregeln hinzuzufügen, müssen Sie zunächst die öffentliche Netzwerkschnittstelle Ihres Computers ermitteln. Geben Sie dazu Folgendes ein:

ip route | grep default

Ihre öffentliche Schnittstelle ist die Zeichenfolge in der Ausgabe dieses Befehls, die auf das Wort "dev" folgt. Dieses Ergebnis zeigt zum Beispiel die Schnittstelle mit dem Namen "+ eth0 +", die unten hervorgehoben ist:

Outputdefault via 203.0.113.1 dev  proto static

Wenn Sie die Schnittstelle mit Ihrer Standardroute verknüpft haben, öffnen Sie die Datei "+ / etc / ufw / before.rules +", um die entsprechende Konfiguration hinzuzufügen:

sudo nano /etc/ufw/before.rules

UFW-Regeln werden normalerweise mit dem Befehl + ufw + hinzugefügt. Die in der Datei "+ before.rules " aufgelisteten Regeln werden jedoch gelesen und vor dem Laden der herkömmlichen UFW-Regeln eingefügt. Fügen Sie oben in der Datei die markierten Zeilen hinzu. Dadurch wird die Standardrichtlinie für die Kette " POSTROUTING " in der Tabelle " nat " festgelegt und der vom VPN kommende Datenverkehr maskiert. Denken Sie daran, "+" in der Zeile "+ - A POSTROUTING +" durch die Schnittstelle zu ersetzen, die Sie im obigen Befehl gefunden haben:

/etc/ufw/before.rules

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#





eth0
eth0



# Don't delete these required lines, otherwise there will be errors
*filter
. . .

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als Nächstes müssen Sie UFW anweisen, standardmäßig auch weitergeleitete Pakete zuzulassen. Öffnen Sie dazu die Datei "+ / etc / default / ufw +":

sudo nano /etc/default/ufw

Suchen Sie die Direktive "+ DEFAULT_FORWARD_POLICY" und ändern Sie den Wert von "+ DROP" in "+ ACCEPT":

/ etc / default / ufw

DEFAULT_FORWARD_POLICY=""

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Stellen Sie als Nächstes die Firewall selbst so ein, dass der Verkehr zu OpenVPN zugelassen wird. Wenn Sie den Port und das Protokoll in der Datei "+ / etc / openvpn / server.conf " nicht geändert haben, müssen Sie den UDP-Verkehr zum Port " 1194 +" öffnen. Wenn Sie den Port und / oder das Protokoll geändert haben, ersetzen Sie die hier ausgewählten Werte.

Falls Sie den SSH-Port zum Abschluss des Lernprogramms nicht hinzugefügt haben, fügen Sie ihn auch hier hinzu:

sudo ufw allow /
sudo ufw allow OpenSSH

Deaktivieren und aktivieren Sie UFW nach dem Hinzufügen dieser Regeln erneut, um es neu zu starten und die Änderungen aus allen Dateien zu laden, die Sie geändert haben:

sudo ufw disable
sudo ufw enable

Ihr Server ist jetzt so konfiguriert, dass er den OpenVPN-Verkehr korrekt verarbeitet.

Schritt 7 - Starten und Aktivieren des OpenVPN-Dienstes

Nun können Sie den OpenVPN-Dienst auf Ihrem Server starten. Dies geschieht mit dem Dienstprogramm systemd + systemctl +.

Starten Sie den OpenVPN-Server, indem Sie den Namen Ihrer Konfigurationsdatei als Instanzvariable nach dem Namen der Systemeinheit angeben. Die Konfigurationsdatei für Ihren Server heißt "+ / etc / openvpn / .conf ". Fügen Sie also "+" zum Ende Ihrer Unit-Datei hinzu, wenn Sie sie aufrufen:

sudo systemctl start openvpn@

Stellen Sie sicher, dass der Dienst erfolgreich gestartet wurde, indem Sie Folgendes eingeben:

sudo systemctl status openvpn@server

Wenn alles gut gelaufen ist, sieht Ihre Ausgabe ungefähr so ​​aus:

Output● [email protected] - OpenVPN connection to server
  Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
  Active:  since Wed 2019-07-17 03:39:24 UTC; 29s ago
    Docs: man:openvpn(8)
          https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
          https://community.openvpn.net/openvpn/wiki/HOWTO
Main PID: 3371 (openvpn)
  Status: "Initialization Sequence Completed"
   Tasks: 1 (limit: 3587)
  Memory: 1.2M
  CGroup: /system.slice/system-openvpn.slice/[email protected]
          └─3371 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --config /etc/openvpn/server.conf --writepid /run/openvpn/

Sie können auch überprüfen, ob die OpenVPN-Schnittstelle + tun0 + verfügbar ist, indem Sie Folgendes eingeben:

ip addr show tun0

Dies gibt eine konfigurierte Schnittstelle aus:

Output3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 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::dd60:3a78:b0ca:1659/64 scope link stable-privacy
      valid_lft forever preferred_lft forever

Aktivieren Sie den Dienst nach dem Starten, damit er beim Booten automatisch gestartet wird:

sudo systemctl enable openvpn@server

Ihr OpenVPN-Dienst ist jetzt aktiv. Bevor Sie es jedoch verwenden können, müssen Sie zunächst eine Konfigurationsdatei für den Client-Computer erstellen. In diesem Tutorial wurde bereits erläutert, wie Sie Zertifikate / Schlüsselpaare für Clients erstellen. Im nächsten Schritt wird gezeigt, wie Sie eine Infrastruktur erstellen, mit der Client-Konfigurationsdateien auf einfache Weise generiert werden können.

Schritt 8 - Erstellen der Client-Konfigurationsinfrastruktur

Das Erstellen von Konfigurationsdateien für OpenVPN-Clients kann einen gewissen Aufwand bedeuten, da jeder Client eine eigene Konfiguration haben und sich an den Einstellungen ausrichten muss, die in der Konfigurationsdatei des Servers aufgeführt sind. Anstatt eine einzelne Konfigurationsdatei zu schreiben, die nur auf einem Client verwendet werden kann, wird in diesem Schritt ein Prozess zum Erstellen einer Client-Konfigurationsinfrastruktur beschrieben, mit der Sie Konfigurationsdateien im laufenden Betrieb generieren können. Sie erstellen zunächst eine Basis-Konfigurationsdatei und erstellen dann ein Skript, mit dem Sie nach Bedarf eindeutige Client-Konfigurationsdateien, Zertifikate und Schlüssel generieren können.

Erstellen Sie zunächst ein neues Verzeichnis, in dem Sie die Client-Konfigurationsdateien im zuvor erstellten Verzeichnis + client-configs + speichern:

mkdir -p ~/client-configs/files

Kopieren Sie als nächstes eine Beispiel-Client-Konfigurationsdatei in das Verzeichnis + client-configs +, um sie als Basiskonfiguration zu verwenden:

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

Öffnen Sie diese neue Datei in Ihrem Texteditor:

nano ~/client-configs/base.conf

Suchen Sie im Inneren die Direktive "+ remote ". Dies verweist den Client auf Ihre OpenVPN-Serveradresse - die öffentliche IP-Adresse Ihres OpenVPN-Servers. Wenn Sie sich entschieden haben, den vom OpenVPN-Server empfangenen Port zu ändern, müssen Sie auch " 1194 +" in den von Ihnen ausgewählten Port ändern:

~ / client-configs / base.conf

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote
. . .

Stellen Sie sicher, dass das Protokoll mit dem Wert übereinstimmt, den Sie in der Serverkonfiguration verwenden:

~ / client-configs / base.conf

proto

Entfernen Sie als Nächstes das Kommentarzeichen für die Direktiven "+ user" und "+ group", indem Sie das "*; *" am Anfang jeder Zeile entfernen:

~ / client-configs / base.conf

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Suchen Sie die Direktiven, die die Zeichen "+ a ", " cert" und "+ key" setzen. Kommentieren Sie diese Anweisungen aus, da Sie die Zertifikate und Schlüssel in Kürze in die Datei selbst einfügen werden:

~ / client-configs / base.conf

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert client.crt
key client.key

Kommentieren Sie auf ähnliche Weise die Direktive "+ tls-auth" aus, da Sie "+ to.key" direkt in die Client-Konfigurationsdatei einfügen:

~ / client-configs / base.conf

# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth ta.key 1

Spiegeln Sie die Einstellungen für "+ cipher " und " auth ", die Sie in der Datei " /etc/openvpn/server.conf +" festgelegt haben:

~ / client-configs / base.conf

Fügen Sie als nächstes die Direktive + key-direction + irgendwo in die Datei ein. Sie * müssen * dies auf "1" setzen, damit das VPN auf dem Client-Computer ordnungsgemäß funktioniert:

~ / client-configs / base.conf

Fügen Sie abschließend einige * auskommentierte * Zeilen hinzu. Obwohl Sie diese Anweisungen in jede Client-Konfigurationsdatei aufnehmen können, müssen Sie sie nur für Linux-Clients aktivieren, die mit einer "+ / etc / openvpn / update-resolv-conf " - Datei geliefert werden. Dieses Skript verwendet das Dienstprogramm " resolvconf +", um DNS-Informationen für Linux-Clients zu aktualisieren.

~ / client-configs / base.conf

Wenn auf Ihrem Client Linux ausgeführt wird und eine "+ / etc / openvpn / update-resolv-conf +" - Datei vorhanden ist, kommentieren Sie diese Zeilen aus der Konfigurationsdatei des Clients aus, nachdem sie generiert wurden.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als nächstes erstellen Sie ein einfaches Skript, das Ihre Basiskonfiguration mit den relevanten Zertifikats-, Schlüssel- und Verschlüsselungsdateien kompiliert und die generierte Konfiguration in das Verzeichnis + ~ / client-configs / files + legt. Öffnen Sie eine neue Datei mit dem Namen "+ make_config.sh " im Verzeichnis " ~ / client-configs +":

nano ~/client-configs/make_config.sh

Fügen Sie im Inneren den folgenden Inhalt hinzu und achten Sie darauf, "++" in den des Nicht-Root-Benutzerkontos Ihres Servers zu ändern:

~ / client-configs / make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=/home//client-configs/keys
OUTPUT_DIR=/home//client-configs/files
BASE_CONFIG=/home//client-configs/base.conf

cat ${BASE_CONFIG} \
   <(echo -e '<ca>') \
   ${KEY_DIR}/ca.crt \
   <(echo -e '</ca>\n<cert>') \
   ${KEY_DIR}/${1}.crt \
   <(echo -e '</cert>\n<key>') \
   ${KEY_DIR}/${1}.key \
   <(echo -e '</key>\n<tls-auth>') \
   ${KEY_DIR}/ta.key \
   <(echo -e '</tls-auth>') \
   > ${OUTPUT_DIR}/${1}.ovpn

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Stellen Sie vor dem Fortfahren sicher, dass Sie diese Datei als ausführbar markieren, indem Sie Folgendes eingeben:

chmod 700 ~/client-configs/make_config.sh

Dieses Skript erstellt eine Kopie der von Ihnen erstellten Datei + base.conf +, sammelt alle Zertifikats- und Schlüsseldateien, die Sie für Ihren Client erstellt haben, extrahiert deren Inhalt, hängt sie an die Kopie der Basiskonfigurationsdatei an und exportiert sie Der gesamte Inhalt wird in einer neuen Client-Konfigurationsdatei gespeichert. Das bedeutet, dass die Konfigurations-, Zertifikat- und Schlüsseldateien des Clients nicht separat verwaltet werden müssen, sondern alle erforderlichen Informationen an einem Ort gespeichert werden. Dies hat den Vorteil, dass Sie, falls Sie in Zukunft jemals einen Client hinzufügen müssen, dieses Skript ausführen können, um die Konfigurationsdatei schnell zu erstellen und sicherzustellen, dass alle wichtigen Informationen an einem einzigen, leicht zugänglichen Ort gespeichert sind.

Beachten Sie, dass Sie jedes Mal, wenn Sie einen neuen Client hinzufügen, neue Schlüssel und Zertifikate dafür generieren müssen, bevor Sie dieses Skript ausführen und seine Konfigurationsdatei generieren können. Sie werden im nächsten Schritt etwas Übung mit diesem Skript bekommen.

Schritt 9 - Generieren von Client-Konfigurationen

Wenn Sie dem Handbuch gefolgt sind, haben Sie in Schritt 4 ein Client-Zertifikat und einen Schlüssel mit den Namen "+ client1.crt " bzw. " client1.key " erstellt. Sie können eine Konfigurationsdatei für diese Anmeldeinformationen erstellen, indem Sie in das Verzeichnis " ~ / client-configs +" wechseln und das Skript ausführen, das Sie am Ende des vorherigen Schritts erstellt haben:

cd ~/client-configs
sudo ./make_config.sh

Dadurch wird eine Datei mit dem Namen "+ client1.ovpn " in Ihrem " ~ / client-configs / files +" -Verzeichnis erstellt:

ls ~/client-configs/files
Outputclient1.ovpn

Sie müssen diese Datei auf das Gerät übertragen, das Sie als Client verwenden möchten. Dies kann beispielsweise Ihr lokaler Computer oder ein mobiles Gerät sein.

Die genauen Anwendungen für diese Übertragung hängen vom Betriebssystem Ihres Geräts und Ihren persönlichen Vorlieben ab. Eine zuverlässige und sichere Methode ist jedoch die Verwendung von SFTP (SSH File Transfer Protocol) oder SCP (Secure Copy) im Backend. Dadurch werden die VPN-Authentifizierungsdateien Ihres Clients über eine verschlüsselte Verbindung übertragen.

Hier ist ein Beispiel für einen SFTP-Befehl anhand des Beispiels "+", das Sie von Ihrem lokalen Computer (macOS oder Linux) ausführen können. Die Datei ` .ovpn +` wird in Ihrem Home-Verzeichnis abgelegt:

sftp @:client-configs/files/client1.ovpn ~/

Hier einige Tools und Tutorials zum sicheren Übertragen von Dateien vom Server auf einen lokalen Computer:

Schritt 10 - Installieren der Client-Konfiguration

In diesem Abschnitt wird beschrieben, wie Sie ein Client-VPN-Profil unter Windows, MacOS, Linux, iOS und Android installieren. Keine dieser Client-Anweisungen ist voneinander abhängig. Sie können also jederzeit zu den Anweisungen wechseln, die für Ihr Gerät gelten.

Die OpenVPN-Verbindung hat den gleichen Namen wie die "+ .ovpn " -Datei. In Bezug auf dieses Tutorial bedeutet dies, dass die Verbindung den Namen " client1.ovpn +" hat und an der ersten von Ihnen generierten Client-Datei ausgerichtet ist.

Windows

  • Installation *

Laden Sie die OpenVPN-Clientanwendung für Windows unter OpenVPN’s Downloads page herunter. Wählen Sie die entsprechende Installationsversion für Ihre Windows-Version.

Kopieren Sie nach der Installation von OpenVPN die Datei + .ovpn + nach:

C:\Program Files\OpenVPN\config

Wenn Sie OpenVPN starten, wird das Profil automatisch angezeigt und verfügbar gemacht.

Sie müssen OpenVPN bei jeder Verwendung als Administrator ausführen, auch von Administratorkonten. Um dies zu tun, ohne mit der rechten Maustaste darauf zu klicken und jedes Mal, wenn Sie das VPN verwenden, * Als Administrator ausführen * auszuwählen, müssen Sie dies über ein Administratorkonto voreinstellen. Dies bedeutet auch, dass Standardbenutzer das Administratorkennwort eingeben müssen, um OpenVPN verwenden zu können. Auf der anderen Seite können Standardbenutzer nur dann eine ordnungsgemäße Verbindung zum Server herstellen, wenn die OpenVPN-Anwendung auf dem Client über Administratorrechte verfügt. Daher sind erhöhte Berechtigungen erforderlich.

Um die OpenVPN-Anwendung so einzurichten, dass sie immer als Administrator ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Verknüpfungssymbol und gehen Sie zu * Eigenschaften *. Klicken Sie unten auf der Registerkarte * Kompatibilität * auf die Schaltfläche * Einstellungen für alle Benutzer ändern *. Aktivieren Sie im neuen Fenster * Dieses Programm als Administrator ausführen *.

  • Verbinden *

Jedes Mal, wenn Sie die OpenVPN-Benutzeroberfläche starten, werden Sie von Windows gefragt, ob Sie zulassen möchten, dass das Programm Änderungen an Ihrem Computer vornimmt. Klicken Sie auf * Ja *. Wenn Sie die OpenVPN-Clientanwendung starten, wird das Applet nur in die Taskleiste verschoben, sodass Sie das VPN nach Bedarf verbinden und trennen können. Die VPN-Verbindung wird nicht hergestellt.

Sobald OpenVPN gestartet ist, stellen Sie eine Verbindung her, indem Sie das Applet in der Taskleiste aufrufen und mit der rechten Maustaste auf das OpenVPN-Applet-Symbol klicken. Dies öffnet das Kontextmenü. Wählen Sie oben im Menü "client1" aus (das ist Ihr "+ client1.ovpn +" - Profil) und wählen Sie "Verbinden".

Ein Statusfenster wird geöffnet und zeigt die Protokollausgabe an, während die Verbindung hergestellt wird. Sobald der Client verbunden ist, wird eine Meldung angezeigt.

Trennen Sie die VPN-Verbindung auf die gleiche Weise: Öffnen Sie das Applet in der Taskleiste, klicken Sie mit der rechten Maustaste auf das OpenVPN-Applet-Symbol, wählen Sie das Client-Profil aus und klicken Sie auf * Trennen *.

Mac OS

  • Installation *

Tunnelblick ist ein kostenloser Open-Source-OpenVPN-Client für macOS. Sie können das neueste Image von der Tunnelblick-Downloadseite herunterladen. Doppelklicken Sie auf die heruntergeladene "+ .dmg +" - Datei und befolgen Sie die Installationsanweisungen.

Gegen Ende des Installationsvorgangs werden Sie von Tunnelblick gefragt, ob Sie Konfigurationsdateien haben. Antwort * Ich habe Konfigurationsdateien * und lasse Tunnelblick beenden. Öffnen Sie ein Finder-Fenster und doppelklicken Sie auf + client1.ovpn +. Tunnelblick installiert das Client-Profil. Administratorrechte sind erforderlich.

  • Verbinden *

Starten Sie Tunnelblick durch Doppelklick auf das Tunnelblick-Symbol im Ordner * Programme *. Nach dem Start von Tunnelblick befindet sich in der Menüleiste oben rechts auf dem Bildschirm ein Tunnelblick-Symbol zur Steuerung der Verbindungen. Klicken Sie auf das Symbol und dann auf den Menüpunkt * Connect client1 *, um die VPN-Verbindung herzustellen.

Linux

Installieren

Wenn Sie Linux verwenden, gibt es eine Vielzahl von Tools, die Sie abhängig von Ihrer Distribution verwenden können. Ihre Desktop-Umgebung oder Ihr Fenstermanager enthalten möglicherweise auch Verbindungsdienstprogramme.

Die universellste Art der Verbindung besteht jedoch darin, einfach die OpenVPN-Software zu verwenden.

Unter Debian können Sie es genauso wie auf dem Server installieren, indem Sie Folgendes eingeben:

sudo apt update
sudo apt install openvpn

Unter CentOS können Sie die EPEL-Repositorys aktivieren und dann installieren, indem Sie Folgendes eingeben:

sudo yum install epel-release
sudo yum install openvpn
Konfigurieren

Überprüfen Sie, ob Ihre Distribution ein "+ / etc / openvpn / update-resolv-conf +" - Skript enthält:

ls /etc/openvpn
Outputupdate-resolv-conf

Bearbeiten Sie als Nächstes die von Ihnen übertragene OpenVPN-Client-Konfigurationsdatei:

nano .ovpn

Wenn Sie eine "+ update-resolv-conf" -Datei finden konnten, kommentieren Sie die drei Zeilen aus, die Sie hinzugefügt haben, um die DNS-Einstellungen anzupassen:

client1.ovpn

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Wenn Sie CentOS verwenden, ändern Sie die Direktive "+ group" von "+ group" in "+ nobody", um sie an die verfügbaren Gruppen der Distribution anzupassen:

client1.ovpn

group

Speichern und schließen Sie die Datei.

Jetzt können Sie eine Verbindung zum VPN herstellen, indem Sie mit dem Befehl + openvpn + auf die Client-Konfigurationsdatei zeigen:

sudo openvpn --config .ovpn

Dies sollte Sie mit Ihrem VPN verbinden.

iOS

  • Installation *

Suchen Sie im iTunes App Store nach OpenVPN Connect, der offiziellen iOS OpenVPN-Client-Anwendung, und installieren Sie sie. Um Ihre iOS-Client-Konfiguration auf das Gerät zu übertragen, schließen Sie es direkt an einen Computer an.

Der Vorgang zum Abschließen der Übertragung mit iTunes wird hier beschrieben. Öffnen Sie iTunes auf dem Computer und klicken Sie auf * iPhone *> * apps *. Scrollen Sie nach unten zum Abschnitt * File Sharing * und klicken Sie auf die OpenVPN-App. Das leere Fenster auf der rechten Seite, * OpenVPN-Dokumente *, dient zum Freigeben von Dateien. Ziehen Sie die Datei "+ .ovpn +" in das OpenVPN-Dokumentfenster.

image: https: //assets.digitalocean.com/articles/openvpn_ubunutu/1.png [iTunes zeigt das VPN-Profil, das zum Laden auf dem iPhone bereit ist]

Starten Sie nun die OpenVPN-App auf dem iPhone. Sie erhalten eine Benachrichtigung, dass ein neues Profil zum Import bereit ist. Tippen Sie auf das grüne Pluszeichen, um es zu importieren.

image: https: //assets.digitalocean.com/articles/openvpn_ubunutu/2.png [Die OpenVPN iOS-App zeigt ein neues Profil an, das zum Import bereit ist.]

  • Verbinden *

OpenVPN kann jetzt mit dem neuen Profil verwendet werden. Starten Sie die Verbindung, indem Sie die Taste * Connect * auf die Position * On * schieben. Trennen Sie die Verbindung, indem Sie denselben Knopf auf * Aus * schieben.

image: https: //assets.digitalocean.com/articles/openvpn_ubunutu/3.png [Die mit dem VPN verbundene OpenVPN iOS-App]

Android

  • Installation *

Öffnen Sie den Google Play Store. Suchen und installieren Sie Android OpenVPN Connect, die offizielle Android OpenVPN-Clientanwendung.

Sie können das Profil "+ .ovpn +" übertragen, indem Sie das Android-Gerät über USB an Ihren Computer anschließen und die Datei kopieren. Wenn Sie über einen SD-Kartenleser verfügen, können Sie auch die SD-Karte des Geräts entfernen, das Profil darauf kopieren und die Karte dann wieder in das Android-Gerät einlegen.

Starten Sie die OpenVPN-App und tippen Sie auf das Menü, um das Profil zu importieren.

image: https://assets.digitalocean.com/articles/openvpn_ubunutu/4.png [Die Menüauswahl zum Importieren von OpenVPN-Android-App-Profilen]

Navigieren Sie dann zum Speicherort des gespeicherten Profils (im Screenshot wird "+ / sdcard / Download / +" verwendet) und wählen Sie die Datei aus. Die App merkt sich, dass das Profil importiert wurde.

image: https://assets.digitalocean.com/articles/openvpn_ubunutu/5.png [Die OpenVPN-Android-App, die das zu importierende VPN-Profil auswählt]

  • Verbinden *

Um eine Verbindung herzustellen, tippen Sie einfach auf die Schaltfläche * Verbinden *. Sie werden gefragt, ob Sie der OpenVPN-Anwendung vertrauen. Wählen Sie * OK *, um die Verbindung herzustellen. Um die Verbindung zum VPN zu trennen, kehren Sie zur OpenVPN-App zurück und wählen Sie * Trennen *.

image: https: //assets.digitalocean.com/articles/openvpn_ubunutu/6.png [Die OpenVPN-Android-App kann eine Verbindung zum VPN herstellen]

Schritt 11 - Testen Ihrer VPN-Verbindung (optional)

Sobald alles installiert ist, wird durch eine einfache Überprüfung bestätigt, dass alles ordnungsgemäß funktioniert. Öffnen Sie einen Browser, ohne dass eine VPN-Verbindung aktiviert ist, und rufen Sie https://www.dnsleaktest.com [DNSLeakTest] auf.

Die Site gibt die von Ihrem Internetdienstanbieter zugewiesene IP-Adresse zurück und wie Sie dem Rest der Welt erscheinen. Um Ihre DNS-Einstellungen über dieselbe Website zu überprüfen, klicken Sie auf * Erweiterter Test * und erfahren Sie, welche DNS-Server Sie verwenden.

Verbinden Sie nun den OpenVPN-Client mit dem VPN Ihres Droplets und aktualisieren Sie den Browser. Nun sollte eine völlig andere IP-Adresse (die Ihres VPN-Servers) angezeigt werden, und so sehen Sie für die Welt aus. Erneut überprüft https://www.dnsleaktest.com [DNSLeakTest] * Extended Test * Ihre DNS-Einstellungen und bestätigt, dass Sie jetzt die von Ihrem VPN übertragenen DNS-Resolver verwenden.

Schritt 12 - Widerrufen von Client-Zertifikaten

Gelegentlich müssen Sie möglicherweise ein Client-Zertifikat widerrufen, um den weiteren Zugriff auf den OpenVPN-Server zu verhindern.

Navigieren Sie dazu zum Easy RSA-Verzeichnis auf Ihrem CA-Computer:

cd EasyRSA-v/

Führen Sie als Nächstes das Skript "+ easyrsa " mit der Option " revoke +" gefolgt vom Namen des zu widerrufenden Clients aus:

./easyrsa revoke

Sie werden aufgefordert, den Widerruf zu bestätigen, indem Sie "+ yes +" eingeben:

OutputPlease confirm you wish to revoke the certificate with the following subject:

subject=
   commonName                = client2


Type the word 'yes' to continue, or any other input to abort.
 Continue with revocation:

Nach Bestätigung der Aktion widerruft die Zertifizierungsstelle das Client-Zertifikat vollständig. Ihr OpenVPN-Server kann derzeit jedoch nicht prüfen, ob die Zertifikate von Clients gesperrt wurden, und der Client hat weiterhin Zugriff auf das VPN. Um dies zu korrigieren, erstellen Sie eine Zertifikatsperrliste (Certificate Revocation List, CRL) auf Ihrem CA-Computer:

./easyrsa gen-crl

Dies erzeugt eine Datei mit dem Namen "+ crl.pem +". Übertragen Sie diese Datei sicher auf Ihren OpenVPN-Server:

scp ~/EasyRSA-v/pki/crl.pem @:/tmp

Kopieren Sie diese Datei auf Ihrem OpenVPN-Server in Ihr Verzeichnis "+ / etc / openvpn / +":

sudo cp /tmp/crl.pem /etc/openvpn

Öffnen Sie als Nächstes die OpenVPN-Serverkonfigurationsdatei:

sudo nano /etc/openvpn/server.conf

Fügen Sie am Ende der Datei die Option "+ crl-verify +" hinzu, mit der der OpenVPN-Server angewiesen wird, die Zertifikatssperrliste zu überprüfen, die wir bei jedem Verbindungsversuch erstellt haben:

/etc/openvpn/server.conf

crl-verify crl.pem

Speichern und schließen Sie die Datei.

Starten Sie OpenVPN neu, um die Zertifikatsperrung zu implementieren:

sudo systemctl restart openvpn@server

Der Client sollte mit dem alten Berechtigungsnachweis keine Verbindung mehr zum Server herstellen können.

Gehen Sie folgendermaßen vor, um weitere Clients zu widerrufen:

  1. Sperren Sie das Zertifikat mit dem Befehl +. / Easyrsa revoke +

  2. Generieren Sie eine neue CRL

  3. Übertragen Sie die neue Datei "+ crl.pem " auf Ihren OpenVPN-Server und kopieren Sie sie in das Verzeichnis " / etc / openvpn +", um die alte Liste zu überschreiben.

  4. Starten Sie den OpenVPN-Dienst neu.

Mit diesem Vorgang können Sie alle zuvor für Ihren Server ausgestellten Zertifikate widerrufen.

Fazit

Sie sind jetzt sicher im Internet unterwegs und schützen Ihre Identität, Ihren Standort und Ihren Datenverkehr vor Schnüfflern und Zensoren.

Um weitere Clients zu konfigurieren, müssen Sie nur die Schritte * 4 * und * 9-11 * für jedes zusätzliche Gerät ausführen. Um den Zugriff auf Clients zu widerrufen, führen Sie einfach Schritt * 12 * aus.