Config ServerNET Routing

Aus OpenVPN Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

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 Zertifikate 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.
Persönliche Werkzeuge