Konfigurieren von FTP-Firewall-Einstellungen in IIS 7
von Robert McMurray
Kompatibilität
Version | Hinweise |
---|---|
IIS 7.5 | Der FTP 7.5-Dienst wird als Funktion für IIS 7.5 in Windows 7 und Windows Server 2008 R2 bereitgestellt. |
IIS 7.0 | Die Dienste FTP 7.0 und FTP 7.5 wurden für IIS 7.0 out-of-band bereitgestellt. Dazu musste der Dienst von der folgenden URL heruntergeladen und installiert werden: https://www.iis.net/download/FTP. |
Einführung
Microsoft hat einen neuen FTP-Dienst entwickelt, der für Windows Server® 2008 komplett neu geschrieben wurde. Dieser FTP-Dienst enthält viele neue Funktionen, mit denen Webautoren Inhalte besser veröffentlichen können als zuvor, und bietet Webadministratoren mehr Sicherheit- und Bereitstellungsoptionen.
Dieses Dokument führt Sie durch die Konfiguration der Firewalleinstellungen für den neuen FTP-Server.
Voraussetzungen
Die folgenden Elemente müssen installiert werden, um die Verfahren in diesem Artikel abzuschließen:
IIS 7 muss auf Ihrem Windows 2008 Server installiert sein und der Internetinformationsdienste-Manager muss installiert sein.
Der neue FTP-Dienst. Sie können den FTP-Dienst über einen der folgenden Links von der Website https://www.iis.net/ herunterladen und installieren:
- FTP 7.5 für IIS 7 (x64)
- FTP 7.5 für IIS 7 (x86)
Sie müssen einen Stammordner für die FTP-Veröffentlichung erstellen:
Erstellen Sie einen Ordner unter
%SystemDrive%\inetpub\ftproot
Legen Sie die Berechtigungen fest, um anonymen Zugriff zu ermöglichen:
Öffnen Sie eine Eingabeaufforderung.
Geben Sie folgenden Befehl ein:
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant IUSR:R /T
Schließen Sie die Eingabeaufforderung.
Wichtige Hinweise:
Die in dieser Ablaufbeschreibung aufgeführten Einstellungen geben
%SystemDrive%\inetpub\ftproot
als Pfad zu Ihrer FTP-Site an. Sie müssen diesen Pfad nicht verwenden. Wenn Sie jedoch den Speicherort für Ihre Site ändern, müssen Sie die Site-bezogenen Pfade ändern, die in dieser Ablaufbeschreibung verwendet werden.Nachdem Sie die Firewalleinstellungen für den FTP-Dienst konfiguriert haben, müssen Sie Ihre Firewallsoftware oder -hardware so konfigurieren, dass Verbindungen über die Firewall mit Ihrem FTP-Server zugelassen werden.
- Wenn Sie die integrierte Windows-Firewall verwenden, lesen Sie den (optionalen) Abschnitt Schritt 3: Konfigurieren der Windows-Firewall-Einstellungen dieser Ablaufbeschreibung.
- Wenn Sie eine andere Firewall verwenden, lesen Sie bitte die Dokumentation, die mit Ihrer Firewallsoftware oder -hardware bereitgestellt wurde.
Verwenden des FTP-Site-Assistenten zum Erstellen einer FTP-Site mit anonymer Authentifizierung
Erstellen Sie in diesem Abschnitt eine neue FTP-Site, die für den schreibgeschützten Zugriff durch anonyme Benutzer geöffnet werden kann. Führen Sie dazu die folgenden Schritte aus:
Wechseln Sie zum IIS 7-Manager. Klicken Sie im Bereich Verbindungen auf den Knoten Sites in der Struktur.
Klicken Sie mit der rechten Maustaste auf den Knoten Websites in der Struktur, und klicken Sie auf FTP-Site hinzufügen oder im Bereich Aktionen auf FTP-Website hinzufügen.
Wenn der Assistent FTP-Site hinzufügen angezeigt wird:
Geben Sie „Meine neue FTP-Site“ in das Feld Name der FTP-Site ein, und navigieren Sie dann zu dem Ordner
%SystemDrive%\inetpub\ftproot
, den Sie im Abschnitt „Voraussetzungen“ erstellt haben.Hinweis
Wenn Sie sich dafür entscheiden, den Pfad zu Ihrem Inhaltsordner einzugeben, können Sie Umgebungsvariablen in Ihren Pfaden verwenden.
Klicken Sie auf Weiter.
Auf der nächsten Seite des Assistenten:
Wählen Sie in der Dropdown-Liste IP-Adresse eine IP-Adresse für Ihre FTP-Site aus oder akzeptieren Sie die Standardauswahl „Alle nicht zugewiesenen“. Da Sie remote auf diese FTP-Site zugreifen werden, sollten Sie sicherstellen, dass Sie den Zugriff auf den lokalen Server nicht einschränken und die lokale Loopback-IP-Adresse für Ihren Computer eingeben, indem Sie „127.0.0.1“ in das Feld IP-Adresse eingeben.
Normalerweise geben Sie den TCP/IP-Port für die FTP-Site in das Feld Port ein. Akzeptieren Sie für diese Ablaufbeschreibung den Standard-Port 21.
Für diese Ablaufbeschreibung verwenden Sie keinen Hostnamen, stellen Sie daher sicher, dass das Feld Virtueller Host leer ist.
Stellen Sie sicher, dass die Dropdown-Liste Zertifikate auf „Nicht ausgewählt“ festgelegt ist und die Option SSL zulassen ausgewählt ist.
Klicken Sie auf Weiter.
Auf der nächsten Seite des Assistenten:
Wählen Sie Anonym für die Authentifizierungseinstellungen aus.
Wählen Sie für die Autorisierungseinstellungen "Anonyme Benutzer" aus der Dropdownliste Zugriff zulassen aus. Wählen Sie Lesen für die Option Berechtigungen aus.
Klicken Sie auf Fertig stellen.
Wechseln Sie zum IIS 7-Manager. Klicken Sie auf den Knoten für die FTP-Website, die Sie erstellt haben. Die Symbole für alle FTP-Funktionen werden angezeigt.
Zusammenfassung
Fassen wir nun die Einstellungen zusammen, die Sie in diesem Schritt vorgenommen haben:
- Sie haben eine neue FTP-Site namens „My New FTP Site“ erstellt, wobei der Inhaltsstamm der Site unter
%SystemDrive%\inetpub\ftproot
liegt. - Sie haben die FTP-Site an die lokale Loopbackadresse Ihres Computers an Port 21 gebunden und sich dafür entschieden, Secure Sockets Layer (SSL) für die FTP-Site nicht zu verwenden.
- Sie haben eine Standardregel für die FTP-Site erstellt, um anonymen Benutzern den „Lesezugriff“ auf die Dateien zu ermöglichen.
Schritt 1: Konfigurieren des passiven Portbereichs für den FTP-Dienst
In diesem Abschnitt konfigurieren Sie den Portbereich auf Serverebene für passive Verbindungen mit dem FTP-Dienst. Führen Sie die folgenden Schritte durch:
Wechseln Sie zum IIS 7-Manager. Klicken Sie im Bereich Verbindungen auf den Knoten der Serverebene in der Struktur.
Doppelklicken Sie in der Feature-Liste auf das Symbol FTP-Firewallunterstützung.
Geben Sie einen Wertebereich für den Datenkanal-Portbereich ein.
Klicken Sie nach der Eingabe des Portbereichs für den FTP-Dienst im Bereich Aktionen auf Anwenden, um die Konfigurationseinstellungen zu speichern.
Hinweise
Der gültige Bereich für Ports beträgt 1024 bis 65535. (Ports von 1 bis 1023 sind für die Nutzung durch Systemdienste reserviert.)
Sie können einen speziellen Portbereich von „0-0“ eingeben, um den FTP-Server für die Verwendung des dynamischen Portbereichs von Windows TCP/IP zu konfigurieren.
Weitere Informationen finden Sie in den folgenden Microsoft Knowledge Base-Artikeln:
- 174904 – Informationen zu TCP/IP-Portzuweisungen (
https://support.microsoft.com/kb/174904/
) - 929851 ‒ Der dynamische Portbereich für TCP/IP hat sich in Windows Vista und Windows Server 2008 geändert
- 174904 – Informationen zu TCP/IP-Portzuweisungen (
Dieser Portbereich muss den zulässigen Einstellungen für Ihren Firewallserver hinzugefügt werden.
Nachdem Sie die Konfigurationsänderungen vorgenommen haben, starten Sie den Microsoft FTP-Dienst über den FTP-Dienst neu
Start
>>Run
services.msc
, und suchen Sie den FTP-Dienst.
Schritt 2: Konfigurieren der externen IPv4-Adresse für eine bestimmte FTP-Site
In diesem Abschnitt konfigurieren Sie die externe IPv4-Adresse für die spezifische FTP-Site, die Sie zuvor erstellt haben. Führen Sie die folgenden Schritte durch:
Wechseln Sie zum IIS 7-Manager. Klicken Sie im Bereich Verbindungen auf die FTP-Site, die Sie zuvor in der Struktur erstellt haben. Doppelklicken Sie in der Liste der Features auf das Symbol für die FTP-Firewallunterstützung.
Geben Sie die IPv4-Adresse der externen Adresse Ihres Firewallservers für die Einstellung Externe IP-Adresse der Firewall ein.
Nachdem Sie die externe IPv4-Adresse für Ihren Firewallserver eingegeben haben, klicken Sie auf Anwenden im Bereich Aktionen, um Ihre Konfigurationseinstellungen zu speichern.
Zusammenfassung
Rekapitulieren wir die Elemente, die Sie in diesem Schritt abgeschlossen haben:
- Sie haben den passiven Portbereich für Ihren FTP-Dienst konfiguriert.
- Sie haben die externe IPv4-Adresse für eine bestimmte FTP-Site konfiguriert.
(Optional) Schritt 3: Konfigurieren der Windows-Firewall-Einstellungen
Windows Server 2008 enthält einen integrierten Firewalldienst, um Ihren Server vor Netzwerkbedrohungen zu schützen. Wenn Sie sich für die Verwendung der integrierten Windows-Firewall entscheiden, müssen Sie Ihre Einstellungen so konfigurieren, dass der FTP-Datenverkehr die Firewall durchlaufen kann.
Es gibt einige verschiedene Konfigurationen, die Sie bei der Verwendung des FTP-Diensts mit der Windows-Firewall berücksichtigen sollten – unabhängig davon, ob Sie aktive oder passive FTP-Verbindungen verwenden und ob Sie unverschlüsselte FTP-Verbindungen oder FTP über SSL (FTPS) verwenden. Jede dieser Konfigurationen wird unten beschrieben.
Hinweis
Sie müssen sicherstellen, dass Sie die Schritte in diesem Abschnitt der Ablaufbeschreibung ausführen, während Sie als Administrator angemeldet sind. Verwenden Sie dazu eine der folgenden Methoden:
- Anmelden mit dem tatsächlichen Konto namens „Administrator“ bei Ihrem Server.
- Anmelden mit einem Konto mit Administratorrechten und Öffnen einer Eingabeaufforderung, indem Sie mit der rechten Maustaste auf das Menüelement der Eingabeaufforderung klicken, das sich im Menü „Zubehör“ für Windows-Programme befindet, und „Als Administrator ausführen“ auswählen.
Einer der oben genannten Schritte ist erforderlich, da die Sicherheitskomponente für die Benutzerkontensteuerung (UAC) in den Betriebssystemen Windows Vista und Windows Server 2008 den Administratorzugriff auf Ihre Firewalleinstellungen verhindert. Weitere Informationen zur UAC finden Sie in der folgenden Dokumentation:
Hinweis
Die Windows-Firewall kann zwar mit dem Windows-Firewall-Applet in der Windows-Systemsteuerung konfiguriert werden, dieses Hilfsprogramm verfügt jedoch nicht über die erforderlichen Features, um alle Features für FTP zu aktivieren. Das Hilfsprogramm Windows-Firewall mit erweiterter Sicherheit, das sich unter Verwaltungstools in der Windows-Systemsteuerung befindet, verfügt über alle erforderlichen Features, um die FTP-Features zu aktivieren. Im Interesse der Einfachheit wird in dieser Ablaufbeschreibung jedoch beschrieben, wie Sie das Befehlszeilen-Hilfsprogramm Netsh.exe zum Konfigurieren der Windows-Firewall verwenden.
Verwenden der Windows-Firewall mit nicht sicherem FTP-Datenverkehr
Führen Sie die folgenden Schritte aus, um die Windows-Firewall so zu konfigurieren, dass nicht sicherer FTP-Datenverkehr zulässig ist:
Öffnen Sie eine Eingabeaufforderung: Klicken Sie auf Start und Alle Programme und Zubehör und Eingabeaufforderung.
Um Port 21 in der Firewall zu öffnen, geben Sie die folgende Syntax ein und drücken Sie dann die Eingabetaste:
netsh advfirewall firewall add rule name="FTP (non-SSL)" action=allow protocol=TCP dir=in localport=21
Um statusbehaftete FTP-Filterung zu aktivieren, die dynamisch Ports für Datenverbindungen öffnet, geben Sie die folgende Syntax ein, und drücken Sie dann die Eingabetaste:
netsh advfirewall set global StatefulFtp enable
Wichtige Hinweise:
- Aktive FTP-Verbindungen würden nicht unbedingt von den oben genannten Regeln abgedeckt. Eine ausgehende Verbindung von Port 20 muss auch auf dem Server aktiviert werden. Darüber hinaus müsste der FTP-Clientcomputer eigene Firewallausnahmen für eingehenden Datenverkehr einrichten.
- FTP über SSL (FTPS) wird nicht von diesen Regeln abgedeckt. Die SSL-Aushandlung schlägt höchstwahrscheinlich fehl, da der Windows-Firewallfilter für statusbehaftete FTP-Inspektionen keine verschlüsselten Daten analysieren kann. (Einige Firewallfilter von Drittanbietern erkennen den Beginn der SSL-Aushandlung, z. B. AUTH SSL- oder AUTH TLS-Befehle, und geben einen Fehler zurück, um das Starten der SSL-Aushandlung zu verhindern.)
Verwenden der Windows-Firewall mit sicherem FTP über SSL (FTPS)-Datenverkehr
Die statusbehaftete FTP-Paketüberprüfung in der Windows-Firewall verhindert höchstwahrscheinlich, dass SSL funktioniert, da der Windows-Firewallfilter für die statusbehaftete FTP-Überprüfung den verschlüsselten Datenverkehr, der die Datenverbindung herstellen würde, nicht parsen kann. Aufgrund dieses Verhaltens müssen Sie Ihre Windows-Firewalleinstellungen für FTP anders konfigurieren, wenn Sie FTP über SSL (FTPS) verwenden möchten. Die einfachste Möglichkeit, die Windows-Firewall so zu konfigurieren, dass FTPS-Datenverkehr zugelassen wird, besteht darin, den FTP-Dienst auf die Liste der eingehenden Ausnahmen zu setzen. Der vollständige Dienstname ist „Microsoft FTP-Dienst“, und der Kurzdienstname lautet „ftpsvc“. (Der FTP-Dienst wird in einem generischen Dienstprozesshost (Svchost.exe) gehostet, sodass es nicht möglich ist, ihn durch eine Programmausnahme auf die Ausnahmeliste zu setzen.)
Führen Sie die folgenden Schritte aus, um die Windows-Firewall so zu konfigurieren, dass sicherer FTP-über-SSL-Datenverkehr (FTPS) zulässig ist:
Öffnen Sie eine Eingabeaufforderung: Klicken Sie auf Start und Alle Programme und Zubehör und Eingabeaufforderung.
Um die Firewall so zu konfigurieren, dass der FTP-Dienst auf alle geöffneten Ports lauscht, geben Sie die folgende Syntax ein und drücken Sie dann die Eingabetaste:
netsh advfirewall firewall add rule name="FTP for IIS7" service=ftpsvc action=allow protocol=TCP dir=in
Um statusbehaftete FTP-Filterung zu deaktivieren, damit die Windows-Firewall den FTP-Datenverkehr nicht blockiert, geben Sie die folgende Syntax ein und drücken Sie dann die Eingabetaste:
netsh advfirewall set global StatefulFtp disable
Weitere Informationen zum Verwenden von Firewalls
Häufig ist es schwierig, Firewallregeln für FTP-Server richtig zu erstellen. Die Ursache für diese Herausforderung liegt in der FTP-Protokollarchitektur. Für jeden FTP-Client müssen zwei Verbindungen zwischen Client und Server aufrechterhalten werden:
- FTP-Befehle werden über eine primäre Verbindung namens Kontrollkanal übertragen, die in der Regel der bekannte FTP-Port 21 ist.
- FTP-Datenübertragungen wie Verzeichnisauflistungen oder Datei-Upload/Download erfordern eine sekundäre Verbindung namens Datenkanal.
Das Öffnen von Port 21 in einer Firewall ist eine einfache Aufgabe. Dies bedeutet jedoch, dass ein FTP-Client nur Befehle senden und keine Daten übertragen kann. Dies bedeutet, dass der Client den Kontrollkanal verwenden kann, um Verzeichnisse erfolgreich zu authentifizieren und zu erstellen oder zu löschen. Der Client kann jedoch keine Verzeichnisauflistungen anzeigen oder Dateien hochladen/herunterladen. Dies liegt daran, dass Datenverbindungen für FTP-Server erst dann die Firewall passieren dürfen, wenn der Datenkanal über die Firewall zugelassen wurde.
Hinweis
Dies kann für einen FTP-Client verwirrend erscheinen, da sich der Client anscheinend erfolgreich beim Server anmelden kann. Die Verbindung kann dann jedoch als Zeitüberschreitung erscheinen oder nicht mehr reagieren, wenn versucht wird, einen Verzeichniseintrag vom Server abzurufen.
Die Herausforderungen beim Arbeiten mit FTP und Firewalls enden nicht mit der Anforderung einer sekundären Datenverbindung. Um die Dinge noch weiter zu erschweren, gibt es tatsächlich zwei verschiedene Möglichkeiten zum Einrichten der Datenverbindung:
- Aktive Datenverbindungen: In einer aktiven Datenverbindung richtet ein FTP-Client einen Port für die Überwachung des Datenkanals ein, und der Server initiiert eine Verbindung mit dem Port. Dies erfolgt in der Regel von Port 20 des Servers. Aktive Datenverbindungen waren einmal die Standardverbindung zum FTP-Server. Sie werden jedoch nicht mehr empfohlen, da sie in Internetszenarien nicht gut funktionieren.
- Passive Datenverbindungen: In einer passiven Datenverbindung richtet ein FTP-Server einen Port für die Überwachung des Datenkanals ein, und der Client initiiert eine Verbindung mit dem Port. Passive Verbindungen funktionieren in Internetszenarien wesentlich besser und werden von RFC 1579 (Firewall-Friendly FTP) empfohlen.
Hinweis
Manche FTP-Clients erfordern explizite Aktionen, um passive Verbindungen zu aktivieren, und manche Clients unterstützen nicht einmal passive Verbindungen. (Ein Beispiel dafür ist das Befehlszeilenprogramm „Ftp.exe“, das mit Windows ausgeliefert wird.) Noch verwirrender wird es, weil einige Clients versuchen, intelligent zwischen den beiden Modi zu wechseln, wenn Netzwerkfehler auftreten, aber leider funktioniert dies nicht immer.
Manche Firewalls versuchen, Probleme mit Datenverbindungen mit integrierten Filtern zu beheben, die FTP-Datenverkehr scannen und Datenverbindungen dynamisch über die Firewall zulassen. Solche Firewallfilter können erkennen, welche Ports für Datenübertragungen verwendet werden sollen, und sie vorübergehend in der Firewall öffnen, damit Clients Datenverbindungen öffnen können. (Einige Firewalls können standardmäßig das Filtern von FTP-Datenverkehr aktivieren, aber das ist nicht immer der Fall.) Diese Art von Filterung wird als Typ von statusbehafteter Paketinspektion (SPI) oder statusbehaftete Inspektion bezeichnet, was bedeutet, dass die Firewall in der Lage ist, den Typ des Datenverkehrs intelligent zu bestimmen und dynamisch auszuwählen, wie reagiert werden soll. Viele Firewalls verwenden jetzt diese Features, einschließlich der integrierten Windows-Firewall.