Der Raspberry Pi als VPN-Gateway mit Access Point

© hxdyl, 123RF

Gut getunnelt

Mit ein wenig Know-how verwandeln Sie im Handumdrehen einen Raspberry Pi in ein abgesichertes System mit integriertem VPN-Gateway für die Geräte in Ihrem heimischen Netz.

Dieses Video ist in Deutschland leider nicht verfügbar, da es möglicherweise Musik enthält, für die die erforderlichen Musikrechte von der GEMA nicht eingeräumt wurden. Das tut uns leid. Zwar bekommen Sie diese Meldung aufgrund der jüngst erfolgten Einigung zwischen Youtube und der GEMA nicht mehr zu Gesicht, doch sprechen noch zahlreiche andere Gründe für einen via VPN getunnelten Internetzugang: Abgesehen vom schlichten Wunsch danach, sich anonym im Internet zu bewegen, gibt es weiterhin zahlreiche geogeblockte Webseiten und unsichere öffentliche Netzwerke.

Nun reißt das Aktivieren eines VPNs zwar in der Regel die virtuellen Grenzen im WWW nieder, doch in Sachen Privacy bedarf es mehr als eines Tunnels in das Internet eines fremden Landes. Schon alleine das Aufrufen einer Webseite mit dem üblicherweise genutzten Browser hinterlässt zahlreiche Spuren, durch die man Rückschlüsse auf den Anschlussinhaber ziehen kann. Von daher sollten auf Privatsphäre bedachte Nutzer zu spezialisierten Distributionen wie Tails [1] greifen.

Tails zielt als Live-System auf die Nutzung von einem USB-Stick oder optischen Medium, eine Installation auf einem schnellen Massenspeicher sieht es nicht vor. Zudem gibt es die Privacy-Distribution bislang nur für 32- und 64-Bit-PCs; eine ARM-Variante für den Raspberry Pi fehlt nach wie vor. Der Grund liegt unter anderem im kleinen Arbeitsspeicher des RasPi: In 1 GByte RAM lässt sich nicht das komplette System laden.

Dennoch bietet sich der Raspberry Pi ideal als System zum Schutz der Privatsphäre an: Er kostet wenig und lässt sich daher – mit eingeschränkter Softwareauswahl – als Zweit- oder Drittrechner im Haus aufstellt. Er verbraucht kaum Strom, sodass er rund um die Uhr laufen und beispielsweise Serverdienste anbieten kann. Zudem kann man das Linux-System relativ leicht so einrichten, dass garantiert jedes vom Computer abgeschickte Bit über das VPN eines vertrauenswürdigen Anbieters läuft. Als Beispiel in diesem Artikel nutzen wir den US-Dienst Private Internet Access oder kurz PIA [2].

Editor

An vielen Stellen dieses Tutorials gilt es, Konfigurationsdateien zu bearbeiten. Am einfachsten erledigen Sie das auf dem RasPi mit dem Editor Nano. Zum Bearbeiten öffnen Sie die Datei mit dem Kommando sudo nano Datei. Das sudo vor dem Befehl sorgt für administrative Rechte. Ihre Änderungen sichern Sie mit [Strg]+[O] und einem Druck auf die Eingabetaste, danach beenden Sie den Editor mit [Strg]+[X].

RasPi als VPN-Gateway

Installieren Sie im ersten Schritt Raspbian [3] auf dem Raspberry Pi. Soll das System später lediglich als VPN-Gateway dienen, können Sie auf die grafische Oberfläche verzichten. Spielen Sie in diesem Fall die Lite-Version des Betriebssystems ein.

Nach der Installation aktualisieren Sie das System und passen mittels des Raspberry-Pi-Konfigurationswerkzeugs die Spracheinstellungen an (Listing 1). Möchten Sie den RasPi ohne Eingabegeräte und Monitor betreiben, müssen Sie zudem darauf achten, dass Sie seit der Raspbian-Version vom 25.11.2016 den SSH-Server schon vor der Installation aktivieren müssen. Erstellen Sie dazu auf der Boot-Partition eine leere Datei mit dem Namen ssh [4].

Listing 1

 

$ sudo apt update
$ sudo apt full-upgrade
$ sudo raspi-config

Für die Einwahl in einen OpenVPN-Server benötigen Sie nun die Pakete aus der ersten Zeile von Listing 2. Die Uncomplicated Firewall Ufw bietet dabei eine einfache Absicherung, falls einmal das VPN ausfallen sollte. Der Bittorrent-Client mit integriertem Webfrontend Transmission (zweite und dritte Zeile) dient später als Probe aufs Exempel, ob auch kritische Dienste wie Filesharing über das VPN laufen. Benötigen Sie Bittorrent nicht, lassen Sie die Installation (und spätere Konfiguration) des Transmission-Diensts auch außen vor.

Listing 2

 

$ sudo apt install openvpn ufw
$ sudo apt install transmission-daemon
$ sudo update-rc.d -f transmission-daemon remove

Entscheiden Sie sich für Transmission, stoppen Sie den Dienst und konfigurieren ihn so, dass er nicht mehr automatisch während des Bootvorgangs lädt (Listing 3). Zudem müssen Sie dafür sorgen, dass Sie (und andere Nutzer in Ihrem Netzwerk) das Webfrontend aufrufen dürfen. Der Stream-Editor Sed erledigt das direkt in der Kommandozeile: Die Syntax lautet dabei sed -i -e s/'Suche'/'Ersetze'/ Datei. Der Schalter -i weist Sed dabei an, direkt in der Datei zu arbeiten, und -e führt die nachfolgende Option als Sed-Skript aus.

Listing 3

 

$ sudo service transmission-daemon stop
$ sudo sed -i -e s/'"rpc-authentication-required": true'/'"rpc-authentication-required": false'/ /etc/transmission-daemon/settings.json
$ sudo sed -i -e s/'127.0.0.1'/'127.0.0.1, 192.168.*.*'/ /etc/transmission-daemon/settings.json
$ sudo grep rpc /etc/transmission-daemon/settings.json
    "rpc-authentication-required": false,
[...]
    "rpc-whitelist": "127.0.0.1, 192.168.*.*",
[...]
$ sudo service transmission-daemon start

Desktop-System

Die hier für den Raspberry Pi gezeigten Schritte lassen sich problemlos auch auf PCs unter Debian oder dessen Derivaten (wie Ubuntu) übertragen. Achten Sie dort beim Installieren darauf, dass sie nicht ausgerechnet Ihr normales Benutzerkonto mit personalisiertem Webbrowser und Mailclient nutzen: Andernfalls führen Sie alle Bemühungen um einen anonymisierten Internet-Zugang ad absurdum.

Bittorrent ins VPN zwingen

Statt der Sed-Kommandos könnten Sie die Datei /etc/transmission-daemon/settings.json auch mit einem klassischen Editor wie etwa Nano bearbeiten. Die Ausgabe des des Grep-Kommandos in Listing 3, Zeile 5 zeigt, an welchen Stellen Sie Hand anlegen müssen. Je nach Konfiguration Ihres Routers müssen Sie die Kommandos noch an den IP-Bereich Ihres Netzwerks anpassen. Der Eintrag 192.168.*.* deckt sämtliche IPs von 192.168.0.1 bis 192.168.255.255 ab.

Nach dem abschließenden Neustart des Transmission-Servers können Sie ihn aus dem LAN unter http://<I>IP-Adresse<I>:9091 aufrufen (Abbildung 1). Fügen Sie hier jedoch noch keine Torrents ein: Noch funkt der RasPi sämtliche Daten direkt über Ihre Internet-Anbindung. Es wird also höchste Zeit, den VPN-Zugang einzurichten.

Abbildung 1: Der Transmission-Daemon eignet sich als schlanker Bittorrent-Client mit integrierter Weboberfläche für den Raspberry Pi.

In der Regel bieten VPN-Anbieter direkt OpenVPN und somit entsprechende Konfigurationsdateien an. Bei PIA erhalten Sie diese über die Homepage. Mit den Kommandos aus Listing 4 laden Sie sie als Paket herunter und entpacken die Dateien mitsamt der benötigten Zertifikate nach /etc/openvpn/.

Listing 4

 

$ wget http://www.privateinternetaccess.com/openvpn/openvpn.zip
$ sudo unzip openvpn.zip -d /etc/openvpn
  inflating: /etc/openvpn/AU Melbourne.ovpn
  [...]
  inflating: /etc/openvpn/ca.rsa.2048.crt
  inflating: /etc/openvpn/crl.rsa.2048.pem
$ sudo sed -i -e s/'#AUTOSTART="home office"'/'AUTOSTART="PIA"'/ /etc/default/openvpn
$ grep AUTOSTART /etc/default/openvpn 
#AUTOSTART="all"
#AUTOSTART="none"
AUTOSTART="PIA"

Damit der OpenVPN-Client beim Booten automatisch einen der landesspezifischen VPN-Server von PIA lädt, passen Sie noch den Autostart-Eintrag in der Datei /etc/default/openvpn an. Durch AUTOSTART="PIA" lädt der OpenVPN-Dienst bei seinem Start automatisch die (noch anzulegende) Konfigurationsdatei PIA.conf aus /etc/openvpn/.

Den Inhalt dieser Datei entnehmen Sie Listing 5. Die Konfiguration orientiert sich an den Vorgaben zum niederländischen VPN-Zugang von PIA und ergänzt diese um erweiterte Logs sowie den Aufruf zweier Skripte (vpn-up.sh und vpn-down.sh) nach dem Start und nach dem Beenden der VPN-Verbindung. Bevorzugen Sie einen Tunnelausgang in einem anderen Land, passen Sie die Konfiguration entsprechend an.

Listing 5

 

client
dev tun
proto udp
remote nl.privateinternetaccess.com 1198
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass /etc/openvpn/userpass.data
comp-lzo
verb 1
reneg-sec 0
crl-verify /etc/openvpn/crl.rsa.2048.pem
ca /etc/openvpn/ca.rsa.2048.crt
disable-occ
log-append /var/log/piavpn.log
status-version 3
status status
script-security 2
up /etc/openvpn/update-resolv-conf
route-up /etc/openvpn/vpn-up.sh
down /etc/openvpn/vpn-down.sh

Die Zugangsdaten holt sich der OpenVPN-Client aus der Datei /etc/openvpn/userpass.data. Dort tragen Sie in der ersten Zeile Ihre Benutzerkennung beim VPN-Anbieter und in der zweiten das zugehörige Passwort ein (Listing 6). Damit nicht jeder Nutzer des Systems diese Daten einsehen kann, ändern Sie mittels sudo chmod 600 /etc/openvpn/userpass.data die Dateirechte, sodass nur noch Root die Datei auslesen darf.

Listing 6

 

benutzernamepasswort

Anchließend füllen Sie die Skripte /etc/openvpn/vpn-up.sh (Listing 7) und /etc/openvpn/vpn-down.sh (Listing 8). Damit das System diese auch ausführen darf, fehlen noch die entsprechenden Rechte. Die setzen Sie mit den Befehlen aus der ersten Zeile von Listing 9. Dann lassen Sie zur Übernahme der Änderungen an der /etc/default/openvpn Systemd nach modifizierten Konfigurationen suchen und starten schlussendlich den OpenVPN-Dienst neu (zweite und dritte Zeile).

Listing 7

 

#!/bin/sh
# Dienste wie Transmission starten
service transmission-daemon start

Listing 8

 

#!/bin/sh
# Dienste wie Transmission beenden
service transmission-daemon stop
# DNS-Leaks verhindern
/etc/openvpn/update-resolv-conf

Listing 9

 

$ sudo chmod +x /etc/openvpn/vpn-down.sh /etc/openvpn/vpn-up.sh
$ sudo systemctl daemon-reload
$ sudo service openvpn restart

Nun baut OpenVPN automatisch die Verbindung auf. Die dabei entstehenden Meldungen schiebt das Programm nach /var/log/piavpn.log. Mittels sudo tail -f /var/log/piavpn.log sehen Sie diese während des Verbindungsaufbaus ein (Abbildung 2).

Abbildung 2: Probleme beim Verbindungsaufbau zum VPN-Server ermitteln Sie anhand des Logs in /var/log/piavpn.log.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • PiVPN installiert OpenVPN auf dem Raspberry Pi

    Ein Virtual Private Network schützt Ihre Daten vor neugierigen Blocken Dritter. PiVPN übernimmt dabei das Einrichten und Managen von OpenVPN.

  • Der Raspberry Pi 3 Model B im Detail

    Viele Raspberry-Fans wünschten sich für die nächste Generation des Mini-Computers USB 3.0, SATA-Schnittstelle und Gigabit-Ethernet. Dies alles bietet der Raspberry Pi 3 nicht, dafür aber WLAN, Bluetooth und eine schnelle 64-Bit-CPU.

  • Der Raspberry Pi als 3G-Hotspot

    WLAN gibt es vielerorts und oft auch kostenlos – Internet über das UMTS-Netz erscheint unnötig. Doch in der Realität trüben oft schlechter Empfang und insbesondere mangelnde Verschlüsselung das Vergnügen. Ein Raspberry Pi mit UMTS-Stick als eigener Hotspot macht Sie unabhängig von öffentlichen WLANs.

  • Bastelprojekte mit dem Raspberry Pi

    Der Einplatinen-PC Raspberry Pi erweist sich als Multitalent, das sich gleichermaßen zum Regeln und Steuern wie als kleiner Server eignet.

  • Foto-Backup auf RasPi-Basis (Teil 2)

    Auf einer Reise läuft man immer Gefahr, dass die Kamera abhanden kommt. Daher sollte man tunlichst seine Schnappschüsse auch unterwegs sichern. Der Fototank erledigt das – und präsentiert die Bilder in der erweiterten Version nun auch per Webserver.

Aktuelle Ausgabe

10/2018
Weltweiter Empfang

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Physiklabor

    Der Java-Dialekt Processing zielt auf interaktive Animationen ab und eignet sich auch für Programmiernovizen.

  • Abstand halten

    Der VL53L0X misst präzise Entfernungen bis zu zwei Metern. Das macht ihn zum passenden Kandidaten für RasPi-Projekte.

  • Tux-Funk

    Der SDR-Empfänger RSP2pro von SDRplay bringt Amateurfunk auf den Raspberry Pi.

  • Himbeersieb

    Die aus Österreich stammende Upribox auf Basis des Raspberry Pi schützt wirkungsvoll vor Gefahren aus dem Internet. Jetzt ist das System in der zweiten Version erschienen.

  • Unter Kontrolle

    Das programmierbare Steuermodul Controllino bietet mit seinen zahlreichen Ein- und Ausgängen vielfältige Möglichkeiten.

  • Dehnübungen

    Ein RasPi eignet sich bestens zum Steuern eines Fischertechnik-Roboters. Damit dabei kein Chaos entsteht, gilt es, die Steuerung genau zu programmieren.

  • Klangmaschine

    Der RasPi bringt genügend Performance mit, um als kleine DAW zu dienen. Mit Waveform 9 haben Sie die passende Software zur Hand.

  • Fremdgehen

    Nicht jedes Programm gibt es auch für die ARM-Architektur. Der kommerzielle Emulator Exagear Desktop fungiert als Übersetzer zwischen der ARM- und x86-Welt.

  • Ausfallsicher

    Eine selbst gebaute USV für den RasPi verschafft Ihnen die entscheidenden Sekunden, um bei unerwarteten Stromausfällen einem Datenverlust vorzubeugen.

  • Am laufenden Band

    Die Kombination aus einem Fischertechnik-Bausatz und dem Controllino-Modul bietet eine ideale Basis, um ein funktionierendes Industriemodell zu gestalten.