Aus Raspberry Pi Geek 04/2017

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

Die über Bittorrent ermittelbare IP lässt sich ebenfalls kontrollieren: Dazu übernehmen Sie den von Check My Torrent IP [5] angezeigten Magnetlink in das Webfrontend von Transmission und warten, bis sich die Webseite im Browser aktualisiert. Sie zeigt nach einem kurzen Moment in der Liste unterhalb der Internet-IP Ihres Browsers die VPN-IP des Raspberry Pi an (Abbildung 3). Die Fehlermeldung innerhalb von Transmission selbst dürfen Sie dabei getrost ignorieren. Sie rührt daher, dass bei diesem Test kein “richtiger” Download vonstatten geht.

Abbildung 3: Mit Seiten wie Check My Torrent IP prüfen Sie, ob Dienste wie Bittorrent Ihre Daten über das VPN schicken.

Abbildung 3: Mit Seiten wie Check My Torrent IP prüfen Sie, ob Dienste wie Bittorrent Ihre Daten über das VPN schicken.

Nun sorgen die Up- und Down-Skripte dafür, dass kritische Dienste wie beispielsweise Transmission nur dann laufen, wenn der OpenVPN-Dienst die zuvor konfigurierte Verbindung aufbauen konnte (Listing 11). Sollte mit dieser jedoch einmal etwas schieflaufen – beispielsweise das Programm abstürzen – dann überträgt der Dienst weiterhin Daten, allerdings direkt über die eigene Leitung. Von daher gilt es, das System so abzusichern, dass es nur Daten über den VPN-Tunnel ins Internet schicken kann.

Listing 11

 

$ sudo service openvpn stop
$ sudo service transmission-daemon status | grep Active
   Active: inactive (dead) since Do 2016-12-01 17:37:50 CET; 7s ago
$ sudo service openvpn start
$ sudo service transmission-daemon status | grep Active
   Active: active (running) since Do 2016-12-01 17:37:22 CET; 21s ago

Dazu haben Sie schon am Anfang die Uncomplicated Firewall installiert. Das von Canonical entwickelte Programm lässt sich sehr einfach einrichten (Listing 12). Im ersten Schritt blockieren Sie sämtlichen Datenverkehr, um dann den VPN-Tunnel tun0 gezielt freizuschalten. Im internen Netz soll das System erreichbar bleiben, daher geben Sie den Adressbereich (hier 192.168.0.0 bis 192.168.255.255) frei. Eventuell gilt es, diese Zeilen an den Adressbereich Ihres Netzwerks anzupassen. Anschließend machen Sie für OpenVPN eine weitere Ausnahme: Der VPN-Client muss sich über Port 1198 (je nach Anbieter auch einen anderen Port) zum Gegenstück im Internet verbinden können.

Listing 12

 

### Erst einmal jeglichen Traffic ablehnen
$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
### Das VPN-Gateway in der Firewall freigeben
$ sudo ufw allow in on tun0
$ sudo ufw allow out on tun0
### Ausnahme für internes Netzwerk (IP-Bereich bitte anpassen)
$ sudo ufw allow in on eth0 from 192.168.0.0/16
$ sudo ufw allow out on eth0 to 192.168.0.0/16
### Ausnahme für OpenVPN an eth0 (Port entsprechend anpassen)
$ sudo ufw allow in on eth0 from any port 1198
$ sudo ufw allow out on eth0 to any port 1198
### Firewall aktivieren
$ sudo ufw enable

Der Schutz durch die Firewall lässt sich leicht testen: In Listing 13 starten Sie OpenVPN und kontrollieren mit einem Geo-IP-Lookup den Status des VPN-Zugangs. Schießen Sie nun den OpenVPN-Dienst ohne Rücksicht ab, fließt kein weiteres Bit mehr ins Internet, selbst ein Ping landet im Nichts. Der Neustart der VPN-Verbindung scheitert nach diesem Angriff an der Firewall – am sichersten ist es, nun das System neu zu starten.

Listing 13

 

$ sudo service openvpn start
$ geoiplookup $(curl -s icanhazip.com)
GeoIP Country Edition: NL, Netherlands
$ sudo pkill -9 -f openvpn
Getötet
$ ping -c 1 raspberrypi.org
ping: unknown host raspberrypi.org

RasPi als VPN-Access-Point

Über Ethernet an das lokale Netzwerk angeschlossen, bleibt das WLAN-Modul des Raspberry Pi 3 ungenutzt. Von daher muss die VPN-Verbindung nicht dem RasPi exklusiv vorbehalten bleiben: Richtet man auf dem Raspbian-System einen Access Point ein, lässt sich über ihn ein Laptop oder ein Smartphone via VPN mit dem Internet verbinden. Allerdings tauschen besonders mobile Geräte mit Android oder iOS konzeptbedingt permanent mit Google und Apple Daten aus und verraten damit die Identität des Nutzers, was den Sinn eines VPNs hintertreibt.

Für den Access Point müssen Sie weitere Pakete installieren: Das WLAN selbst spannt Hostapd auf, der einfache DNS- und DHCP-Server Dnsmasq weist den Rechnern darin eine IP-Adresse zu. Zudem müssen Sie dafür sorgen, dass Raspbian dem WLAN-Gerät wlan0 nicht automatisch eine IP-Adresse zuweist. Mit der Zeile denyinterfaces wlan0 in der Konfigurationsdatei /etc/dhcpcd.conf verhindern Sie das (Listing 14). Anschließend ersetzen Sie in der /etc/network/interfaces die Konfiguration der WLAN-Schnittstelle durch den Inhalt von Listing 15 und laden dann sämtliche betroffenen Dienste und Geräte neu (Listing 16).

Listing 14

 

$ sudo apt-get install dnsmasq hostapd resolvconf
$ echo denyinterfaces wlan0 | sudo tee -a /etc/dhcpcd.conf

Listing 15

 

# allow-hotplug wlan0
# iface wlan0 inet manual
#     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan0
iface wlan0 inet static
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
#   wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Listing 16

 

$ sudo systemctl daemon-reload
$ sudo service dhcpcd restart
$ sudo ifdown wlan0; sudo ifup wlan0

Den Hostapd-Dienst richten Sie über die zu erstellende Datei /etc/hostapd/hostapd.conf ein. Listing 17 enthält alle nötigen Einstellungen für einen Raspberry Pi 3 mit seinem integrierten WLAN-Modul. In den Zeilen 15 und 16 sollten Sie für die SSID und das Passwort des WLANs eigene Werte setzen. Damit Hostapd diese Konfiguration auch nutzt, müssen Sie in /etc/default/hostapd noch den Pfad zur Datei eintragen (Listing 18).

Listing 17

 

interface=wlan0
driver=nl80211
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
# Bitte Netzwerk-Name und Passwort ändern
ssid=VPN-Gateway
wpa_passphrase=raspberry

Listing 18

 

[...]
#DAEMON_CONF=""
DAEMON_CONF="/etc/hostapd/hostapd.conf"
[...]
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