Für die Clients: Zertifikate und Schlüssel
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.