Server

Iodine liegt bei diversen Distributionen bereits in den Repositories und wird über die Paketverwaltung installiert. Falls nicht ist die Installation aus den Sourcen ebenfalls nicht aufwändig. Das Runterladen und Entpacken des Tarballs mit anschließendem Aufruf von make und make install genügt. Iodine emuliert mittels TUN ein virtuelles Netzwerk Device und braucht daher das Kernel Modul tun. Ist es nicht fest in den Kernel eingebaut läd der Angreifer es mittels modprobe tun. Nach Abschluss der Installation startet er auf dem Server den iodine Daemon mit

iodined -P geheim 192.168.10.1 ↩
tunnel.example.tld

geheim ersetzt er mit einem Passwort mit dem sich die iodine Clients später gegenüber dem Server authentifizieren. Die IP-Adresse in dem Befehl ist die IP-Adresse, die das tun-Device im virtuellen Netzwerk haben wird. Der iodine Server verteilt dann automatisch IP-Adressen an die Clients. Aus welchem lokalen Adress-Bereich die IP ist, ist im Grunde egal. Sie muss sich allerdings vom Adress-Bereich des Wlans unterscheiden. Da wie oben erwähnt die meisten kostenpflichtigen Wlans einen 10.x.x.x Bereich haben bietet sich ein beliebiges 192.168. Netzwerk an.

Clients

Die Einrichtung auf dem Client ist ebenfalls einfach. Auch hier der Angreifer wieder mit »modprobe tun« ein tun Device erstellen. Anschließend baut der Befehl

iodine -P geheim tunnel.example.tld

einen DNS Tunnel auf. Mit diesem Setup kann ein Client bereits Verbindungen über das DNS Protokoll zum Server aufbauen. Der Schutz des Wlans wurde erfolgreich umgangen. Überprüfen kann der Angreifer dies indem er seinen Server auf 192.168.10.1 anpingt oder eine SSH Sitzung aufbaut. Verbindungen zu beliebigen Hosts im Internet sich jedoch noch nicht möglich. Dazu muss der Server zum NAT-Router aufgewertet werden. Unter Linux geht das mit iptables mit wenigen Befehlen.

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 ↩
-j MASQUERADE

eth0 entspricht in diesem Befehl der Netzwerkschnittstelle des Servers die Verbindung zum Internet hat. Nun muss der Angreifer die Routen auf dem Client noch dahingehend ändern, dass nur Pakete in das 10.0.0.0/8 Netzwerk über den Access Point geschickt werden und alle anderen Pakete durch den DNS Tunnel zum Server. Welche IP-Adresse der Access Point hat findet er durch Eingabe des Befehls route heraus. Die IP befindet sich in der Zeile die mit default beginnt in der Spalte Router. Die drei folgenden Befehle setzen schließlich die neuen Routen.

route add -net 10.0.0.0 netmask 255.0.0.0 ↩
gw *IP des Access Point*
route add default gw 192.168.10.1
route del default gw *IP des Access Point*
Um einen Tunnel zu benutzen müssen die Routen leicht angepasst werden
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019