Port Triggering

Hallo, Ich versuche mir das Port Triggering anhand dieses Beispiels vorzustellen http://kohnlehome.de/netz/Masquerading.swf jedoch verstehe ich nicht genau, wie dieses Port Triggering funktioniert. Ich bin mir bewusst, dass der Link kein Port Triggering zeigt sondern nur ein PAT (Port Adress Translation oder eben IP Masquarading)

Ich habe gegooglet und mal gute und schlechte Erklärungen gefunden und trotzdem verstehe ich nicht genau, die Funktionsweise und welche Anwendungen dieses Triggern benötigen und wozu es bei was verwendet wird.

Hoffe, mir kann jemand das genau erklären und auf meine Fragen eingehen.

Bei FTP existiert ja ein passives und aktives FTP ist eventuell dort ein Port Triggering notwendig. Dort wird ja irgendwie der Port 20 und 21 verwendet und der eine wird erst bei erfolger Verbindung geöffnet?

Was ich auch nicht verstehe diese eingehender und auszulösender (triggering) Port ist. Es existieren ja insgesamt pro Verbindung 3 Port 1 x der Applikationsport z. B 80 für HTTP danach die anfragende Client-Software die einen Port definiert z. B 5000 und der Anwendungsserver der z. B 6000 hat.

Vielen Dank.

Das Grundproblem ist, dass eine IP-Adresse im Internet weltweit nur einmal vorhanden sein darf.
Am Anfang, als es noch das ARPANET war, hat das auch ganz gut geklappt, mit der Freigabe als Internet gingen aber recht schnell die rund 4Mrd Adressen aus.

Dein Router hat nun eine solche einmalige IP.
Deine PCs haben eine private Adresse, dazu sind z.B. die IPs 192.168.xx.xx festgelegt. Auf der Welt gibt es heute Millionen PCs, welche z.B. 192.168.0.1 benutzen.

Wie bekommt man jetzt aber eine Antwort weltweit auf genau deinen PC zurück?
(Alles etwas vereinfacht.)

OK, die IP ist nur die halbe Adresse. Es gibt noch den IP-Stack. Hier gibt es rund 65’000 Ports. D.h. jedes Programm auf einem PC, kann sich an so eine Portadresse anhängen und bekommt dann nur diejenigen Datenpakete übergeben, welche die IP des PCs und die passende Portnummer haben. Das managt alles der TCP/IP Treiber. Es gibt eine Liste mit den Portnummern, welchen spezielle Dienste zugeordnet sind, z.B. Port 80 für HTTP. Manche Server haben dann aber z.B. HTML-Seiten hinter dem Port 8080 versteckt.
Ein Browser verwendet immer Port 80 für seine Seitenaufrufe, da war dann ein ganz normaler Web-Server erreichbar. Man kann aber die Portadresse auch manuell angeben und den Browser zwingen z.B. die Web-Seiten über Port 8080 abzurufen, hinter welcher auf dem Server ein zweiter Web-Server versteckt ist.

Jetzt kommen wir zu NAT.
Dein Router nimmt also ein Datenpaket über das interne Netz von deinem PC an, ändert die IP-Adresse in seine eigene Internet-IP, merkt sich das Ganze und sendet das Paket ins Internet. Bei der passenden Antwort, welche an die Router-Adresse kommt, wird dann die IP wieder gegen diejenige deines PCs ersetzt und das Paket über das interne Netz an deinen PC gesendet.

Jetzt gibt es natürlich technisch unterschiedliche Möglichkeiten dies umzusetzen.
Die einfachste ist eine Tabelle mit den Internen IPs und Port-Nummer zu erstellen und deren Entsprechung im Internet.
Die Umsetzung mit einer festen Tabelle bietet dann auch die Möglichkeit von Aussen eine Übertragung anzustossen.
Da man IP und Port in der Tabelle hat, kann man unterschiedliche Port-Adressen auch unterschiedlichen PCs im internen Netzwerk zuordnen, was aber von der Internetseite nicht sichtbar ist. Oder man leitet ein Port auf der Internet-Seite an ein anderes Port im internen Netz weiter.

Beim Port-Triggering hat man auch eine Tabelle im Router, allerdings ist ein Anstossen einer Verbindung von aussen nicht möglich. Man hat also aus dem internen Netz den normalen Komfort, kann aber von aussen nicht so einfach angegriffen werden.
Also die Ports sind nach aussen alle zu, naja, fast alle. Geht nun eine Anfrage von innen nach aussen, wird das passende Port, oder bei z.B. Ftp mehrere, von aussen, für den angefragten Server, geöffnet. Das Port bleib6t dann so lange offen, bis entweder die Verbindung abgebaut wird oder der entsprechende Timeout auftritt.

MfG Peter(TOO)

Ist das nicht PAT (Port Adress Translation) bzw. IP-Masparading? NAT ist mächtiger und ermöglicht auf etwas terueren Routing-Systemen sogar die IP-Adresse durch andere zu ersetzten?

Das geschieht ja im PAT-Tabelle

Also so wie ich es verstehe wird halt nur ein Port dynamisch geöffnet wenn er gebracht wird bei Triggering was bei PAT nicht der Fall ist sondern der Port statisch immer offen ist. Die Funktionsweise verstehe ich aber nicht.

Also was bringt mir den das Triggerin wenn von aussen keine Port weiterleitung möglich sein soll? Also ist es eine Technik für nur internen Netzwerk?

Der Satz auf Wikipédia besagt ja das es also für intern und auch externe Netzwerke dient wozu und was soll es jedoch bringen die interne Port zu ändern:

"
Beim Port Triggering werden sowohl die Ports festgelegt, über die die Daten des Programms nach außen gesendet werden, als auch über welche Ports die Antworten wieder eingehen.
"

Und welcher interne Port ist gemeint es gibt doch nur den Applikationsport der geändert wird oder welcher wird den als eingehender und auszulösender Port gemeint verstehe nicht was ich dort eingeben müsste ?

Weiter sagst du die Ports sind von innen nach aussen zu. Der Sinn von PAT und NAT ist doch von aussen nach innen eine Uebersetzung zu machen und nicht das Gegenteil?

http://kohnlehome.de/netz/Masquerading.swf

Ääh, mehr Sicherheit. :stuck_out_tongue:

Ein Port stellt irgendeinen Dienst zur Verfügung, bzw. man braucht auch ein Port für eine Anfrage.

Angenommen du hast einen Dienst über welchen sich dein ganzer PC fernsteuern lässt.
Bei offenem Port kann also jedermann die Kontrolle über deinen PC übernehmen.

Bei Port Triggering muss dein PC zuerst eine Verbindung mit einem bestimmten Computer aufbauen und nur dieser Computer hat dann Zugriff auf diesen Dienst. Wird die Verbindung dann beendet, hat auch dieser Computer keinen Zugriff mehr auf diesen Dienst.

MfG Peter(TOO)

1 Like

Ja im Triggering müssen 4 verschiedene Ports eingetragen werden welche 4 sind den das? Es sind doch immer nur 3 Ports im Spiel 1 x den Applikationsport z. B 80 für HTTP-Dienste und die Client Software also PC und Server öffnen jeweils irgendeinen freien Port z. B den Port 4000 hat der PC der eine Anfrage startet als QuelPort mit dem Ziel Port 80 und der Server macht für seine Anfrage um mit dem Client ebenfalls einen Port auf z. B 5000. Die beiden Ports 4000 und 5000 werden in der PAT oder NAT Tabelle zwischengespeichert.

Da ich den Artikel nicht mehr bearbeiten konnte:

Ja im Triggering müssen 4 verschiedene Ports eingetragen werden welche 4 sind den das? Es sind doch immer nur 3 Ports im Spiel 1 x den Applikationsport z. B 80 für HTTP-Dienste und der Client er irgendeinen freien Port z. B 5000 öffnet der Router welcher anschliessend das NAT macht ersetzt und vergibt ebenfalls eine neue Quelport z. B 6000. Wo und wie wird also das Konfiguriert im Triggering?

Können, nicht müssen!

Du hängst jetzt bei FTP rum, es gibt aber ganz andere Dienste, welche nur ein Port belegen.

MfG Peter(TOO)

Gut es muss ja etwas eingetragen werden ohne lässt sich die Einstellung gar nicht abspeichern. Was muss den genau eingestellt werden damit es funktioniert? Ich kenn nur ein PAT also den entsprechenden Applikationsport eintragen für HTTP Dienste 80 (default). Wie muss die Einstellung beim Triggering sein? Der zu Triggernde Port muss ja bei ein- und aushend Eingestellt werden?!

Kannst du mir ein Beispiel zeigen?

Das hängt vom Dienst, deiner Netzwerkkonfiguration und vor allem von der Firmware deines Routers ab.

Ja wie gesagt Dienst ist HTTP die 80. Ein normaler Router ohne doppeltes NAT oder so. Firmware ist halt sowas ähnliches mit den Einstellungsmoeglichkeiten http://screenshots.portforward.com/routers/ZyXEL/NBG5615/NAT_Port_Trigger.jpg

Verstehe nicht wie ich welche Ports eintragen muss, was ein- und ausgehender Port ist und der zu Triggernde ein- und ausgehende Port.

Ich habe leider immer noch nicht wirklich etwas verstanden von der Funktionsweise her…

Kann mir bitte jemand erklàren wie das Funktioniert?