Windows Server 2003 - FTP und Windows Firewall auf dem Server

Konfiguration

Problem

Werden Daten zum Server übertragen und die Übertragung einer Datei dauert länger als ca. 2 Minuten, so bricht die Kommunikation nach der (erfolgreichen) Übertragung ab. Unabhängig ob aktives oder passives FTP benutzt wird. Der Download vom Server verläuft problemlos.

KB931130 richtet sich genau auf dieses Problem (bin ich erst später darauf gestoßen).

Ursache

Aus dem Firewallprotokoll leite ich anhand mehrerer Versuche mit Aktiv- und Passiv-FTP folgendes ab:

Lösung/Abhilfe

Es gibt je nach Bedarf mehrere Möglichkeiten der Abhilfe.

Wird nur aktives FTP benötigt:

Wird aktives und passives FTP benötigt:

Es muss also vermieden werden, dass gleichzeitig der "Gatewaydienst auf Anwendungsebene" und die "FTP-Dienst"-Ausnahme der Firewall aktiv sind, da deren fehlerhaftes Zusammenspiel unterdrückt werden muss.

KB931130 beschreibt eine Lösung, die ich nicht getestet habe, aber die gleiche Wirkung verspricht (ALG verwaltet keine Portmappings für den FTP-Dienst):

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ALG\ISV\{6E590D61-F6BC-4dad-AC21-7DC40D304059}]
"PreferExternalManifest"="Disable"

Hintergrund

Im Firewallprotokoll fällt auf, dass noch vor Abschluss der Übertragung der Port 21 in der Firewall des Servers geschlossen wird (war für ca. 120s offen). Nach der Übertragung sendet der FTP-Server über Port 21 die Quittung "226 Transfer complete". Dazu wird Port 21 wieder geöffnet, jedoch wird an einen völlig falschen Client-Port gesendet - das Paket wird von Client-Seite abgelehnt und eine entsprechende ICMP-Nachricht an den FTP-Server geschickt.

Auszug auf dem Server-Firewall-Protokoll bei Passiv-FTP mit aktivierter Firewall (FTP-Dienst erlaubt):

time action protocol src-ip dst-ip src-port dst-port Anmerkung
08:58:28 OPEN-INBOUND TCP client server 2478 21 Verbindungsaufbau
08:58:29 OPEN-INBOUND TCP client server 61016 5001 PASV-Anfrage
08:58:49 OPEN-INBOUND TCP client server 61017 5002 PASV-Anfrage
08:59:28 CLOSE TCP client server 61016 5001 abgebaut 08:58:29
09:00:28 CLOSE TCP client server 2478 21 vorzeitiges Schließen
09:00:39 OPEN TCP server client 21 48641 Senden "Transfer complete"
09:01:00 CLOSE TCP server client 21 48641 abgebaut 09:00:50
09:01:28 CLOSE TCP client server 61017 5002 abgebaut 09:00:39

Die eigentliche Übertragung der Datei (STOR bis Transfer complete) über Port 5002 fand von 08:58:49 - 09:00:39 statt.

Auszug auf dem Server-Firewall-Protokoll bei Aktiv-FTP mit aktivierter Firewall (FTP-Dienst erlaubt):

time action protocol src-ip dst-ip src-port dst-port Anmerkung
10:45:03 OPEN-INBOUND TCP client server 4913 21 Verbindungsaufbau
10:45:04 OPEN TCP server client 20 5001 PORT
10:45:20 OPEN TCP server client 20 5002 PORT
10:46:49 CLOSE TCP client server 4913 21 vorzeitiges Schließen
10:47:08 OPEN TCP server client 21 46206 Senden "Transfer complete"
10:47:08 CLOSE TCP server client 20 5002 abgebaut 10:47:08
10:47:15 CLOSE TCP server client 20 5001 abgebaut 10:45:04
10:47:29 CLOSE TCP server client 21 46206  
10:48:30 OPEN-INBOUND TCP client server 4913 21  
10:48:49 CLOSE TCP client server 4913 21  

Die eigentliche Übertragung der Datei (STOR bis Transfer complete) über Port 5002 fand von 10:45:20 - 10:47:08 statt.

Der FTP-Sitzungstimeout (der sofort gültig ist) hat auf das Verhalten der Firewall keine Auswirkung. Wird die Sitzung nicht geschlossen, schließt der Server nach der Wartezeit des Timeouts automatisch die Sitzung ("421 Timeout"). Da jedoch die Firewall stets vorher den Port 21 bereits geschlossen hat, schlägt dieser Kommunikationsversuch ebenfalls fehl.

Informationen

Dazu aus dem MS-TechNet-Artikel How Windows Firewall Works:

With the exception of some File Transfer Protocol (FTP) traffic, Windows Firewall does not use Application layer information to statefully filter traffic. FTP is a special case [...] Windows Firewall uses the Application Layer Gateway Service to provide dynamic port mapping for the FTP data channel, thereby facilitating the stateful filtering of FTP traffic.

Note: Passive (PASV) FTP is not treated as a special case and is not handled by the Application Layer Gateway Service. PASV FTP traffic is statefully filtered by Windows Firewall in the same way other TCP/IP traffic is statefully filtered.

The Application Layer Gateway Service (sometimes known as the ALG service) is required if you enable Windows Firewall on a computer that is an FTP client or FTP server that does not use PASV FTP. The Application Layer Gateway Service listens for outgoing FTP traffic from an FTP client. It then extracts the port from which the FTP client is expecting to receive data and creates an appropriate dynamic port mapping for the FTP data channel.

The Application Layer Gateway Service and Windows Firewall interact as follows:

Soll für den Server heißen:

Links


Erstellt 26.10.2009, zuletzt geändert 18.03.2011 12:35:22, Zugriffszähler Besuche. © Christian Enders

Home | Nach oben | Becker Traffic Assist Pro Z302 | Toyota Corolla | Toyota Yaris | Toyota Celica | Toyota Carina E | Toyota Starlet | BMW 1er E87 | BMW 3er E46 | Hyundai i40 | Mazda 626 | Mercedes R129 | Mercedes R170 | Opel Astra | Opel Corsa | Porsche | Smart MC 01 | VW Golf | Farbwiedergabe | Windows Server 2003 - FTP und Windows Firewall | Windows Adressbuch | Apple-Spickzettel | Handy-Schnittstellen | Mobilfunk | Restguthaben bei Prepaid-Handy-Karten | Carson Model Sport LB Charger II | Megasat HD500se | Gould DSO 1604