Möchten Sie wissen, wie Sie einen Raspberry Pi in ein VPN verwandeln? Es gibt viele Gründe, warum Sie aus der Ferne auf Ihr Heimnetzwerk zugreifen möchten, und der beste Weg, dies zu tun, ist mit einem VPN-Server. Bei einigen Routern können Sie tatsächlich einen VPN-Server direkt im Router einrichten, aber in vielen Fällen müssen Sie selbst einen einrichten.
Ein Raspberry Pi ist eine großartige Möglichkeit, dies zu erreichen. Sie benötigen nicht viel Energie zum Betrieb und haben genug Leistung, um einen VPN-Server zu betreiben. Sie können einen neben Ihrem Router aufstellen und ihn im Grunde vergessen.
Wenn Sie remote Zugriff auf Ihr Heimnetzwerk haben, können Sie von überall auf Ihre Dateien zugreifen. Sie können Ihre Heimcomputer remote betreiben. Sie können sogar die VPN-Verbindung Ihres Hauses von unterwegs nutzen. Mit einer solchen Einrichtung verhält sich Ihr Telefon, Tablet oder Laptop von überall aus so, als wäre es zu Hause.
Wie man einen Raspberry Pi in ein VPN verwandelt
Pi einrichten
Bevor Sie mit der Einrichtung des VPN beginnen können, müssen Sie Ihren Raspberry Pi einrichten. Es ist am besten, den Pi mit einem Gehäuse und einer anständigen Speicherkarte einzurichten, 16 GB sollten mehr als genug sein. Wenn möglich, verbinden Sie Ihren Pi mit einem Ethernet-Kabel mit Ihrem Router. Dadurch werden Netzwerkverzögerungen minimiert.
Das beste Betriebssystem für Ihren Pi ist Raspbian. Es ist die Standardauswahl der Raspberry Pi Foundation und basiert auf Debian, einer der sichersten und stabilsten verfügbaren Linux-Versionen.
Limitiertes Angebot:3 Monate GRATIS! Holen Sie sich ExpressVPN. Sicher und Streaming-freundlich.Gehen Sie zur Rasbian-Download-Seite , und holen Sie sich die neueste Version. Sie können hier die „Lite“-Version verwenden, da Sie eigentlich keinen grafischen Desktop benötigen.
Holen Sie sich während des Downloads die neueste Version von Etcher für Ihr Betriebssystem. Nachdem der Download abgeschlossen ist, extrahieren Sie das Raspbian-Image. Öffnen Sie dann Etcher. Wählen Sie das Raspbian-Image aus, aus dem Sie es extrahiert haben. Wählen Sie Ihre SD-Karte aus (Legen Sie sie zuerst ein). Abschließend das Bild auf die Karte schreiben.
Lassen Sie die SD-Karte in Ihrem Computer, wenn sie fertig ist. Öffnen Sie einen Dateimanager und navigieren Sie zur Karte. Sie sollten ein paar verschiedene Partitionen sehen. Suchen Sie nach der „Boot“-Partition. Es ist diejenige mit einer „kernel.img“-Datei darin. Erstellen Sie eine leere Textdatei auf der „Boot“-Partition und nennen Sie sie „ssh“ ohne Dateierweiterung.
Sie können endlich Ihren Pi anschließen. Stellen Sie sicher, dass Sie es zuletzt einstecken. Sie benötigen keinen Bildschirm, keine Tastatur oder Maus. Sie werden über Ihr Netzwerk remote auf den Raspberry Pi zugreifen.
Geben Sie dem Pi ein paar Minuten, um sich einzurichten. Öffnen Sie dann einen Webbrowser und navigieren Sie zum Verwaltungsbildschirm Ihres Routers. Suchen Sie den Raspberry Pi und notieren Sie sich seine IP-Adresse.
Ob Sie Windows, Linux oder Mac verwenden, öffnen Sie OpenSSH. Verbinden Sie sich mit SSH mit dem Raspberry Pi.
$ ssh [email protected]
Verwenden Sie natürlich die tatsächliche IP-Adresse des Pi. Der Benutzername ist immer pi, und das Passwort ist himbeere.
OpenVPN einrichten
OpenVPN ist nicht gerade einfach als Server einzurichten. Die gute Nachricht ist, Sie müssen es nur einmal tun. Bevor Sie sich also einarbeiten, vergewissern Sie sich, dass Raspbian vollständig auf dem neuesten Stand ist.
$ sudo apt update $ sudo apt upgrade
Nachdem das Update abgeschlossen ist, können Sie OpenVPN und das benötigte Zertifikatdienstprogramm installieren.
$ sudo apt install openvpn easy-rsa
Um Ihre Geräte zu authentifizieren, wenn sie versuchen, eine Verbindung zum Server herzustellen, müssen Sie eine Zertifizierungsstelle einrichten, um Signaturschlüssel zu erstellen. Diese Schlüssel stellen sicher, dass nur Ihre Geräte eine Verbindung zu Ihrem Heimnetzwerk herstellen können.
Erstellen Sie zunächst ein Verzeichnis für Ihre Zertifikate. Wechseln Sie in dieses Verzeichnis.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Sehen Sie sich nach OpenSSL-Konfigurationsdateien um. Verknüpfen Sie dann die neueste mit openssl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
Im selben „certs“-Ordner befindet sich eine Datei namens „vars“. Öffnen Sie diese Datei mit Ihrem Texteditor. Nano ist die Standardeinstellung, aber fühlen Sie sich frei, Vim zu installieren, wenn Sie sich damit wohler fühlen.
Suchen Sie zuerst die Variable KEY_SIZE. Es ist standardmäßig auf 2048 eingestellt. Ändern Sie es auf 4096.
export KEY_SIZE=4096
Der Hauptblock, mit dem Sie sich befassen müssen, legt Informationen über Ihre Zertifizierungsstelle fest. Es hilft, wenn diese Informationen korrekt sind, aber alles, woran Sie sich erinnern können, ist in Ordnung.
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]" export KEY_OU="MyOrganizationalUnit" export KEY_NAME="HomeVPN"
Wenn Sie alles haben, speichern und beenden Sie.
Das Easy-RSA-Paket, das Sie zuvor installiert haben, enthält viele Skripts, die Ihnen helfen, alles einzurichten, was Sie brauchen. Sie müssen sie nur ausführen. Beginnen Sie damit, die Datei „vars“ als Quelle hinzuzufügen. Dadurch werden alle Variablen geladen, die Sie gerade festgelegt haben.
$ sudo source ./vars
Als nächstes bereinigen Sie die Schlüssel. Sie haben keine, also machen Sie sich keine Sorgen über die Meldung, dass Ihre Schlüssel gelöscht werden.
$ sudo ./clean-install
Erstellen Sie schließlich Ihre Zertifizierungsstelle. Sie haben bereits die Standardeinstellungen festgelegt, sodass Sie einfach die angezeigten Standardeinstellungen akzeptieren können. Denken Sie daran, ein starkes Passwort festzulegen und die letzten beiden Fragen nach dem Passwort mit „Ja“ zu beantworten.
$ sudo ./build-ca
Sie haben sich all diese Mühe gemacht, um eine Zertifizierungsstelle einzurichten, damit Sie Schlüssel signieren können. Jetzt ist es an der Zeit, welche zu machen. Beginnen Sie damit, den Schlüssel für Ihren Server zu erstellen.
$ sudo ./build-key-server server
Als nächstes bauen Sie das Diffie-Hellman PEM. Es wird von OpenVPN verwendet, um Ihre Client-Verbindungen zum Server zu sichern.
$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem
Der letzte Schlüssel, den Sie ab jetzt benötigen, wird als HMAC-Schlüssel bezeichnet. OpenVPN verwendet diesen Schlüssel, um jedes einzelne Informationspaket zu signieren, das zwischen dem Client und dem Server ausgetauscht wird. Es hilft, bestimmte Arten von Angriffen auf die Verbindung zu verhindern.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Sie haben die Schlüssel. Der nächste Schritt bei der Einrichtung von OpenVPN ist die Serverkonfiguration selbst. Zum Glück müssen Sie hier nicht allzu viel tun. Debian bietet eine Basiskonfiguration, die Sie für den Einstieg verwenden können. Beginnen Sie also mit dem Abrufen dieser Konfigurationsdatei.
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Verwenden Sie erneut Ihren Texteditor, um /etc/openvpn/server.conf zu öffnen. Die ersten Dinge, die Sie finden müssen, sind die ca-, cert- und key-Dateien. Sie müssen sie so einstellen, dass sie mit den tatsächlichen Speicherorten der von Ihnen erstellten Dateien übereinstimmen, die sich alle in /etc/openvpn/certs/keys.
befinden
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret
Suchen Sie die dh-Einstellung und ändern Sie sie so, dass sie mit der von Ihnen erstellten .pem-Datei von Diffie-Hellman übereinstimmt.
dh dh4096.pem
Legen Sie auch den Pfad für Ihren HMAC-Schlüssel fest.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Finden Sie die Chiffre und vergewissern Sie sich, dass sie mit dem Beispiel unten übereinstimmt.
cipher AES-256-CBC
Die nächsten paar Optionen sind vorhanden, aber sie sind mit einem; auskommentiert. Entfernen Sie die Semikolons vor jeder Option, um sie zu aktivieren.
push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
Suchen Sie nach den Benutzer- und Gruppenoptionen. Kommentieren Sie sie aus und ändern Sie den Benutzer in „openvpn.“
user openvpn group nogroup
Schließlich sind diese letzten beiden Zeilen nicht in der Standardkonfiguration. Sie müssen sie am Ende der Datei hinzufügen.
Legen Sie den Authentifizierungs-Digest fest, um eine stärkere Verschlüsselung für die Benutzerauthentifizierung anzugeben.
# Authentication Digest auth SHA512
Beschränken Sie dann die Chiffren, die OpenVPN verwenden kann, auf nur stärkere. Dies hilft, mögliche Angriffe auf schwache Chiffren einzuschränken.
# Limit Ciphers tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Das ist alles für die Konfiguration. Speichern Sie die Datei und beenden Sie sie.
Bevor Sie den Server starten können, müssen Sie den angegebenen openvpn-Benutzer erstellen.
$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Es ist ein spezieller Benutzer, der nur OpenVPN ausführt, und es wird nichts anderes tun.
Starten Sie jetzt den Server.
$ sudo systemctl start openvpn $ sudo systemctl start [email protected]
Prüfen Sie, ob beide ausgeführt werden
$ sudo systemctl status openvpn*.service
Wenn alles gut aussieht, aktivieren Sie sie beim Start.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Client-Setup
Ihr Server ist jetzt eingerichtet und läuft. Als nächstes müssen Sie Ihre Client-Konfiguration einrichten. Dies ist die Konfiguration, die Sie verwenden, um Ihre Geräte mit Ihrem Server zu verbinden. Kehren Sie zum Zertifikatsordner zurück und bereiten Sie die Erstellung der Clientschlüssel vor. Sie können wählen, ob Sie separate Schlüssel für jeden Client oder einen Schlüssel für alle Clients erstellen möchten. Für den Heimgebrauch sollte ein Schlüssel ausreichen.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Der Prozess ist fast identisch mit dem Serverprozess, also gehen Sie genauso vor.
Die Konfiguration für Clients ist der für den Server sehr ähnlich. Auch hier haben Sie eine vorgefertigte Vorlage, auf der Sie Ihre Konfiguration aufbauen können. Sie müssen es nur an den Server anpassen.
Wechseln Sie in das Kundenverzeichnis. Entpacken Sie dann die Beispielkonfiguration.
$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn
Öffnen Sie die client.ovpn-Datei mit Ihrem Texteditor. Suchen Sie dann die Remote-Option. Angenommen, Sie verwenden noch kein VPN, suchen Sie bei Google nach „What is my IP“. Nehmen Sie die angezeigte Adresse und stellen Sie die Remote-IP-Adresse darauf ein. Lassen Sie die Portnummer.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Ändern Sie die Zertifikate so, dass sie die von Ihnen erstellten widerspiegeln, genau wie Sie es mit dem Server getan haben.
ca ca.crt cert client.crt key client.key
Suchen Sie die Benutzeroptionen und kommentieren Sie sie aus. Es ist in Ordnung, die Clients als "Niemand" auszuführen.
user nobody group nogroup
Entkommentieren Sie die tls-auth-Option für HMAC.
tls-auth ta.key 1
Suchen Sie als Nächstes nach der Cipher-Option und vergewissern Sie sich, dass sie mit dem Server übereinstimmt.
cipher AES-256-CBC
Fügen Sie dann einfach den Authentifizierungs-Digest und die Verschlüsselungseinschränkungen am Ende der Datei hinzu.
# Authentication Digest auth SHA512 # Cipher Restrictions tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Wenn alles richtig aussieht, speichern Sie die Datei und beenden Sie sie. Verwenden Sie tar, um die Konfiguration und die Zertifikate zu packen, damit Sie sie an den Client senden können.
$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn
Übertragen Sie dieses Paket an den Client, wie Sie möchten. SFTP, FTP und ein USB-Laufwerk sind großartige Optionen.
Portweiterleitung
Damit dies funktioniert, müssen Sie Ihren Router so konfigurieren, dass er eingehenden VPN-Verkehr an den Pi weiterleitet. Wenn Sie bereits ein VPN verwenden, müssen Sie sicherstellen, dass Sie sich nicht über denselben Port verbinden. Wenn ja, ändern Sie den Port in Ihren Client- und Serverkonfigurationen.
Stellen Sie eine Verbindung zur Webschnittstelle Ihres Routers her, indem Sie dessen IP-Adresse in Ihren Browser eingeben.
Jeder Router ist anders. Trotzdem sollten sie alle eine Form dieser Funktionalität haben. Finden Sie es auf Ihrem Router.
Die Einrichtung ist grundsätzlich auf jedem Router gleich. Geben Sie die Start- und Endports ein. Sie sollten untereinander und mit denen identisch sein, die Sie in Ihren Konfigurationen festgelegt haben. Stellen Sie dann für die IP-Adresse die IP Ihres Raspberry Pi ein. Speichern Sie Ihre Änderungen.
Mit dem Client verbinden
Jeder Kunde ist anders, daher gibt es keine Universallösung. Unter Windows benötigen Sie den Windows OpenVPN-Client .
Unter Android können Sie Ihren Tarball öffnen und die Schlüssel auf Ihr Telefon übertragen. Installieren Sie dann die OpenVPN-App. Öffnen Sie die App und fügen Sie die Informationen aus Ihrer Konfigurationsdatei ein. Wählen Sie dann Ihre Schlüssel aus.
Unter Linux müssen Sie OpenVPN ähnlich wie für den Server installieren.
$ sudo apt install openvpn
Wechseln Sie dann in /etc/openvpn und entpacken Sie den Tarball, den Sie gesendet haben.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Benennen Sie die Client-Datei um.
$ sudo mv client.ovpn client.conf
Starten Sie den Client noch nicht. Es wird scheitern. Sie müssen zuerst die Portweiterleitung auf Ihrem Router aktivieren.
Letzte Gedanken darüber, wie man einen Raspberry Pi in ein VPN verwandelt
Nachdem Sie wissen, wie Sie einen Raspberry Pi in ein VPN verwandeln, sollten Sie jetzt ein funktionierendes Setup haben. Ihr Client verbindet sich direkt über Ihren Router mit dem Pi. Von dort aus können Sie über Ihr virtuelles Netzwerk teilen und sich verbinden, solange alle Geräte mit dem VPN verbunden sind. Es gibt keine Begrenzung, sodass Sie immer alle Ihre Computer mit dem Pi VPN verbinden können.