Das ist durchaus so. Genau genommen wird gar nicht der Port in der Firewall freigegeben, sondern explizit die Verbindung. Das war vielleicht etwas missverständlich ausgedrückt. Der Netzwerkstack merkt sich jede einzelne Verbindung mit allen ihren Parametern (Quelle, Ziel, Port, etc) und merkt sich zudem deren Status (bzw. definiert ihn).
Grundsätzlich gibt es 4 Verbindungszustände: New, Established, Related und Invalid. Jeweils das erste Paket einer Verbindung, die Verbindungsanfrage, gilt als "new". Sobald die Anfrage vom Ziel bestätigt wurde, wird die Verbindung auf "established" gesetzt. Genau auf diese Eigenschaft triggert dann die Firewall, die sich keinen Kopf mehr um den Port machen muss, sondern quasi nur noch die Verbindungs-ID nebst deren Status beachtet.
Der Status "related" hat dabei eine besondere Bedeutung. Bei bestimmten Protokollen gibt es bekannte Nebenports. Im Falle von aktivem FTP sind das zB Port 20 bw. 21 für die Data/Control Verbindungen. Wird aus einer FTP-Control-Verbindung (21; Client->Server) anschließend die separate Data-Rückverbindung (20; Server->Client) vom Server zum Client hergestellt, bekommt diese Verbindung den Status "related", weil beide zusammengehören. Deswegen ist die "established-Regel" einer Firewall meistens eine "established/related" Regel. So würde die Firewall daher explizit eine eingehende Verbindung auf Port 20 erlauben, wenn zuvor eine ausgehende Verbindung zum selben Verbindungspartner auf Port 21 hergestellt wurde. Genau hier liegt aber der Knackpunkt von aktivem FTP hinter einem herkömmlichen NAT-Router. Auch wenn die Firewall im Router und im PC den related-Port akeptieren würde (bzw. die related-Verbindung), interessiert das die NAT-Engine im Router herzlich wenig, da diese keine Ahnung vom Verbindungsstatus hat, sondern nur dumm Pakete hin und herleitet -> keine Portweiterleitung für den Data-Port des aktiven FTPs, keine Chance. Deswegen funktioniert FTP hinter einem Router in 99,9% aller Fälle nur mit passivem FTP.
Das führt jetzt aber etwas zu weit. Ich wollte eigentlich nur ergänzen, dass eine Portweiterleitung als solche nur ein Teil des Puzzles ist. NAT und Firewall müssen Hand in Hand gehen, sonst war's das mit dem Surfen. Bei einem Consumer-Router sind solche Regeln bereits vom Hersteller vordefiniert und der Endanwender sieht nur die benutzerdefinierten NAT-Regeln, also die Portweiterleitungen. Im Hintergrund wird der Router allerdings auch die Firewall entsprechend anpassen bzw. die established/related-Regel ist sowieso fest integriert. Bei fortgechrittenen Routern muss das nicht zwangsläufig der Fall sein und der Nutzer ist gut darin beraten, sich mit obigen Konzepten auseinanderzusetzen, da solche Router (zB EdgeRouter von Ubiquiti) ab Werk bis auf eine IP-Adresse komplett nackt daherkommen, keine Firewall, kein NAT.