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





