Sicheres Netzwerk

VPN-Server mit dem Raspberry Pi aufbauen

21.11.2014
Von David Wolski

Für die Clients: Zertifikate und Schlüssel

Serverschlüssel erzeugen: Client und Server bekommen eigene Schlüssel, die jeweils mit Scripts aus dem Paket von Open VPN erzeugt werden. Die optionale Passwortabfrage lassen Sie jeweils leer.
Serverschlüssel erzeugen: Client und Server bekommen eigene Schlüssel, die jeweils mit Scripts aus dem Paket von Open VPN erzeugt werden. Die optionale Passwortabfrage lassen Sie jeweils leer.

Der Server hat nun alle benötigten Schlüssel und Zertifikate. Damit Sie sich aber mit einem VPN-Client später verbinden können, braucht jeder Client natürlich auch sein eigenes Schlüsselbund. Dieses erzeugen Sie in diesem Schritt mit dem Aufruf von

./build-key client1

Auch hier können Sie wieder die vorgegebenen Werte übernehmen und lassen "Passwort" leer. Die Client-Dateien werden ebenfalls im Verzeichnis "/etc/openvpn/easy-rsa/keys" abgelegt. Aus diesem Verzeichnis brauchen Sie für den Client Nummer eins die Dateien "ca. cert", "client1.crt" und "client1.key".

Routing: Vom VPN ins Netzwerk

Das Linux-System auf dem Raspberry Pi soll den Datenverkehr aus dem VPN ins lokale Netzwerk weiterleiten und zudem noch eine Internetverbindung für die Clients zur Verfügung stellen. Öffnen Sie wieder eine Root-Shell mit

sudo -s

da alle weiteren Befehle wieder Root-Rechte verlangen. Öffnen Sie die Datei "2/etc/sysctl. conf" mittels

nano /etc/sysctl.conf

im Texteditor, entfernen das Kommentarzeichen "#" vor der Zeile "#net.ipv4.ip_forward=1" und aktivieren nach dem Speichern der Datei die Änderung mit diesem Befehl:

sysctl -p /etc/sysctl.conf

Nun muss noch mit dem Paketfilter iptables, der Teil des Linux-Kernels ist, eine Weiterleitung für die VPN-Pakete eingerichtet werden. Mit den beiden Befehlen

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT

erstellen Sie die Regeln für das VPN-Netzwerk-Interface und mit den weiteren drei Befehlen

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

legen Sie fest, dass die VPN-Clients auch in das lokale Netzwerk und ins Internet kommen. Damit diese Regeln immer gleich automatisch nach dem Start des Raspberry Pi aktiv werden, geben Sie

iptables-save > /etc/iptables.up.rules

ein, um die aktuellen Einstellungen von iptables zu sichern. Erstellen Sie mit

nano /etc/network/if-pre-up.d/ iptables

eine neue Script-Datei, der Sie den Inhalt

#!/bin/bash /sbin/iptables-restore < /etc/ iptables.up.rules

geben und speichern. Jetzt müssen Sie die Datei nur noch mit

chmod +x /etc/network/ if-pre-up.d/iptables

ausführbar machen.