Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>IP</strong>-<strong>Tunnel</strong><br />
Niklas Meinzer<br />
Lehrstuhl für Kommunikationssysteme<br />
Zusammenfassung In dieser Proseminarausarbeitung werden die theoretischen Hintergründe<br />
und praktischen Möglichkeiten von <strong>IP</strong>-<strong>Tunnel</strong>n behandelt. Es wird beschrieben, wie<br />
sich mit Generic Routing Encapsulation(GRE) lokale Netzwerke über das Internet miteinander<br />
verbinden lassen. Dabei wird der Sicherheitsaspekt ausgeblendet, um die Funktionsweise<br />
eines einfachen <strong>Tunnel</strong>s klarer zu machen. Praktische Anwendung finden <strong>IP</strong>-<strong>Tunnel</strong> bei der<br />
Umstellung von <strong>IP</strong>v4 auf <strong>IP</strong>v6, dabei werden <strong>IP</strong>v6-Pakete durch ein bestehendes <strong>IP</strong>v4-Netz<br />
getunnelt. Darüber hinaus lassen sich mit Hilfe von <strong>Tunnel</strong>n auch Firewalls umgehen.<br />
1 Einleitung und Motivation<br />
Als <strong>Tunnel</strong> oder Kapselung wird in der Netzwerktechnik ein System bezeichnet, bei dem Pakete<br />
(oder Datagramme, Segmente) eines Protokolls als Payload eines anderen Protokolls verschickt<br />
werden. In Abbildung 1 ist anhand eines Beispiels dargestellt, wie der TCP/<strong>IP</strong>-Protokollstapel<br />
Kapselung verwendet.<br />
Anwendung<br />
Transport<br />
Netzwerk<br />
Bitübertragung<br />
SMTP (E-Mail)<br />
TCP<br />
<strong>IP</strong><br />
Ethernet<br />
Abbildung 1. Der TCP/<strong>IP</strong> Protokollstapel (links) und je ein Beispielprotokoll für jede Schicht. Für die<br />
Datenübertragung werden die Pakete eines Protokolls in Pakete des nächst tieferen eingepackt.<br />
In diesem Paper geht es um <strong>IP</strong>-<strong>Tunnel</strong> oder <strong>IP</strong>-in-<strong>IP</strong> Kapselungen, also um Systeme, bei denen<br />
die Payload eines <strong>IP</strong>-Paketes wieder ein <strong>IP</strong>-Paket ist. Übersetzt in die bekannte Postpaket-Analogie,<br />
bei der das Postpaket ein <strong>IP</strong>-Paket und sein Inhalt die Payload darstellt, würde das bedeuten, dass<br />
ein komplett versandfertiges Postpaket in ein weiteres eingepackt wird und dieses dann verschickt<br />
wird. Es gibt einige Szenarien, für die diese Konstellation Sinn ergibt:<br />
a) Ein Paket soll in eine Stadt verschickt werden, die vom lokalen Paketdienst nicht bedient wird.<br />
Das Paket könnte dann in ein weiteres Paket eingepackt und in eine dritte Stadt zu einem<br />
anderen Paketdienst geschickt werden, der die gewünschte Zielstadt bedient und das Paket<br />
schließlich dorthin verschickt.<br />
b) Der lokale Paketdienst verschickt keine Postkarten. Eine Postkarte könnte also in ein Paket<br />
eingepackt werden und an einen zweiten Paketdienst geschickt werden, der Postkarten befördert<br />
und die Postkarte aus dem Paket somit an den Empfänger zustellen kann.<br />
Analoge Probleme aus der Netzwerktechnik werden in diesem Paper behandelt. Das Beispiel a)<br />
entspricht in etwa einer Problematik, die bei der Umstellung von <strong>IP</strong>v4 auf <strong>IP</strong>v6 entstehen kann:
2 Niklas Meinzer<br />
Verschiedene <strong>IP</strong>v6-Netze sollen über das Internet, das größtenteils noch mit <strong>IP</strong>v4 funktioniert,<br />
miteinander verbunden werden. Hier besteht die Möglichkeit der <strong>IP</strong>v6-in-<strong>IP</strong>v4-Kapselung, die in<br />
Abschnitt 3 behandelt wird.<br />
Es gibt die Möglichkeit den Internetzugang eines lokalen Netzes über eine Firewall zu leiten. Dabei<br />
können bestimmte Ports gesperrt werden, um die normalerweise über diese Ports kommunizierenden<br />
Dienste nicht zuzulassen. Dieses Setup entspräche dem aus Beispiel b). <strong>IP</strong>-<strong>Tunnel</strong> können<br />
eingesetzt werden um solche Sperren zu umgehen und die gesperrten Dienste dennoch zu nutzen.<br />
Die theoretischen Grundlagen und die praktische Anwendung auf einem Linux-System werden in<br />
Abschnitt 4 betrachtet.<br />
2 Grundlagen von <strong>Tunnel</strong>n<br />
In Abbildung 2 sind zwei Netze abgebildet, die jeweils an das Internet angeschlossen sind, aber<br />
intern über private Adressen verfügen.<br />
Firmennetz A<br />
10.1.*.*<br />
Internet<br />
Firmennetz B<br />
10.2.*.*<br />
Abbildung 2. Zwei verschiedene Standorte einer Firma verfügen über ein LAN, das jeweils über einen<br />
Router per NAT an das Internet angeschlossen ist. Die Rechner aus den Netzen A und B sollen jedoch<br />
untereinander kommunizieren können.<br />
In diesem Beispiel soll der Rechner mit der Adresse 10.1.100.1 aus Netz A mit dem Rechner<br />
mit der Adresse 10.2.100.1 kommunizieren können, ohne die Verbindung über das Internet berücksichtigen<br />
zu müssen.<br />
Diese Funktion lässt sich mit dem Generic Routing Encapsulation Protokoll realisieren.<br />
2.1 Generic Routing Encapsulation (GRE)<br />
Mit Hilfe des GRE Protokolls lassen sich verschiedene Protokolle in andere einpacken. Der Header<br />
sieht folgendermaßen aus:<br />
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
C reserved0 Ver protocol type<br />
checksum(optional) reserved1(optional)<br />
Tabelle 1. Der GRE-Header [2]: Das erste Bit (Checksum present) legt fest, ob die Felder checksum<br />
und reserved1 vorhanden sind. Die Felder reserved0 und reserved1 finden in der aktuellen Version keine<br />
Verwendung. Das version Feld beinhaltet die benutze GRE-Version und das protocol type Feld den Typ<br />
des verpackten Protokolls.<br />
In einem GRE-<strong>Tunnel</strong> wird ein Paket eines anderen Protokolls – wie in Abbildung 3 ein <strong>IP</strong>-Paket<br />
– samt Payload mit einem GRE-Header versehen und in ein <strong>IP</strong>-Paket verpackt. Im GRE-Header
<strong>IP</strong>-<strong>Tunnel</strong> 3<br />
wird der Typ des verpackten Paketes eingetragen und im <strong>IP</strong>-Paket das Feld protocol mit dem<br />
Wert 47 (GRE) belegt. Das <strong>IP</strong>-Paket wird zum Ende des <strong>Tunnel</strong>s übertragen. Dort wird der GRE-<br />
Header entfernt, eventuell eine Prüfsumme berechnet und das verpackte Paket an das in protocol<br />
type festgelegte Protokoll übergeben. Wie in Abbildung 3 anhand eines Beispiels gezeigt, wird<br />
dabei der TCP/<strong>IP</strong>-Protokollstapel durch zusätzliche Schichten ergänzt. [3] [2]<br />
SMTP (E-Mail)<br />
TCP<br />
<strong>IP</strong><br />
GRE<br />
Ethernet <strong>IP</strong><br />
SMTP (E-Mail)<br />
TCP<br />
<strong>IP</strong><br />
GRE<br />
<strong>IP</strong><br />
Ethernet<br />
Abbildung 3. Im GRE-<strong>Tunnel</strong> werden in den Protokollstapel zwei zusätzliche Schichten eingezogen.<br />
2.2 GRE <strong>Tunnel</strong> unter Linux<br />
Unter Linux lässt sich ein GRE-<strong>Tunnel</strong> (sofern das Kernelmodul ip gre geladen ist) mit Hilfe des<br />
Programmes ip einrichten. Um zum Beispiel die beiden Netzwerke aus Abbildung 2 durch einen<br />
GRE-<strong>Tunnel</strong> miteinander zu verbinden, muss wie folgt vorgegangen werden.<br />
Es wird angenommen, dass die beiden Router, die die LAN’s mit dem Internet verbinden, an der<br />
Internetschnittstelle die Adressen 172.10.100.1 (Router A) und 172.123.10.2 (Router B) haben.<br />
Konfiguration auf Router A:<br />
ip tunnel add gretunnel<br />
mode gre local 172.10.100.1 remote 172.123.10.2 ttl 64 dev eth0<br />
ip link set gretunnel up<br />
ifconfig gretunnel 10.111.111.1/24<br />
ip route add -net 10.2.0.0/16 gw 10.111.111.2 dev gretunnel<br />
Der erste Befehl erstellt einen neuen <strong>Tunnel</strong> mit dem Namen gretunnel. Dabei werden die lokale<br />
Adresse und die Adresse des <strong>Tunnel</strong>endes bezüglich des zu durchtunnelnden Netzwerkes angegeben.<br />
Weiterhin wird ein Time-to-Live-Wert festgelegt und das Interface, über das die verpackten Pakete<br />
rausgeschickt werden sollen. Die nächsten beiden Befehle aktivieren das neue Interface gretunnel<br />
und weisen diesem eine Adresse zu. Schließlich wird ein neuer Eintrag in der Routingtabelle erstellt,<br />
der Pakete an <strong>IP</strong>-Adressen der Form 10.2.*.* durch den <strong>Tunnel</strong> schickt. Dabei wird angenommen,<br />
dass das <strong>Tunnel</strong>interface auf Router B die Adresse 10.111.111.1/24 erhalten hat.<br />
Analog dazu wird Router B konfiguriert.<br />
Die Hosts aus den Netzen A und B können nun untereinander <strong>IP</strong>-Pakete austauschen, indem sie<br />
ihre lokalen <strong>IP</strong>-Adressen verwenden. Die Existenz des <strong>Tunnel</strong>s ist für sie nicht ersichtlich. Für die<br />
Knoten, die das Paket auf seinem Weg durch das Internet weiterleiten, sieht es so aus, als ob sich<br />
die Router A und B gegenseitig Pakete schicken (Abbildung 4). [4] [5]<br />
2.3 Sicherheit<br />
GRE bietet keinerlei Möglichkeiten Pakete zu verschlüsseln oder auf andere Weise vor unbefugtem<br />
Zugriff zu schützen. Auf ihrem Weg durch das Internet könnten die Pakete daher abgefangen<br />
und ausgewertet werden. Für das Verbinden verschiedener Firmennetzwerke ist GRE somit in der<br />
Praxis nicht geeignet. Eine sichere Alternative wäre ein VPN.
4 Niklas Meinzer<br />
10.1.93.13<br />
<strong>IP</strong><br />
Dest: 10.2.100.12<br />
Src: 10.1.93.13<br />
Local: 10.1.0.1<br />
Global: 172.10.100.1<br />
<strong>IP</strong><br />
Dest: 172.123.10.2<br />
Src: 172.10.100.1<br />
GRE<br />
Protocol Type: <strong>IP</strong><br />
<strong>IP</strong><br />
Dest 10.2.100.12<br />
Src: 10.1.93.13<br />
Local: 10.2.0.1<br />
Global: 172.123.10.2<br />
<strong>IP</strong><br />
Dest: 10.2.100.12<br />
Src: 10.1.93.13<br />
LAN A Internet LAN B<br />
Abbildung 4. Der Weg eines <strong>IP</strong>-Paketes von Host zu Host durch einen GRE-<strong>Tunnel</strong>.<br />
3 <strong>IP</strong>v6-in-<strong>IP</strong>v4<br />
10.2.100.12<br />
Ein wichtiges Feld, in dem <strong>IP</strong>-<strong>Tunnel</strong> praktische Anwendung finden, ist die Umstellung von <strong>IP</strong>v4<br />
auf <strong>IP</strong>v6. Als <strong>IP</strong>v6 entwickelt wurde, um <strong>IP</strong>v4 abzulösen, war der Vorgänger bereits soweit etabliert,<br />
dass ein weltweiter Umstieg bis heute nicht erfolgt ist und auch in naher Zukunft nicht zu erwarten<br />
ist. Um es einzelnen Firmen oder Privatanwendern trotzdem möglich zu machen in lokalen Netzen<br />
<strong>IP</strong>v6 zu verwenden und dennoch nicht von der Außenwelt abgeschnitten zu sein, gibt es zahlreiche<br />
Methoden die beiden <strong>IP</strong>-Versionen koexistieren zu lassen.<br />
Einige davon – insbesondere die Möglichkeit des <strong>IP</strong>v6-in-<strong>IP</strong>v4-<strong>Tunnel</strong>ings – werden im Request for<br />
Comments Nr.4213 [6] der Internet Engeneering Task Force (IETF) vorgestellt.<br />
Beim <strong>IP</strong>v6-in-<strong>IP</strong>v4 <strong>Tunnel</strong>ing werden <strong>IP</strong>v6-Pakete in <strong>IP</strong>v4-Paket eingepackt und über ein <strong>IP</strong>v4-<br />
Netzwerk versandt. Folgende Situationen sind möglich:<br />
Router to Router Ein <strong>IP</strong>-<strong>Tunnel</strong> zwischen zwei Routern könnte zum Beispiel die <strong>IP</strong>v6-Netzwerke<br />
zweier Firmenfilialen miteinander durch das Internet verbinden.<br />
Host to Router Ein Rechner in einem <strong>IP</strong>v4-Netz könnte mit Hosts aus einem <strong>IP</strong>v6-Netz hinter<br />
einem <strong>IP</strong>v4/<strong>IP</strong>v6-Router kommunizieren, indem die Pakete den Weg bis zu dem Router durch<br />
einen <strong>Tunnel</strong> zurücklegt.<br />
Host to Host Theoretisch können auch zwei Hosts durch ein <strong>IP</strong>v4-Netz kommunizieren, indem<br />
sie einen <strong>IP</strong>v6-<strong>Tunnel</strong> nutzen.<br />
Router to Host Und schließlich kann ein Router auch <strong>IP</strong>v6-Pakete aus einem <strong>IP</strong>v6-Netz durch<br />
einen <strong>Tunnel</strong> an einzelne Host in einem <strong>IP</strong>v4-Netz leiten.<br />
Für alle diese Arten von <strong>Tunnel</strong>n gilt, dass er für Sender und Empfänger “unsichtbar” ist. Das<br />
heißt, der gesamte <strong>Tunnel</strong> zählt nur als ein Hop, auch wenn er in Wirklichkeit über mehrere Hops<br />
verläuft. Die Beschaffenheit und Funktionsweise eines <strong>Tunnel</strong>s wird bestimmt durch seine beiden<br />
Endpunkte, den verpackenden und den entpackenden Knoten.
<strong>IP</strong>-<strong>Tunnel</strong> 5<br />
Der verpackende Knoten Der verpackende Knoten, also der Startknoten eines <strong>Tunnel</strong>s, hat<br />
drei Aufgaben zu erfüllen:<br />
1. Er muss ein <strong>IP</strong>v4-Paket erstellen, das ankommende <strong>IP</strong>v6-Paket darin verpacken und es an den<br />
Endpunkt des <strong>Tunnel</strong>s schicken.<br />
2. Er muss entscheiden, wie mit Fragmentierung umzugehen ist. Er könnte zum Beispiel die maximale<br />
Größe eines <strong>IP</strong>v4-Pakets (65515 Byte + 20 Byte Header) als MTU des <strong>Tunnel</strong>s festlegen.<br />
Dies würde zu hoher Fragmentierung innerhalb des <strong>Tunnel</strong>s führen und so den Endpunkt durch<br />
das Zusammenbauen des riesigen Paketes belasten. Dieses Zusammenbauen wird normalerweise<br />
durch den Empfänger erledigt, um die inneren Knoten und somit das gesamte Netz zu entlasten.<br />
Daher wird entweder ein moderater, fester MTU Wert für den <strong>Tunnel</strong> gewählt (der<br />
RFC schlägt 1280 bis 1480 Byte vor) oder per Path MTU Discovery der tatsächliche Wert des<br />
<strong>Tunnel</strong>s ermittelt, um so Fragmentierung innerhalb des <strong>Tunnel</strong>s ganz zu vermeiden.<br />
3. Er muss entscheiden, was mit ICMPv4 Messages aus dem <strong>Tunnel</strong> geschieht.Um eine ICMPv4<br />
Fehlermeldung aus dem <strong>Tunnel</strong> interpretieren zu können, muss der verpackende Knoten wissen,<br />
welches Paket sie hervorgerufen hat. Bei älteren ICMPv4 Implementierungen werden an die<br />
Fehlermeldung nur der Header des verursachenden <strong>IP</strong>v4 Paketes und die ersten 8 Byte (also<br />
64 Bit) der Payload angehängt. Im Falle eines <strong>IP</strong>v6-in-<strong>IP</strong>v4 <strong>Tunnel</strong>s also die ersten 64 Bit des<br />
<strong>IP</strong>v6 Headers. Die Adresse des Senders wird jedoch in den Bits 65 bis 192 codiert und ist somit<br />
nicht mehr enthalten. Eine solche Fehlermeldung kann also nur verworfen werden, ohne den<br />
Sender zu informieren.<br />
Sollte der Sender rekonstruierbar sein, muss der verpackende Knoten entscheiden, ob er ein<br />
ICMPv6 Paket weiterleitet und wenn ja, welches. Während destination unreachable einfach<br />
weitergeleitet werden kann, würde ein time exceeded Paket den Sender veranlassen das hop<br />
limit zu erhöhen. Da der <strong>Tunnel</strong> für das <strong>IP</strong>v6-Paket jedoch nur einen Hop darstellt, wäre dies<br />
nicht zielführend. Stattdessen könnte sich der verpackende Knoten entscheiden, ein destination<br />
unreachable-Paket an den Sender zu schicken und den TTL-Wert der <strong>Tunnel</strong>pakete zu erhöhen.<br />
Der entpackende Knoten Der entpackende Knoten eines <strong>Tunnel</strong>s, der ein <strong>IP</strong>v4-Paket mit<br />
dem Eintrag 41 im protocol Feld erhält, muss den <strong>IP</strong>v4-Header entfernen und das <strong>IP</strong>v6 Paket<br />
behandeln, als hätte er es ganz normal erhalten und es an den Empfänger weiterleiten. Um Spoofing<br />
zu verhindern, muss überprüft werden, ob der Absender des <strong>IP</strong>v4-Pakets auch tatsächlich der<br />
Anfangspunkt des <strong>Tunnel</strong>s ist. Wie das genau passiert, wird durch die jeweilige Implementierungen<br />
festgelegt. Bei GRE muss zum Beispiel das andere Ende des <strong>Tunnel</strong>s eim Einrichten mit angegeben<br />
werden.<br />
4 <strong>Tunnel</strong>n durch Firewalls<br />
Eine weitere Anwendung ist das <strong>Tunnel</strong>n durch Firewalls.<br />
Ein Beispiel: Ein Firmennetzwerk ist über einen Router mit Firewall mit dem Internet verbunden.<br />
Diese Firewall verhindert das Senden (SMTP, Port 25) und Empfangen (POP, Port 110) von<br />
E-mails, indem Pakete, in deren Header im destination port Feld der Wert 25 oder 110 steht,<br />
verworfen werden. Ist Port 22 nicht gesperrt, ist es möglich über das Secure Shell Protokoll (SSH)<br />
einen <strong>Tunnel</strong> zu einem präparierten Host aufzubauen und die SMTP bzw. POP Verbindung durch<br />
diesen hindurch aufzubauen und so die Portsperren zu umgehen. Ein weiterer Vorteil hierbei ist,<br />
dass SSH Verbindungen verschlüsselt sind, somit erreicht man ein höheres Maß an Sicherheit für<br />
den Mailverkehr. Dies gilt natürlich nur innerhalb des <strong>Tunnel</strong>s, die Verbindung vom <strong>Tunnel</strong>ausgang<br />
zum Zielserver profitiert nicht mehr von der SSH Verschlüsselung.<br />
4.1 Theorie<br />
Da ein <strong>Tunnel</strong> einen Anfangs- und Endpunkt braucht, wird ein Server benötigt, der als Endpunkt<br />
agieren kann und natürlich außerhalb des Firmennetzwerkes liegen sollte. Auf diesem Server muss
6 Niklas Meinzer<br />
ein SSH-Server laufen, um den <strong>Tunnel</strong> aufbauen zu können. Wie bei <strong>IP</strong>v6-in-<strong>IP</strong>v4-<strong>Tunnel</strong>n soll<br />
der <strong>Tunnel</strong> von “außen”, also für die beteiligten Programme, nicht sichtbar sein. Da der Mailclient<br />
für den Verbindungsaufbau einen Server mit einer bestimmten <strong>IP</strong>-Addresse anspricht, ist der SSH-<br />
Client, der den Eingang des <strong>Tunnel</strong>s darstellt, wie ein Server ansprechbar. Er öffnet einen Port auf<br />
dem lokalen Rechner, den der Mailclient dann ansprechen kann. Die übergebenen Pakete werden<br />
vom Client in verschlüsselte SSH Pakete verpackt und an den Server geschickt. Dabei wird der<br />
an SSH zugewiesene Port 22 verwendet. Der SSH-Server entpackt die Pakete wieder, ersetzt die<br />
Absenderadresse durch seine eigene und schickt sie an einen vordefinierten Zielhost. Die Antwort<br />
wird wieder durch den <strong>Tunnel</strong> geschickt und vom SSH Client an den Mailclient weitergegeben.<br />
4.2 Praxis<br />
Um einen <strong>Tunnel</strong> einzurichten, muss ein SSH-Client – wie er bei den meißten Linux-Distributionen<br />
schon vorinstalliert ist – mit folgenden Parametern aufgerufen werden.<br />
ssh -L 10025:smtp.mailserver.de:25<br />
-L 10110:pop.mailserver.de:110<br />
user@ssh-server<br />
Die beiden -L Attribute definieren je einen <strong>Tunnel</strong> für SMTP und POP. Die erste Zahl ist der<br />
Port auf dem lokalen Rechner, der den Eintrittspunkt in den <strong>Tunnel</strong> darstellt. Hier kann ein<br />
Programm Pakete an den SSH-Client übergeben, der diese dann durch den <strong>Tunnel</strong> schickt. Nach<br />
dem Doppelpunkt steht die Adresse des Servers, an den die Pakete nach dem <strong>Tunnel</strong> weitergeleitet<br />
werden sollen, in diesem Fall also die Adresse des Mailservers. Nach dem zweiten Doppelpunkt<br />
schließlich der Port des Zielrechners, an den die Pakete geschickt werden sollen.<br />
Im Mailserver müssen nun die Eingangspunkte der <strong>Tunnel</strong>, localhost:10025 und localhost:10110,<br />
als SMTP-, bzw POP-Server angegeben werden. Danach funktioniert der Mailverkehr durch den<br />
<strong>Tunnel</strong>. [7]<br />
4.3 Perspetiven<br />
Der Mailverkehr über den <strong>Tunnel</strong> sieht aus Sicht des Mailclients, der Firewall und des Mailservers<br />
wie folgt aus:<br />
Aus der Sicht des Mailclients Der Mailclient baut eine Verbindng mit den eingestellten Servern<br />
auf. Da der Eingang des SSH-<strong>Tunnel</strong>s eine <strong>IP</strong>-Adresse mit Portnummer ist, kann der Mailclient<br />
diese ganz normal ansprechen, es sind keine Plugins nötig. Die Antwort erhält er wieder vom<br />
SSH-Client, somit ist der <strong>Tunnel</strong> für ihn nicht sichtbar.<br />
Aus der Sicht der Firewall Der eigentliche Zweck des <strong>Tunnel</strong>s ist die Restriktionen der Firewall<br />
zu umgehen, für diese ist es nicht mehr ersichtlich, dass ein Mailserver angesprochen wird.<br />
Sichbar sind die Pakete, die von SSH-Client an den SSH-Server geschickt werden. Sie enthalten die<br />
Empfängeradresse des SSH-Servers und im destination port Feld des Transportschichtprotokolls<br />
(bei SSH wird TCP verwendet) steht der Wert 22. Da dieser Port von der Firewall nicht gesperrt<br />
ist, werden die Pakete ganz normal durchgelassen. Nur aus der Verwendung des Ports 22 lässt sich<br />
auch nicht die Existenz eines <strong>Tunnel</strong>s schließen, da SSH auch viele andere Zwecke erfüllen kann.<br />
Aus der Sicht des Mailsevers Am Ende des <strong>Tunnel</strong>s werden die Pakete des Mailclients entpackt<br />
und auf normalem Wege an den Mailserver geschickt. Dieser empfängt also ganz normale Pakete<br />
und antwortet entsprechend. Für ihn ist die Existenz des <strong>Tunnel</strong>s nicht erkennbar.
Literatur<br />
<strong>IP</strong>-<strong>Tunnel</strong> 7<br />
1. Ross, K.W., Kurose, J.F.: Computer Networking. 4th edn. Pearson International (2008)<br />
2. IETF: RFC 2784: Generic routing encapsulation.<br />
http://tools.ietf.org/html/rfc2784 (2000)<br />
3. IETF: RFC 1701: Generic routing encapsulation.<br />
http://tools.ietf.org/html/rfc1701 (1994)<br />
4. The Linux Foundation: <strong>Tunnel</strong>ing.<br />
http://www.linuxfoundation.org/collaborate/workgroups/networking/tunneling<br />
(Seitenaufruf 28.11.09) (2009)<br />
5. www.linuxdocs.org: GRE and other tunnels.<br />
http://www.linuxdocs.org/HOWTOs/Adv-Routing-HOWTO-5.html (Seitenaufruf: 28.11.09) (2000)<br />
6. IETF: RFC 4213: Basic ipv6 transition mechanisms.<br />
http://tools.ietf.org/html/rfc1933 (2005)<br />
7. polishlinux.org: SSH tunnels: Bypass (almost) any firewall.<br />
http://polishlinux.org/apps/ssh-tunneling-to-bypass-corporate-firewalls/<br />
(Seitenaufruf: 06.12.09) (2006)