- Betrifft: IIS 7.0 und IIS 7.5, jeweils mit installiertem FTP
- System: Microsoft Windows Server 2008 x64, Windows Server 2008 R2 x64
- Problem: beim Zugriff von einem FTP-Client auf die FTP Funktion vom IIS 7.x erhält man einen GnuTLS Fehlermeldung. Die FTP-Verbindung wird hierbei mittels TLS und SSL-Zertifikat geschützt.
Hintergrund
Seit IIS 7.x wurde die FTP-Funktion komplett überarbeitet. Nun beherrscht die FTP-Komponente im IIS auch eine Verschlüsselung. Zu diesem Zweck wurde eine FTP-Seite mit Zertifikat am Server eingerichtet und bei der FTP-Firewallunterstützung die öffentliche IP-Adresse eingetragen. Auch der Datenkanal-Portbereich wurde entsprechend angepasst.
Die externe Firewall wurde entsprechend den gewünschten Einstellungen konfiguriert und leitet die Anfragen weiter. Trotzdem erhält man beim Zugriff auf den FTP-Server nur eine merkwürdige Fehlermeldung. Das Anmelden funktioniert, aber es wird kein Verzeichnisinhalt angezeigt.
GnuTLS error -53: Error in the push function.
550 Data channel timed out.
Der IIS wurde bereits neu gestartet (z.B. via Kommandozeile mit "iisreset /noforce") und etwaige Einstellungen geprüft.
Behebung
Die meisten werden an fehlerhaften Einstellungen bei der Firewall denken. Im Prinzip ist dieser Gedanke nicht ganz falsch. Definitiv der falsche Weg wäre hier bei der Windows Firewall herum zu pfuschen, denn diese wird über den Installationsassistenten bereits vorkonfiguriert. Eine Kontrolle wird dies auch zeigen.
Der Grund liegt an dem passiven FTP, wo der Aufbau über den Standardport erfolgt, jedoch der Datenaustausch über eigene Ports (siehe Datenkanal-Portbereich). Es wäre aber zwecklos nun das passive FTP zu deaktivieren oder einen anderen Portbereich zu wählen. Die Behebung ist recht einfach erledigt.
Die FTP-Komponente verwendet einen eigenen Dienst, welcher nichts mit dem IIS Webpublishing zu tun hat. Damit wird dieser Dienst auch nicht über "iisreset" neu gestartet. Womöglich wurde der Datenkanal-Portbereich neu konfiguriert. Dies muss sowieso einmalig auf jeden Computer durchgeführt werden nachdem man die FTP-Komponente installiert hat. Standardmäßig wird nämlich kein konkreter Portbereich vorgegeben.
Für die Übernahme dieser neuen Konfiguration muss der "Microsoft-FTP-Dienst" neu gestartet werden. Die restlichen IIS-Dienste können gestartet bleiben.
Entweder man macht dies per Maus über die Diensteverwaltung oder in der Kommandozeile "cmd" mittels den beiden Befehlen "net stop ftpsvc" und "net start ftpsvc". Danach wird die GnuTLS-Fehlermeldung nicht mehr erscheinen.