ICMP-Tunnel
# ICMP-Tunnel

Ein ICMP-Tunnel benutzt ICMP-Pakete (Echo Request and Reply), um einen verdeckten Kanal zwischen zwei Computern (Client und Proxy) aufzubauen. Dadurch kann beispielsweise mittels Ping-Nachrichten ein Tunnel für TCP-Pakete eingerichtet werden.

## Technische Einzelheiten

Ein ICMP-Tunnel beruht darauf, dass beliebige Daten an ein Echo-Paket angefügt werden und an einen anderen Computer geschickt werden. Dieser antwortet auf die gleiche Weise, indem er seine Antwort einem anderen ICMP-Paket hinzufügt und zurückschickt. Der Client verwendet ICMP-Echo-Request-Pakete, während der Proxy Echo-Reply-Pakete nutzt. Theoretisch wäre es einfacher, wenn der Proxy ebenfalls Echo-Request-Pakete nutzen würde, wodurch die Implementierung wesentlich einfacher würde. Doch diese Pakete werden nicht unbedingt an den Client weitergeleitet, da der Client hinter einem Router liegen könnte, der Pings von außerhalb des eigenen Netzes filtert, wie beispielsweise im Falle eines NAT-Routers.

## Anwendungen

Ein ICMP-Tunnel wird oft benutzt, um Firewalls zu umgehen, die ICMP-Pakete durchlassen, oder um einen verschlüsselten Kommunikationskanal zwischen zwei Computern aufzubauen, der schwer aufspürbar ist.

## Verhinderungsmöglichkeiten

Durch das Blockieren von ICMP-Nachrichten (Echo Request and Reply) an den Netz-Außengrenzen können ICMP-Tunnel-Verbindungen unterbunden werden. Ist die Erreichbarkeitsprüfung von Systemen mittels ICMP jedoch gewünscht, kann auch die Limitierung der Bandbreite („Rate Limit“) z. B. durch Firewall- oder Einbruchsverhinderungssysteme (IPS) von ICMP-Echo-Nachrichten einen Tunnel unattraktiv machen.

