Um genau dieses Verhalten zuzulassen, gibt es in den meisten Firewall-Implementierungen "Connection-Tracker" -Module. Diese funktionieren nach folgenden Richtlinien:
- Auf dem abgehenden Zweig liest die Firewall, was über den Draht geht (und manipuliert es in vielen Fällen). Auf diese Weise weiß die Firewall, wann eine eingehende Verbindung, die von einer ausgehenden "bestellt" wird, unmittelbar bevorsteht.
- Wenn diese eingehende Verbindung eintrifft, leitet die Firewall sie an den initiierenden Computer weiter.
In Ihrem Fall werden die IP-Adresse und der Port im PORT
Segment des FTP-Befehlskanals von der Firewall gelesen, analysiert und manipuliert: Die interne IP-Adresse Ihres PCs (wie von Ihrem FTP-Client gesendet) und die Portnummer werden durch die externe IP-Adresse der IP-Adresse ersetzt Firewall und höchstwahrscheinlich einen anderen Port. Dieses Tupelpaar wird zusammen mit einer Ablaufzeit gespeichert.
Wenn sich der FTP-Server wieder mit dieser IP-Adresse und diesem Port verbindet, wird das Tupel nachgeschlagen und, falls nicht abgelaufen, wieder mit Ihrem PC und somit mit dem FTP-Client verbunden. Das Tupelpaar wird dann verworfen, da es nur einmal gültig ist.
Während dieses Verhalten für FTP nicht unbedingt erforderlich ist (verwenden Sie nur den passiven Modus), ist es sehr nützlich für andere Protokolle, die eine Connect-Back-Funktion benötigen. Denken Sie daran: NAT ist eher ein neues Konzept, das bei der Erfindung der IP-Protokollsuite nicht erwartet wurde.