Funkinsel Setup auf OpenWRT (19.07.5)
Dieses Howto beschreibt das Funkinsel Setup für OpenWRT 19.07.5. Howtos für andere Firmware Images können auf der Seite FunkInsel gefunden werden.
Für die Inbetriebnahme des Tunnels ist eine in der Datenbank dem richtigen Knoten zugewiesene VPN-IP-Adresse sowie ein von Funkfeuer Graz generiertes Zertifikatspackage notwendig! Bitte kontaktiere uns damit wir dir diese IP-Adresse zuordnen bzw. das Zertfikatspackage zusenden können.
Installation
Die meisten Installationsschritte können auch über die Commandline (SSH-Login auf den Router) durchgeführt werden. Hier wird jedoch die Konfiguration via Web-Interface - so weit wie darüber möglich - beschrieben.
Eine funktionierende OpenWRT-Installation inklusive OLSR wird vorausgesetzt.
OpenVPN
Über die Paketverwaltung (System - Software) die Pakete "openvpn-openssl" und "luci-app-openvpn" installieren. Ggf. ist zuvor eine Aktualisierung der Paketlisten mittels "Update lists" Button notwendig.
Nach der Installation sollte nach einem Page-Reload der Punkt "VPN - OpenVPN" in der Menüleiste des Web-Interfaces auftauchen.
Dort kann mittels "Template based configuration" nun eine neue Konfiguration für Funkfeuer angelegt werden. Dazu ist das Template "Client configuration for an ethernet based bridge VPN" zu wählen und mittels "Add" Button eine Konfiguration anzulegen.
Danach diese neue Konfiguration mittels "Edit" Button bearbeiten und über den Link "Switch to advanced configuration" in den erweiterten Konfigurationsmodus wechseln.
Folgenden Einstellungen sind durchzuführen:
Networking: "comp_lzo" -> remove Add: "persist_tun" "persist_tun" -> aktivieren -> Save VPN: Remote: tun.graz.funkfeuer.at -> Save Add: "proto" "proto" -> udp -> Save Add: "resolv_retry" "resolv_retry" -> infinite -> Save Cryptography: ca: CA-File aus deinem individuellen Funkfeuer-VPN-Key-Package hochladen und auswählen cert: Cert-File aus deinem individuellen Funkfeuer-VPN-Key-Package hochladen und auswählen key: Key-File aus deinem individuellen Funkfeuer-VPN-Key-Package hochladen und auswählen dh: File mit DH-Primes (siehe unten) hochladen undd auswählen -> Save Add: "cipher" "cipher" -> none -> Save => Save & apply
Für das "dh"-File kann z.B. dieses hier verwendet werden.
Anschließend kann das VPN über die Checkbox "Enabled" und den "Start"-Button aktiviert werden.
OLSR
Um OLSR auf dem OpenVPN-Interface zu aktivieren muss zuerst ein entsprechendes Interface in Luci angelegt werden. Dazu über "Network - Interfaces" und den Button "Add new interface.." ein Interface hinzufügen:
Anschließend kann OLSR über "Services - OLSR IPv4" auf diesem Interface aktiviert werden:
Damit die OLSR-Routen in separaten Routingtables landen ist zusätzlich noch eine manuelle Konfiguration über die Datei /etc/config/olsrd notwendig. Verbinde dich dazu mittels SSH mit dem Router und füge in dieser Datei folgende zwei Zeilen im Abschnitt "olsrd" ein:
option RtTable '111' option RtTableDefault '112'
Hinweis: Diese Konfiguration verschwindet gerne nach Änderungen der OLSR-Konfiguration via Webinterface. Im Zweifelsfall bitte nach Änderungen immer prüfen ob diese Einstellungen noch vorhanden sind!
Anschliessend muss olsrd neu gestartet werden (z.B. via "System - Startup - olsrd -> Restart").
Policy Routing
Damit Funkfeuer-Traffic korrekt über den Tunnel gerouter wird muss noch Policy Based Routing konfiguriert werden. Dazu über "System - Startup - Local Startup" die folgenden Befehle in die Datei /etc/rc.local eintragen:
# Policy Based Routing for Funkfeuer VPN /sbin/ip rule add lookup 111 /sbin/ip rule add iif tap0 lookup 112 /sbin/ip rule add iif tap0 lookup 111
Die letzten zwei Zeilen sind für jedes Funkfeuer-relevante Interface zu wiederholen.
Diese Konfiguration stellt sicher dass jeglicher eingehender Traffic auf dem "tap0" Interface - sowie ggf. weiterer Funkfeuer-Interfaces (siehe Zeile oben) - ausschließlich über die Routing-Tables 111 (=alle OLSR-Routen außer dem Standardgateway) sowie 112 (=OLSR Standardgateway) geroutet wird und nicht in irgendwelche lokalen Netze abbiet. Traffic von anderen Interfaces sowie vom lokalen System wird anhand der OLSR-Routen in der Routingtable 111 und der normalen System-Routing-Table geroutet. Dadurch ist es bei korrekt konfigurierten NAT-Regeln in weiterer Folge auch möglich z.B. aus einem lokalen Netzwerk Funkfeuer-Ziele zu erreichen.
Abschließend den Router rebooten - der Tunnel sollte nun funktionieren.