Locked History Actions

FunkInsel

Funkinsel

Grundsätzlich ist zu erwähnen das ein Tunnelsetup nicht ganz einfach einzurichten und zu warten ist. Es ist also generell eher für den erfahrenen User geeignet. Auf alle Fälle bitten wir um Rücksprache auf der Tech Mailingliste bevor mit dem Experimenten rund um ein Tunnelsetup begonnen wird.

Grundlegendes

Wozu ein Tunnel?

Primär, um anders nicht erreichbare Teile des Netzes, über das Internet anzubinden, z.B. funkmäßig nicht erreichbare Inseln. Aber auch, um redundante Verbindungen zu schaffen.

Was wird eingesetzt?

OpenVPN (http://www.openvpn.net/) ist die Implementierung der Wahl. Es kann alles, was man brauchen kann, ist leidlich einfach aufgesetzt und es existieren Implementierungen für alle relevanten Betriebssysteme. Als Routing-Deamon wird OLRSd (http://www.olsr.org/) eingesetzt. Das hat mit OpenVPN (http://www.openvpn.net/) nur insoweit etwas zu tun, als dass wir tap Interfaces verwenden (müssen), damit OLSRd (http://www.olsr.org/) darüber Broadcasts versenden kann.

Wie funktioniert das?

Ein Tunnelendpunkt ist am tun.graz.funkfeuer.at (192.36.39.2), der andere auf einem beliebigen lokalen Host. Die einzige Voraussetzung ist eine "normale" Internet-Verbindung vom Host tun.graz.funkfeuer.at. Dabei sind ppp, Masquerading/NAT und ähnliche Besonderheiten kein Problem oder besondere Einschränkung.

Was ist zu beachten?

Ist der Tunnel einmal aufgebaut und OLSR aktiviert am Tunnel Interface routet OLSR nach einigen Sekunden den gesamten Traffic über den Tunnelserver. Inklusive der OpenVPN Packete - das ist fatal da der Tunnel somit abreißen muss. Bei den früheren Tunnels wurde um das zu Umgehen eine Hostroute zu tun.graz.funkfeuer.at eingetragen was aber zu unnötigen Nebenwirkungen führte. Ausserdem gibt es unter Linux/BSD eine viel schönere Lösung: Policy Routing. Wie dieses einzurichten ist hängt von dem Betreibssystem bzw der Firmware des Routers ab und wird in den diversen Howtos näher beschrieben.

Sonstiges

Der Tunnel ist ein unverschlüsselter IP-Tunnel, d.h. man kann darüber alles mitlesen. Das liegt daran, dass auf einem typischen Linksys/Buffalo Router nicht genug Rechenpower für einen verschlüsselten Tunnel zur Verfügung steht (wenn man auf nennenswerte Bandbreite nicht verzichten will) und ein verschlüsselter Tunnel ein falsches Gefühl der Sicherheit erzeugen könnte: Der Tunnel terminiert am anderen Tunnelendpunkt und nicht erst am Zielserver, zu dem man eigentlich will. D.h. man muss sowieso zusätzlich sichere/verschlüsselte Protokolle verwenden oder einen sicheren IP-Tunnel vom eigenen Desktop bis zum Zielserver legen. Für beides bringt ein weiterer "teilweiser" Tunnel drunter nur mehr Latenz (jedes Paket will einmal zusätzlich verschlüsselt und entschlüsselt werden) und verbraucht CPU-Leistung, aber ansonsten (insbesondere Security-mäßig) gar nichts.

Konfiguration

Die folgenden Howtos können verwendet werden um eine Funkinsel mit Debian, OpenWRT Kamikaze und der Freifunk Firmware einzurichten. Für alle Konfigurationen gleich ist das für den Verbindungsaufbau ein von uns generiertes Zertifikat nötig ist. Wenn jemand einen Tunnel aufbauen will bitte auf der Mailingliste danach fragen.

Die Konfiguration des Funkinsel Servers ist unter FunkInselServer zu finden.

Funkinsel Tinc Testbetrieb

Eine Zeit lang haben wir Tinc als Ersatz für OpenVPN getestet. Der Mesh Modus von Tinc war zwar sehr vielversprechend aber in der Praxis macht der OSPF-ähnliche Algorithmus um Knoten zu verbinden die keine direkte Kommunikation aufbauen können in Kombination mit OLSR einige Probleme die mit vertretbaren Aufwand nicht verhindert werden konnten. Für diesen Testbetrieb gab es dieses Howto: FunkInselTinc.