Ich habe schon öfter über Dinge geschrieben die unterwegs nützlich sind um Zugriff aufs Internet zu bekommen. Ein Tool habe ich bereits seit langem installiert, jedoch jetzt kürzlich das erste Mal praktisch genutzt: iodine.
iodine ermöglicht es einem IPv4 Traffic über DNS zu tunneln. Das ist immer dann praktisch wenn der Internetzugriff per Firewall gesperrt, DNS aber erlaubt ist.
Die Hürden für ein iodine Setup sind erst einmal groß. Um den Server zu installieren bedarf es nicht nur eines entsprechenden Hosts auf dem das Paket installiert werden kann, sondern man muss auch in seinem DNS Einstellungen machen können. Bei mir funktioniert das folgende Setup:
Auf dem gewünschten Server habe ich das iodine Paket aus den Paketquellen installiert:
Anschließend habe ich in der Konfigurationsdatei /etc/default/iodine die folgenden Einstellungen hinterlegt:
START_IODINED="true"
IODINED_ARGS="10.9.0.123 iodine.example.net -c"
IODINED_PASSWORD="MYSECRETPASSWORD" |
START_IODINED="true"
IODINED_ARGS="10.9.0.123 iodine.example.net -c"
IODINED_PASSWORD="MYSECRETPASSWORD"
Nun zum DNS. Dort benötigt man zwei Einträge. Angenommen der Host auf dem iodine installiert ist hat die IP 1.2.3.4, dann bekommt dieser zuerst einen ganz normalen IN A Eintrag. host.example.net zeigt auf 1.2.3.4. Das ist nichts besonderes sondern so einen Eintrag setzt man ja eigentlich immer.
Der zweite Eintrag ist nun der abweichende. Wie in den IODINED_ARGS angegeben benötigen wir den DNS-Eintrag iodine.example.net. Dieser bekommt aber keinen IN A Eintrag, sondern als Nameserver den host.example.net eingetragen.
Wenn der Server eingerichtet ist, kann man sich an den Client machen. Ich nutze den Network-Manager und dafür gibt es ein praktisches Plugin. Auf dem Client:
aptitude install network-manager-iodine-gnome |
aptitude install network-manager-iodine-gnome
Anschließend kann man den nm-connection-editor starten und dort eine neue Verbindung vom Typ VPN – Iodine VPN Tunnel hinzufügen. Als Verbindungsname wählt man das was man will, als Toplevel Domain trägt man iodine.example.net ein, und das auf dem Server unter IODINED_PASSWORD gesetzte Passwort speichert man auch optional ab. Fertig.
Schnell ist die Anbindung nicht, das ist technisch bedingt, aber sie ist stabil, selbst wenn man von dem Hotspot alle X Minuten per DHCP eine neue IP bekommt bricht der Tunnel nicht ab. Klasse!