Sicheres Netzwerk

VPN-Server mit dem Raspberry Pi aufbauen

21.11.2014
Von David Wolski

Vorarbeit: Einen Port am Router weiterleiten

Der Router muss außerdem wissen, welche Anfragen aus dem Internet durchgelassen werden solleen und welcher Teilnehmer im Netzwerk der Open-VPN-Server ist. Zu diesem Zweck richten Sie auf dem Router Port-Forwarding ein, um gezielt nach außen einen einzigen Port zu öffnen und an die passende Adresse im LAN weiterzuleiten. Der Port für Open VPN ist der Port 1194 (UDP). Wenn der Open-VPN-Server im LAN beispielsweise die IP 192.168.1.6 hat, dann leiten Sie vom Router den Traffic vom Typ UDP am Ports 1194 auf die interne IP-Adresse und den dortigen Port 1194 um. Welche IP-Adresse die Netzwerkschnittstelle (WLAN oder Ethernet) des Raspberry Pi hat, finden Sie dort in der Kommandozeile mit dem Befehl

/sbin/ifconfig

heraus. Der Server, der von außen die VPN-Verbindungen akzeptieren soll, muss zudem aus dem Internet erreichbar sein. Und zwar über eine feste IP-Adresse oder über einen eindeutigen DNS-Namen.

Parameter für Schlüssel festlegen: Legen Sie diese Einstellungen in der Datei "/etc/ openvpn/easy-rsa/vars" fest, damit die Scripts zur Schlüsselerzeugung für Client und Server die Werte übernehmen.
Parameter für Schlüssel festlegen: Legen Sie diese Einstellungen in der Datei "/etc/ openvpn/easy-rsa/vars" fest, damit die Scripts zur Schlüsselerzeugung für Client und Server die Werte übernehmen.

Bei DSL-Anbindung fällt eine feste IP aus, da bei jedem Verbindungsaufbau der Provider neue IP-Adressen vergibt. Für diesem Fall kommt ein dynamischer DNS-Dienst wie beispielsweise Noip zur Hilfe, der auch einer sich ändernden IP-Adresse feste Host-Namen im DNS zuteilt. Die meisten DSL-Router unterstützen Noip und teilen dem Dienst nach der Einrichtung automatisch die neue IP des Providers mit.

Open VPN: Installation unter Raspbian

In der Kommandozeile von Raspbian/Raspbmc dient der Paketmanager APT von Debian zur Installation von Open VPN - man muss nichts selbst kompilieren. Mit den beiden Befehlen

sudo apt-get update
sudo apt-get install openvpn

werden die Pakete über die bestehende Internetverbindung aus dem Software-Verzeichnis der Distribution installiert. Für die spätere Erstellung der eigenen Zertifikate für die VPNVerschlüsselung gibt es fertige Scripts, die noch an die richtige Stelle kopiert werden müssen:

sudo cp -r /usr/share/doc/ openvpn/examples/easy-rsa/2.0 / etc/openvpn/easy-rsa

Anschließend gehen Sie mit

cd /etc/openvpn/easy-rsa

in das Script-Verzeichnis und editieren mit

sudo nano vars

die Konfigurationsdatei "vars". Gehen Sie dort zuerst zur Zeile, die mit "export KEY_CONFIG=" beginnt und ändern Sie diese zu:

export KEY_CONFIG=$EASY_RSA/ openssl-1.0.0.cnf

Die Zeile "EASY_RSA=" ändern Sie zudem

export EASY_RSA="/etc/openvpn/ easy-rsa"

Die nächsten Anpassungen sind nahe am Ende der Datei zu machen, um Namen und Identität des VPNs anzupassen. Viele dieser Parameter sind zwar nicht unbedingt für die korrekte Funktion des VPNs relevant, müssen aber trotzdem gesetzt sein:

export KEY_COUNTRY="DE"

Landeskürzel, beispielsweise "DE" für Deutschland.

export KEY_PROVINCE="BY"

Ein beliebiger Name für das Bundesland.

export KEY_CITY="Muenchen"

Eine Ortsangabe, die den Standort angibt.

export KEY_ORG="MeinVPN"

Ein Firmenname Ihrer Wahl. Kann auch einfach der Domain-Name sein.

export KEY_EMAIL="pcwelt@googlemail.com"
export KEY_EMAIL=pcwelt@googlemail.com

Zweimalige Angabe einer beliebigen Mailadresse des VPN-Administrators, also meist einfach die eigene Adresse.

export KEY_CN="example.no-ip.com"

Der gewünschte Name dieses VPNs. Es sollte hier die Angabe des dynamischen Domain- Namens erfolgen, der zuvor über Noip eingerichtet wurde.

export KEY_NAME="MeinVPN"

Ein beliebiger Name für den Aussteller der Zertifikate.

export KEY_OU="MeinVPN"

Eine Angabe zum Abteilungsnamen, der frei gewählt werden kann. Die abschließenden beiden Parameter

export PKCS11_MODULE_ PATH=changeme
export PKCS11_PIN=1234

kommen nicht zum Einsatz und brauchen nicht geändert zu werden.