Inhaltsverzeichnis:

Raspberry Pi VPN-Gateway - Gunook
Raspberry Pi VPN-Gateway - Gunook

Video: Raspberry Pi VPN-Gateway - Gunook

Video: Raspberry Pi VPN-Gateway - Gunook
Video: Build your OWN WireGuard VPN! Here's how 2024, November
Anonim
Raspberry Pi VPN-Gateway
Raspberry Pi VPN-Gateway

Update 07.01.2018:

  • Für die aktuelle Version von Raspian wurden fehlende Dinge aktualisiert und notwendige Änderungen vorgenommen.
  • Außerdem wurde ein spezieller Leitfaden für NordVPN erstellt.

Es gibt ein paar verschiedene Verwendungen für VPN. Entweder möchten Sie Ihre Privatsphäre und Ihre privaten Daten vor neugierigen Blicken schützen oder Sie müssen aus einem anderen Land beziehen. Die Beschaffung aus einem anderen Land kann sehr nützlich sein, um Zugang zu Diensten zu erhalten, die in Ihrem Land nicht angeboten werden. Heutzutage gibt es eine Reihe von VPN-Diensten und die meisten von ihnen bieten einfach zu bedienende Software für Ihren Computer und Apps für Ihr Tablet oder Telefon. Aber wenn Sie andere Geräte haben, die von der Software nicht unterstützt werden, möchten Sie über das VPN gehen? Bauen Sie dann ein Gateway, das Ihnen über das VPN einen Internetzugang ermöglicht.

Wenn Sie sich Ihr grundlegendes Netzwerk-Setup ansehen, haben Sie ein "Standard-Gateway", das für jede IP-Adresse verwendet wird, die sich nicht in Ihrem aktuellen Subnetz befindet (sehr vereinfacht). Wenn Sie also ein Gateway einrichten, das den Internetverkehr über eine eingerichtete VPN-Verbindung leiten kann, kann jedes netzwerkfähige Gerät den VPN-Tunnel nutzen.

Mein Hauptanwendungsfall in meiner Wohnung in San Francisco ist ein VPN-Tunnel zu meinem Heimatland Schweden, damit ich schwedische Wiedergabekanäle auf meinen Mediaplayern und meinem Smart-TV streamen kann. Dies ist ein ziemlich häufiger Anwendungsfall für die meisten Leute, die einen VPN-Tunnel benötigen. Da meine Mediaplayer und Smart-TVs von der VPN-Software nicht unterstützt werden, habe ich einen aus einem Raspberry Pi gebaut.

Sie können einen für unter 40 US-Dollar bei Amazon abholen. Ich empfehle jedoch, auch ein Gehäuse und ein anständiges Netzteil zu kaufen. Für dieses instructable benötigen Sie:

  • Raspberry Pi 2 oder 3
  • Ein Fall nach Ihrem Geschmack
  • Ein anständiges Netzteil
  • Ein Netzwerkkabel

Schritt 1: Wählen Sie Ihren VPN-Dienst

Wählen Sie Ihren VPN-Dienst
Wählen Sie Ihren VPN-Dienst

Wichtig bei der Auswahl eines VPN-Dienstes ist, dass er Ihren Anforderungen entspricht. Für diesen Anwendungsfall brauchte ich einen VPN-Dienst mit einem schwedischen Ausstiegspunkt, das ist das Wichtigste, da ich die schwedischen Dienste brauche, um überzeugt zu sein, dass ich in Schweden bin. Im Laufe der Jahre habe ich mehrere verschiedene Anbieter verwendet und im Folgenden sind die Dinge aufgeführt, die ich bei der Auswahl des VPN-Anbieters für den spezifischen Anwendungsfall berücksichtige:

Kostenloser Test

Ich möchte einen kostenlosen Testzeitraum oder eine kleine Menge an Testdaten, um ein Gefühl für die Software oder App zu bekommen. Außerdem möchte ich die Leistung und das Gesamterlebnis testen, bevor ich dafür bezahle. Es ist auch schön, zu überprüfen, ob meine Idee funktioniert, bevor ich mit der Zahlung beginne.

Privatsphäre

Wenn es sich bei der Implementierung um Datenschutzbelange handelt, ist es wirklich wichtig, was in der Datenschutzrichtlinie steht. Es ist auch wichtig, in welchem Land das Unternehmen tätig ist und welche Gesetze Ihre Privatsphäre schützen. Die wirklich datenschutzbetroffenen Nutzer sollten sich einen Dienst ansehen, der besagt, dass keine Verkehrsprotokolle gespeichert werden und anonyme Zahlungen beispielsweise über Bitcoin möglich sind.

Zulässiger Verkehr

Es kann Einschränkungen geben, welche Art von Datenverkehr Sie ausführen dürfen. Die seriöseren Lieferanten blockieren in der Regel den Peer-to-Peer-Verkehr. Dies dient nicht nur dazu, rechtliche Probleme zu vermeiden, sondern um die Leistung für alle Benutzer aufrechtzuerhalten. Es gibt jedoch viele gute Anbieter, die Peer-to-Peer ermöglichen und dennoch einen qualitativ hochwertigen Service bieten. Aber wenn dies nicht Ihre Hauptbeschäftigung ist, empfehle ich, einen Dienst auszuwählen, der kein Peer-to-Peer zulässt.

Datenobergrenze

Verwenden Sie niemals einen Dienst, der eine Datenobergrenze für seine zahlenden Benutzer einhält. Dies wird zum ungünstigsten Zeitpunkt genau so ausgehen, wie die Daten auf Ihrem Telefon kurz vor dem lustigen Teil in einem Videoclip!

Austrittsländer

Je nach Anwendungsfall hat dies unterschiedliche Bedeutung. Für einen Anwendungsfall wie meinen, bei dem ich in einem bestimmten Land landen muss, muss das natürlich auf der Liste stehen. Ich muss auch das Land auswählen dürfen, in das ich ausreise. Es gibt Dienste, bei denen Sie kein Ausreiseland auswählen können, halten Sie sich von diesen fern. Sie können in einem Land mit schlechten Leistungs- oder Datenschutzgesetzen landen. Auch wenn Sie kein bestimmtes Land benötigen, sollten Sie dennoch einen Dienst mit mehreren verschiedenen Ländern auswählen, um einen mit guter Leistung zu finden.

Art der Software und Support

Dies ist einer der Hauptgründe, warum ich Dienste mit kostenlosem Test bevorzuge. Es gibt so viele Anbieter mit schlechter Software, die fehlerhaft, unsicher oder einfach nicht funktioniert. Für eine Raspberry Pi-Implementierung benötige ich einen Anbieter, der OpenVPN unterstützt.

Meine Auswahl

Für diesen Build habe ich mich für Tunnel Bear entschieden. Ein kostenloser Test bis zu 500 GB wird angeboten, damit ich testen kann, ob ich tatsächlich streamen kann, bevor ich etwas bezahlt habe. Sie haben ihren Sitz in Kanada, das neben Schweden einige der strengsten Datenschutzgesetze der Welt hat. Keine Datenbeschränkung bei kostenpflichtigen Diensten und ich darf auch mehrere Geräte gleichzeitig anschließen. So ist auch der Schutz für mein Telefon, Tablet und Computer auf Reisen im unsicheren WLAN sortiert. Exit Node in Schweden wird unterstützt, es wird tatsächlich über den Bahnhof bereitgestellt, der in Schweden für starke Privatsphäre bekannt ist. Für die kostenpflichtigen Pläne bieten sie OpenVPN-Unterstützung an. Sie tun es nicht für den kostenlosen Test, aber es reichte aus, das von meinem Laptop aus auszuführen, um sicherzustellen, dass die Streaming-Dienste funktionierten.

Schritt 2: Installieren Sie den Raspberry Pi

Für solche Implementierungen verwende ich das Betriebssystem Raspbian Lite. Da brauche ich die GUI gar nicht. Die neueste Version erhalten Sie hier.

Ich verwende Win32DiskImager, um die.img-Datei auf die SD-Karte für den Raspberry Pi zu laden.

Sobald der Raspberry Pi gebootet ist, schaue ich in der DHCP-Liste meines Routers nach der IP-Adresse und verbinde mich dann über SSH mit Putty. Standard-Benutzername und -Passwort sind pi/raspberry

Sobald die Verbindung hergestellt ist, führe ich das Tool raspi-config aus, um die Grundeinstellungen zu ändern.

sudo raspi-config

Die wichtigsten Dinge, die Sie in dieser Konfiguration beachten müssen, sind:

  • Dateisystem erweitern
  • Passwort ändern

Sie können auch den Hostnamen Ihres Raspberry Pi ändern, wenn Sie möchten. Mein DHCP hat sehr lange Leases und ich kann auch eine bestimmte Adresse reservieren. Wenn Sie diese Möglichkeit nicht haben, müssen Sie den Raspberry Pi so konfigurieren, dass er eine statische IP-Adresse verwendet. Da andere Geräte dies als Standard-Gateway verwenden, ist es wichtig, dass es weiterhin dieselbe IP-Adresse verwendet. Hier ist ein Beitrag, den ich über das Festlegen einer statischen IP in Raspbian Jessie geschrieben habe.

Dann müssen wir alles auf die neueste Version aktualisieren:

sudo apt-get updatesudo apt-get upgrade sudo apt-get dist-upgrade

Schritt 3: OpenVPN installieren

OpenVPN installieren
OpenVPN installieren

Jetzt müssen wir OpenVPN auf dem Raspberry Pi installieren.

sudo apt-get install openvpn

Dann müssen wir sicherstellen, dass der Dienst ordnungsgemäß gestartet wird.

sudo systemctl aktivieren openvpn

Wenn die Installation abgeschlossen ist, müssen wir die OpenVPN-Konfigurationsdateien und Zertifikate in die Box kopieren. Diese wird Ihnen von Ihrem VPN-Anbieter zur Verfügung gestellt. In meinem Fall habe ich mit TunnelBear dort einen Blog-Beitrag zum Linux-Support gefunden. Auf dieser Seite gibt es einen Link zur Zip-Datei, die alles enthält, was wir brauchen.

Die Datei enthält die Zertifikatsdateien und eine.opvn-Konfigurationsdatei für jedes Land, in das Sie tunneln können. Sie benötigen alle Zertifikatsdateien und die.opvn-Konfigurationsdatei für das Land Ihrer Wahl, in meinem Fall Schweden. Entpacken Sie die benötigten Dateien und verwenden Sie winscp, um die Dateien auf Ihren Raspberry Pi hochzuladen. Derselbe Benutzername/Passwort wie für SSH verwendet, führt Sie zu /home/pi, legen Sie einfach die Dateien dort ab.

Dann gehen wir zurück zum SSH-Terminal und verschieben die Dateien in den OpenVPN-Ordner. Der erste Befehl besteht darin, sicherzustellen, dass wir uns im Ordner /home/pi befinden.

cd /home/pi

sudo mv * /etc/openvpn/

Jetzt müssen wir einige Änderungen an den Dateien vornehmen. Zuerst müssen wir die Konfigurationsdatei von.ovpn in.conf umbenennen. Jede Datei mit der Endung.conf im Ordner /etc/openvpn wird automatisch gestartet, wenn der OpenVPN-Daemon gestartet wird. Zuerst müssen wir in dieses Verzeichnis gelangen.

cd /etc/openvpn

Dann ändern wir den Namen der Konfigurationsdatei. Sie können es beliebig benennen, solange es auf.conf endet. Ich bevorzuge Dateinamen ohne Leerzeichen, in diesem Fall gehe ich mit swe.conf.

sudo mv *.ovpn swe.conf

Dann benötigen wir eine Authentifizierungsdatei, die den Benutzernamen und das Passwort enthält, die für den VPN-Tunnel verwendet werden. Öffnen Sie einen Texteditor und schreiben Sie den Benutzernamen und das Passwort in separate Zeilen. Wir nennen diese Datei auth.txt.

sudo nano auth.txt

Der Inhalt sollte wie in diesem Beispiel aussehen:

Nutzername

Passwort

Verwenden Sie dann STRG + O, um in die Datei zu schreiben, und STRG + X, um den Nano-Texteditor zu beenden. Wir müssen auch die Datei auth.txt schützen, die unsere Anmeldeinformationen enthält.

sudo chmod 600 /etc/openvpn/auth.txt

Dann müssen wir die Konfigurationsdatei bearbeiten, um sicherzustellen, dass alle Pfade korrekt sind, und einen Verweis auf die neu erstellte Datei auth.txt hinzufügen.

sudo nano swe.conf

Die Zeilen, die geändert werden müssen, beziehen sich auf andere Dateien, sie müssen absolute Pfade sein. In diesem Beispiel suchen wir:

ca CACertificate.crt

cert UserCertificate.crt key PrivateKey.key

Wir ändern sie in absolute Pfade wie folgt:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt key /etc/openvpn/PrivateKey.key

Dann fügen wir am Ende der Datei einen Verweis auf die Datei auth.txt hinzu, wie folgt:

auth-user-pass /etc/openvpn/auth.txt

Wir verwenden erneut STRG + O, um die Datei zu speichern, und dann STRG + X, um nano zu beenden. Jetzt können wir den OpenVPN-Daemon neu starten und sehen, dass der Tunnel funktioniert.

sudo service openvpn neu starten

Wenn Sie den Befehl ifconfig ausführen, sollten Sie zusätzlich zu Ihren eth0- und lo-Adaptern einen tun0-Adapter sehen, wenn der Tunnel aktiv ist. Sie können auch den Befehl diesen Befehl ausführen, um Ihre öffentliche IP zu überprüfen:

wget https://ipinfo.io/ip -qO -

Wenn Sie Probleme haben, den Tunnel aufzubauen, versuchen Sie zuerst, Ihren Raspberry Pi neu zu starten und dann die Konfiguration auf Fehler zu überprüfen.

Schritt 4: Routing einrichten

Jetzt müssen wir die IP-Weiterleitung aktivieren. Es ermöglicht dem Netzwerkverkehr, von einer der Netzwerkschnittstellen ein- und aus der anderen heraus zu fließen. Im Wesentlichen einen Router erstellen.

sudo /bin/su -c "echo -e '\n#IP-Routing aktivieren\nnet.ipv4.ip_forward = 1' > /etc/sysctl.conf"

Wenn Sie sudo sysctl -p ausführen, sollten Sie dies auf dem Bildschirm sehen:

net.ipv4.ip_forward = 1

Jetzt ist das Routing aktiviert und der Verkehr kann durch den Raspberry Pi, über den Tunnel und ins Internet gehen.

Schritt 5: Firewall und NAT einrichten

Da wir mehrere Clients im Inneren haben, die über eine öffentliche IP-Adresse auf das Internet zugreifen, müssen wir NAT verwenden. Es steht für Network Address Translation und verfolgt, welcher Client welchen Verkehr angefordert hat, wenn die Informationen über den Tunnel zurückkommen. Wir müssen auch etwas Sicherheit um den Raspberry Pi selbst und den Tunnel einrichten.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Aktivieren von NAT.

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

Zulassen, dass jeglicher Datenverkehr von eth0 (intern) über tun0 (Tunnel) geleitet wird.

sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

Zulassen, dass Datenverkehr von tun0 (Tunnel) über eth0 (intern) zurückgeleitet wird. Da wir den Zustand RELATED, ESTABLISHED angeben, wird er auf Verbindungen beschränkt, die aus dem internen Netzwerk initiiert werden. Blockieren des externen Datenverkehrs, der versucht, eine neue Verbindung zu initiieren.

sudo iptables -A INPUT -i lo -j ACCEPT

Zulassen des eigenen Loopback-Verkehrs des Raspberry Pi.

sudo iptables -A INPUT -i eth0 -p icmp -j ACCEPT

Computern im lokalen Netzwerk erlauben, den Raspberry Pi anzupingen.

sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Zulassen von SSH aus dem internen Netzwerk.

sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

Erlaubt, dass der gesamte vom Raspberry Pi initiierte Datenverkehr zurückkehrt. Dies ist das gleiche Staatsprinzip wie zuvor.

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Wenn der Datenverkehr keiner der angegebenen Regeln entspricht, wird er verworfen.

sudo apt-get install iptables-persistent

sudo systemctl enable netfilter-persistent

Die erste Zeile installiert einen Teil des Codes, der die iptable-Regeln, die wir gerade erstellt haben, zwischen Neustarts persistent macht. Der zweite speichert die Regeln, nachdem Sie sie geändert haben. Diesmal reicht es, den ersten zu laufen. Wenn Sie die Regeln ändern, führen Sie die zweite zum Speichern aus. Iptable-Regeln sind wirksam, sobald Sie sie hinzufügen, wenn Sie etwas vermasseln und den Zugriff verlieren, starten Sie einfach neu und die nicht bereits gespeicherten Regeln werden zurückgesetzt.

Schritt 6: Fazit

Jetzt können Sie diesen Tunnel von jedem Gerät oder Computer im selben Netzwerk verwenden. Ändern Sie einfach das Standard-Gateway auf die IP-Adresse Ihres Raspberry Pi. In meinem Fall verwenden beide meine Kodi Media Center (ein Schlafzimmer und ein Wohnzimmer) diese Verbindung, damit ich meine schwedischen Wiedergabekanäle streamen kann. Natürlich gibt es auch andere Dinge, für die Sie dies verwenden können.

Denken Sie jedoch daran, dass die Leistung je nach gewähltem VPN-Anbieter und Geschwindigkeit Ihrer Internetverbindung möglicherweise langsam ist.

Wenn Sie Fragen haben oder möchten, dass ich etwas klarstelle, lassen Sie es mich in den Kommentaren wissen! Für weitere technische Beiträge besuchen Sie bitte meinen Blog Hackviking!

Empfohlen: