Freigeben über


FTP-Anforderungsgrenzwerte: <requestLimits>-Element

Das <requestLimits>-Element gibt Grenzwerte für FTP-Anforderungen an, die vom FTP-Server verarbeitet werden. Diese Grenzwerte umfassen die maximale Größe einer Anforderung und die maximale Länge für eine Befehlssequenz.

Hinweis

Wenn die Anforderungsfilterung eine FTP-Anforderung blockiert, weil eine FTP-Anforderung die Anforderungsgrenzwerte überschreitet, gibt FTP 7 einen FTP-Fehler an den Client zurück und protokolliert einen der folgenden FTP-Unterstatus, der den Grund für die Verweigerung der Anforderung angibt:

FTP-Unterstatus Beschreibung
12 Der Pfad ist basierend auf den Anforderungsfilterungsregeln zu lang.
51 Der Zugriff wurde aufgrund der Befehlsfilterungsregeln verweigert.

Mit diesen Unterstatus können FTP-Administratoren ihre IIS-Protokolle analysieren und potenzielle Bedrohungen identifizieren.

Kompatibilität

Version Hinweise
IIS 10.0 Das <requestLimits>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <requestLimits>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <requestLimits>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <requestLimits>-Element des <requestFiltering>-Elements wird als Feature von IIS 7.5 bereitgestellt.
IIS 7.0 Das <requestLimits>-Element des <requestFiltering>-Elements wurde in FTP 7.0 als separater Download für IIS 7.0 eingeführt.
IIS 6.0 Der FTP-Dienst in IIS 6.0 hat die Anforderungsfilterung nicht unterstützt.

Hinweis

Die Dienste FTP 7.0 und FTP 7.5 waren nicht im Lieferumfang von IIS 7.0 enthalten, daher mussten die Module unter der folgenden URL heruntergeladen und installiert werden:

https://www.iis.net/downloads/microsoft/ftp

Bei Windows 7 und Windows Server 2008 R2 wird der FTP 7.5-Dienst als Feature für IIS 7.5 bereitgestellt, sodass das Herunterladen des FTP-Diensts nicht mehr erforderlich ist.

Setup

Um die FTP-Veröffentlichung für Ihren Webserver zu unterstützen, müssen Sie den FTP-Dienst installieren. Führen Sie dazu die folgenden Schritte aus:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.

  2. Klicken Sie im Server-Manager auf das Menü Verwalten und dann auf Rollen und Features hinzufügen.

  3. Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.

  4. Erweitern Sie auf der Seite Serverrollen den Eintrag Webserver (IIS), und wählen Sie dann FTP-Server aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie die Option FTP-Erweiterbarkeit zusätzlich zu FTP-Dienst auswählen. Image of Web Server I I S and F T P Server nodes expanded and F T P Extensibility highlighted.

  5. Klicken Sie auf Weiter, und wählen Sie dann auf der Seite Features auswählen erneut Weiter aus.

  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.

  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Klicken Sie auf dem Startbildschirm in der unteren linken Ecke mit der rechten Maustaste auf die Schaltfläche Start, und klicken Sie dann auf Systemsteuerung.

  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.

  3. Erweitern Sie Internetinformationsdienste, und wählen Sie dann FTP-Server aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen. Screenshot of Internet Information Services and F T P Server pane expanded with F T P Extensibility highlighted.

  4. Klicken Sie auf OK.

  5. Klicken Sie auf Schließen.

Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Server-Manager.

  2. Erweitern Sie im Hierarchiebereich des Server-Managers den Eintrag Rollen, und klicken Sie dann auf Webserver (IIS).

  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.

  4. Erweitern Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten den Eintrag FTP-Server.

  5. Wählen Sie FTP-Dienst aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen. Screenshot of Select Role Services page with F T P Server pane expanded and F T P Service selected.

  6. Klicken Sie auf Weiter.

  7. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.

  8. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 7

  1. Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.

  2. Klicken Sie in Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.

  3. Erweitern Sie Internetinformationsdienste und dann FTP-Server.

  4. Wählen Sie FTP-Dienst aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen. Image of Internet Information Services and F T P Server node expanded with F T P Service and F T P Extensibility selected.

  5. Klicken Sie auf OK.

Windows Server 2008 oder Windows Vista

  1. Laden Sie das Installationspaket unter der folgenden URL herunter:

    https://www.iis.net/downloads/microsoft/ftp

  2. Befolgen Sie die Anweisungen in der folgenden exemplarischen Vorgehensweise, um den FTP-Dienst zu installieren:

    Installieren von FTP 7 und Problembehandlung

Gewusst wie

Hinweis

Für die FTP-Anforderungsfilterung war im Release FTP 7.0 keine Benutzeroberfläche verfügbar. Die Benutzeroberfläche für die FTP-Anforderungsfilterung wurde im Release FTP 7.5 hinzugefügt.

Bearbeiten der Featureeinstellungen und Anforderungsgrenzwerte für die Anforderungsfilterung

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager, dann auf Tools und danach auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
  2. Wechseln Sie im Bereich Verbindungen zu der Site oder dem Verzeichnis, für die bzw. das Sie die Einstellungen für die Anforderungsfilterung ändern möchten.

  3. Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.

  4. Klicken Sie im Bereich Aktionen auf Featureeinstellungen bearbeiten.

    Image of F T P Request Filtering page displaying Edit Feature Settings in Actions pane.

  5. Geben Sie Ihre Optionen an. Sie können beispielsweise die folgenden Änderungen vornehmen:

    • Ändern Sie die maximale URL-Länge in 2 KB, indem Sie 2.048 angeben.
    • Ändern Sie die maximale Befehlslänge in 1 KB, indem Sie 1.024 angeben.

    Hinweis

    Es wird empfohlen, das Kontrollkästchen Nicht aufgelistete Befehle zulassen nicht zu deaktivieren.
    Image of Edit F T P Request Filtering Settings dialog box showing Allow unlisted commands and Allow high bit characters both selected.

  6. Klicken Sie auf OK.

Konfiguration

Das <requestLimits>-Element des <requestFiltering>-Elements wird auf globaler, Site- oder URL-Ebene konfiguriert.

Attribute

Attribut Beschreibung
maxAllowedContentLength Optionales int64-Attribut.

Gibt die maximale Inhaltslänge in einer Anforderung an (in Bytes).

Der Standardwert ist 0 (unbegrenzt).
maxUrl Optionales uint-Attribut.

Gibt die maximale Länge einer Anforderung an (in Bytes).

Hinweis: Der Wert muss zwischen 32 und 32.768 liegen.

Der Standardwert ist 4096.

Untergeordnete Elemente

Keine.

Konfigurationsbeispiel

Das folgende Beispiel veranschaulicht mehrere sicherheitsbezogene Konfigurationseinstellungen im <system.ftpServer>-Element für eine FTP-Site. Insbesondere zeigen die <location>-Einstellungen in diesem Beispiel, wie Sie:

  • eine FTP-Autorisierungsregel für Lese- und Schreibzugriff für die Administratorengruppe festlegen
  • Optionen für die FTP-Anforderungsfilterung festlegen, die Dateien mit den Dateiendungen „*.exe“, „*.bat“ und „*.cmd“ verweigern
  • FTP-Anforderungsgrenzwerte für eine maximale Inhaltslänge von 1.000.000 Bytes und eine maximale URL-Länge von 1.024 Bytes festlegen
  • den FTP-Zugriff auf das virtuelle Verzeichnis „_vti_bin“ blockieren, das mit den FrontPage-Servererweiterungen (FPSE) verwendet wird
  • IP-Filterungsoptionen für FTP festlegen, die den Zugriff von 127.0.0.1 zulassen und den Zugriff vom IP-Adressbereich 169.254.0.0/255.255.0.0 verweigern
<location path="ftp.example.com">
  <system.ftpServer>
    <security>
      <authorization>
        <add accessType="Allow" roles="administrators" permissions="Read, Write" />
      </authorization>
      <requestFiltering>
        <fileExtensions allowUnlisted="true">
          <add fileExtension=".exe" allowed="false" />
          <add fileExtension=".bat" allowed="false" />
          <add fileExtension=".cmd" allowed="false" />
        </fileExtensions>
        <requestLimits maxAllowedContentLength="1000000" maxUrl="1024" />
        <hiddenSegments>
          <add segment="_vti_bin" />
        </hiddenSegments>
      </requestFiltering>
      <ipSecurity enableReverseDns="false" allowUnlisted="true">
        <add ipAddress="127.0.0.1" allowed="true" />
        <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
      </ipSecurity>
    </security>
  </system.ftpServer>
</location>

Beispielcode

In den folgenden Beispielen werden FTP-Anforderungsgrenzwerte für eine maximale Inhaltslänge von 1.000.000 Bytes und eine maximale URL-Länge von 1.024 Bytes festgelegt.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/requestFiltering /requestLimits.maxAllowedContentLength:"1000000" /requestLimits.maxUrl:"1024" /commit:apphost

Hinweis

Sie müssen den commit-Parameter auf apphost festlegen, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen in den entsprechenden Location-Abschnitt der Datei „ApplicationHost.config“ committet.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
  private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection requestFilteringSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site");

         ConfigurationElement requestLimitsElement = requestFilteringSection.GetChildElement("requestLimits");
         requestLimitsElement["maxAllowedContentLength"] = 1000000;
         requestLimitsElement["maxUrl"] = 1024;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site")

      Dim requestLimitsElement As ConfigurationElement = requestFilteringSection.GetChildElement("requestLimits")
      requestLimitsElement("maxAllowedContentLength") = 1000000
      requestLimitsElement("maxUrl") = 1024

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var requestLimitsElement = requestFilteringSection.ChildElements.Item("requestLimits");
requestLimitsElement.Properties.Item("maxAllowedContentLength").Value = 1000000;
requestLimitsElement.Properties.Item("maxUrl").Value = 1024;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set requestLimitsElement = requestFilteringSection.ChildElements.Item("requestLimits")
requestLimitsElement.Properties.Item("maxAllowedContentLength").Value = 1000000
requestLimitsElement.Properties.Item("maxUrl").Value = 1024

adminManager.CommitChanges()