Kostenlose VPN-Lösung

OpenVPN mit Linux

16.04.2010
Von Jürgen Donauer

Die Datei server.conf

Diese Datei enthält die Konfiguration des Server-Daemon. Die Entwickler raten, die Beispiel-Datei der server.conf zu nehmen und zu modifizieren. In unserem Beispiel finden Sie diese unter /etc/openvpn/examples/sample-config-files. Sie ist allerdings komprimiert. Mittels gunzip server.conf.gzkönnen Sie die Datei auspacken. Theoretisch können Sie die Datei lassen, wo sie ist. Wir jedoch haben sie nach /etc/openvpn kopiert, und das aus zwei Gründen: Erstens ist das Ganze so übersichtlicher, und zweitens startet der OpenVPN-Server in unserem Test-Szenario bei einem Neustart mit den richtigen Einstellungen von selbst.

Das Benutzen der Beispiel-Datei erzeugt eine TUN-Netzwerkschnittstelle und horcht auf dem offiziellen OpenVPN-Port 1194 (UDP). Ebenso stellt es virtuelle Adressen für sich verbindende Clients aus dem 10.8.0.0/24-Subnetz zur Verfügung. Bevor Sie den Server starten, müssen Sie ihm allerdings mitteilen, wo sich die Schlüsseldateien befinden und mit welcher Verschlüsselungsrate Sie den Diffie-Hellman-Parameter erzeugt haben. In unserem Fall kopieren wir daher die Schlüssel ca.crt, server.crt, server.key und dh2048.pem ebenfalls nach /etc/openvpn. Diese befinden sich in unserem Beispiel unter /etc/openvpn/examples/easy-rsa/2.0/keys. Da wir bei Diffie Hellman 2048 verwendet haben, müssen wir den Parameter dh in der server.conf auf dh2048.pem ändern. Sollten Sie die Zertifikate an anderer Stelle aufheben wollen oder haben Sie diese anders benannt, müssen Sie das ebenfalls ändern. Hierfür sind die Parameter ca, cert und key zuständig.

Serverkonfiguration: Die Beispiel-Datei ist ein guter Ausgangspunkt und ausgezeichnet dokumentiert.
Serverkonfiguration: Die Beispiel-Datei ist ein guter Ausgangspunkt und ausgezeichnet dokumentiert.

Soll der Server dem Client Zugriff auf weitere Subnetze nach einer Einwahl zur Verfügung stellen, erledigt dies der push-Parameter. In unserem Fall sorgt dafür die Zeile push “route 192.168.150.0 255.255.255.0“. Möchten wir zudem, dass sämtlicher Datenverkehr durch das VPN-Netzwerk abgehandelt wird. müssen wie die Zeile push „redirect-gateway def1 bypass-dhcp“ auskommentieren, indem der Strichpunkt vor dieser Zeile gelöscht wird.

Alles durch VPN: Mit dieser Einstellung teilen wir dem Client mit, dass er den gesamten Datenverkehr durch das Virtual Private Network abhandeln soll.
Alles durch VPN: Mit dieser Einstellung teilen wir dem Client mit, dass er den gesamten Datenverkehr durch das Virtual Private Network abhandeln soll.

Wichtig: Sollten Sie den gesamten Datenverkehr durch das VPN leiten wollen, müssen Sie höchstwahrscheinlich einige Einstellungen im Netzwerk vornehmen. In unserem Beispiel benötigten wir eine feste Route im Router: 10.8.0.0/24 -> 192.168.150.50 (Einwahlserver). Des Weiteren muss IP-Forwarding auf dem Server funktionieren. Darüber hinaus mussten wir NAT aktivieren. Ob das IP-Forwarding aktiviert ist, überprüfen Sie mit folgendem Befehl: cat /proc/sys/net/ipv4/ip_forward. Ist das Ergebnis eine 0, so ist es deaktiviert. Temporär anschalten können Sie es mittels: echo 1 > /proc/sys/net/ipv4/ip_forward. Soll IP-Forwarding beim Systemstart aktiviert sein, editieren Sie in unserem Beispiel die Datei /etc/sysctl.conf und löschen das Doppelkreuz vor der Zeile: #net.ipv4.conf.default.forwarding=1. NAT aktivieren Sie mit folgenden zwei Befehlen, gesetzt den Fall, dass eth0 die Netzwerkkarte ist: iptables -P FORWARD ACCEPT und iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE.

Netzwerkeinstellungen: Soll jeglicher Datenverkehr durch das VPN gehen, sind Einstellungen am Netzwerk notwendig.
Netzwerkeinstellungen: Soll jeglicher Datenverkehr durch das VPN gehen, sind Einstellungen am Netzwerk notwendig.

Bei einigen aktivierten Parametern ist es wichtig, dass diese auch in der Konfigurations-Datei des Clients vorhanden sind. Dies betrifft zum Beispiel die Kompression comp-lzo oder cipher. Unsere Beispiel-Datei weist in solchen Fällen darauf hin. Somit ist anzuraten, die – guten und verständlichen – Kommentare vor der Aktivierung eines Parameters zu lesen.

Zur Startseite