Aus Raspberry Pi Geek 04/2017

Der Raspberry Pi als VPN-Gateway mit Access Point (Seite 2)

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.

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«.

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

Löcher stopfen

Ob das VPN auch wirklich funktioniert, prüfen Sie über http://icanhazip.com: Diese Webseite spuckt als Ausgabe lediglich ihre öffentliche IP aus. Über das Kommando curl -s icanhazip.com funktioniert das auch von der Eingabeaufforderung aus. Ergänzen Sie den Befehl um einen Geo-IP-Lookup, erhalten Sie Ihren aktuellen Standort – zumindest aus der Sicht des Internets. Je nachdem, ob das VPN aktiv ist, meldet der Aufruf geoiplookup nun Deutschland oder die Niederlande als Standort (Listing 10).

Listing 10

 

$ sudo apt install geoip-bin
$ sudo service openvpn stop
$ geoiplookup $(curl -s icanhazip.com)
GeoIP Country Edition: DE, Germany
$ sudo service openvpn start
$ geoiplookup $(curl -s icanhazip.com)
GeoIP Country Edition: NL, Netherlands
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben