Config ServerNET Routing
Aus OpenVPN Wiki
Einleitung
Diese Anleitung soll helfen um eine einfache Roadwarrior Lösung mittels OpenVPN und Routing zu realisieren.
Hinweis: Diese Anleitung setzt ein wenig Basiswissen in Netzwerktechnik voraus.
Installation von OpenVPN auf dem Server und den Clients
siehe Install_Linux bzw. Install_Windows
Laden des TUN-Drivers (nur Linux)
Der Kernel muss ein entsprechendes Modul bereitstellen (tun.o bzw. tun.ko) oder TUN-Support einkompiliert haben. Danach kann man es als root einfach mit folgendem Befehl laden:
root@erde# modprobe tun
Erzeugen von Zertifikaten/Schlüsseln
Zum Erzeugen der nötigen Zertikate kann man z. B. easyRSA verwenden.
Folgende Dateien auf den Server kopieren:
- ca.crt
- server.crt
- server.key
- dh1024.pem
Folgende Dateien auf den Client kopieren:
- ca.crt
- client.crt
- client.key
Öffnen des benötigten Ports der Firewall
Steht der Server hinter einer Firewall/einem Router so müssen dort der entsprechende Port auf den Server weitergeleitet werden. Der Standardport von OpenVPN ist 1194/UDP.
Setzen der entsprechenden Routen im Netzwerk
Damit spätere OpenVPN-Clients auf das LAN zugreifen können, müssen im LAN Routen gesetzt werden. Die einfachste Variante ist das Setzen einer statischen Route auf dem Standardgateway des LANs. Im Normalfall ist dies ein Router (FritzBox, WLAN-Router, Linuxbox). Je nach Gegebenheit muss eine Route gesetzt werden, die das zukünftige VPN-LAN mit dem VPN-Server verknüpft:
10.8.0.0/255.255.255.0 -> 192.168.1.123 (VPN-Server-IP im LAN)
Forwarding am Server aktivieren
Der VPN-Server muss Pakete vom virtuellen Netzwerk (10.8.0.0/24) ins LAN (192.168.1.0/24) weiterleiten und umgekehrt.
Unter Linux wird IP Forwarding mit dem folgenden Befehl aktiviert:
echo "1" > /proc/sys/net/ipv4/ip_forward
Hinweis: Diese Einstellung bleibt nur bis zum nächsten Neustart aktiv.
Unter Windows mit Start -> Ausführen -> regedit den Registrierungseditor starten und den DWORD-Wert "IPEnableRouter" des Schlüssels HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters von 0=disabled in 1=enabled ändern.
Sofern auf dem Server eine Firewall aktiv ist muss das IP-Forwarding von/zu dem virtuellen Netzwerk freigeschaltet werden.
Anpassen der Konfigurationsdateien
Konfigurationsdatei für den/die OpenVPN-Client(s):
client # entspricht den Direktiven: tls-client und pull remote my-openvpn-server.dyndns.com 1194 # Hostname/externe IP des Servers/Routers, Port entsprechend anpassen proto udp # Protokoll UDP, für TCP: proto tcp-client dev tun # evtl. tun0 unter Linux # Hier die Pfade anpassen um auf die erstellten Keys zu verweisen ca ca.crt cert client.crt #ACHTUNG bei Keys die nach obigem Tutorial erstellt wurden muss evtl der Name angepasst werden! key client.key #ACHTUNG "" "" "" Name anpassen! ns-cert-type server # Eine Sicherheitsmaßnahme verb 3 # Zum Debugging erhöhen mute 50 # Zum Debugging auskommentieren
Konfigurationsdatei für den OpenVPN-Server:
server 10.8.0.0 255.255.255.0 # Das virtuelle VPN-Netzwerk (+ tls-server) port 1194 # Auf Port 1194 horchen proto udp # Protokoll UDP, für TCP: proto tcp-server dev tun # evtl. tun0 unter Linux # Hier die Pfade anpassen um auf die erstellten Keys zu verweisen ca ca.crt cert server.crt #ACHTUNG bei Keys die nach obigem Tutorial erstellt wurden evtl server01.crt key server.key #ACHTUNG "" "" "" server01.key dh dh1024.pem client-to-client # Daten von VPN-Client zu VPN-Client wird direkt in OpenVPN weitergeleitet push "route 192.168.1.0 255.255.255.0" # Den Client über das Server-LAN informieren (wichtig!) # float # Nur wenn Clients ihre IPs während der Verbindung wechseln ping-timer-rem keepalive 20 180 # Alle 20 Sekunden pingen. 3 Minuten Timeout fuer CLientverbindung verb 3 # Zum Debugging erhöhen mute 50 # Zum Debugging auskommentieren
Testen der Verbindung
Der Client sollte nun die Verbindung zum Server herstellen und halten können. Einfach mal 5 Minuten warten und die Logs von Server und Client beobachten. Desweiteren sollte der Client auch eine IP aus dem VPN-Netzwerk bekommen haben. Hinweis: Die Netzwerkmaske 255.255.255.252 ist korrekt. Es ist auch wichtig zu erwähnen, dass die Clients nicht IPs nach der normalen Reihenfolge bekommen, sondern in 4er Schritten. Dies kommt von der "seltsamen" Netzwerkmaske.
Der OpenVPN Server hat immer die IP mit der Endnummer .1 (z.B. 10.8.0.1). Diese IP sollte auch pingbar sein!
Troubleshooting
- Ping auf 10.8.0.1 funktioniert nicht: Fehler bei der VPN-Verbindung oder Firewall blockt den Pingversuch.
- Ping auf 192.168.1.123 (VPN-LAN-IP) funktioniert nicht: Forwarding ist nicht aktiviert oder Firewall blockt.
- Ping auf beliebige LAN-Rechner funktioniert nicht: Fehlende oder fehlerhafte Route ins VPN Netzwerk.
