Freigeben über


IP-Sicherheit für FTP: <ipSecurity>-Element

Übersicht

Das <ipSecurity>-Element definiert eine Liste IP-basierter Sicherheitseinschränkungen in FTP 7. Diese Einschränkungen können auf der IPv4-Adresse (IP-Version 4), einem Bereich von IPv4-Adressen oder einem DNS-Domänennamen basieren.

Kompatibilität

Version Hinweise
IIS 10.0 Das <ipSecurity>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <ipSecurity>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <ipSecurity>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <ipSecurity>-Element des <system.ftpServer/security>-Elements wird als Feature von IIS 7.5 bereitgestellt.
IIS 7.0 Das <ipSecurity>-Element des <system.ftpServer/security>-Elements wurde in FTP 7.0 als separater Download für IIS 7.0 eingeführt.
IIS 6.0 N/V

Hinweis

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

https://www.iis.net/expand/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 zusätzlich zu FTP-Dienst die Option FTP-Erweiterbarkeit auswählen.
    Screenshot that shows F T P Service and F T P Extensibility selected for Windows Server 2012..

  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 wählen Sie dann Systemsteuerung aus.

  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 that shows F T P Extensibility and F T P Service selected for Windows 8.

  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 wählen Sie dann Server-Manager aus.

  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 that shows F T P Service and F T P Extensibility selected for Windows Server 2008.

  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 der 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.
    Screenshot that shows F T P Extensibility and F T P Service selected for Windows 7.

  5. Klicken Sie auf OK.

Windows Server 2008 oder Windows Vista

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

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

Gewusst wie

Hinzufügen von IP-Einschränkungen zum Zulassen oder Verweigern des Zugriffs für eine FTP-Site

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

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

      • Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
    • 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. Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie den Knoten Sites, und klicken Sie dann auf die FTP-Site oder URL, für die Sie IP-Einschränkungen hinzufügen möchten.

  3. Doppelklicken Sie im Bereich Start auf das Feature FTP-Einschränkungen für IPv4-Adressen und Domänen.
    Screenshot that shows the contoso dot com Home pane, with F T P I P v 4 Address and Domain Restrictions selected.

  4. Klicken Sie im Feature FTP-Einschränkungen für IPv4-Adressen und Domänen im Bereich Aktionen auf Zulassungseintrag hinzufügen oder Ablehnungseintrag hinzufügen.
    Screenshot that shows the F T P I P v 4 Address and Domain Restrictions pane in the I I S Manager.

  5. Geben Sie die IP-Adresse ein, die Sie zulassen oder verweigern möchten, und klicken Sie dann auf OK.
    Screenshot that shows the Add Deny Restriction Rule dialog box.


Bearbeiten der Featureeinstellungen für IP-Einschränkungen für eine FTP-Site

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

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

      • Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
    • 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. Erweitern Sie im Bereich „Verbindungen“ den Servernamen, erweitern Sie den Knoten Sites, und klicken Sie dann auf die FTP-Site oder URL, für die Sie IP-Einschränkungen konfigurieren möchten.

  3. Doppelklicken Sie im Bereich Start auf das Feature FTP-Einschränkungen für IPv4-Adressen und Domänen.
    Screenshot that shows the contoso dot com Home pane. F T P I P v 4 Address and Domain Restrictions is selected.

  4. Klicken Sie im Feature FTP-Einschränkungen für IPv4-Adressen und Domänen im Bereich Aktionen auf Featureeinstellungen bearbeiten.
    Screenshot that shows the F T P I P v 4 Address and Domain Restrictions pane.

  5. Wählen Sie das Standardzugriffsverhalten für nicht angegebene Clients aus, geben Sie an, ob Einschränkungen nach Domänenname aktiviert werden sollen, und klicken Sie dann auf OK.
    Screenshot that shows the Edit I P and Domain Restrictions Settings dialog box. Allow is selected.

Konfiguration

Das <ipSecurity>-Element wird auf Site- oder URL-Ebene konfiguriert.

Regeln werden in der Reihenfolge verarbeitet, in der sie in der Liste aufgeführt sind (von oben nach unten). Das allowUnlisted-Attribut wird zuletzt verarbeitet. Eine bewährte Methode für IPsec-Einschränkungen (Internetprotokollsicherheit) besteht darin, zuerst Verweigerungsregeln aufzulisten. Sie können das allowUnlisted-Attribut nicht löschen, wenn es auf false festgelegt ist.

Attribute

Attribut Beschreibung
allowUnlisted Optionales Boolean -Attribut.

Gibt an, ob nicht aufgelistete IP-Adressen zugelassen werden sollen. Wenn Sie das allowUnlisted-Attribut auf true festlegen, kann eine nicht aufgelistete IP-Adresse auf den Server zugreifen. Wenn Sie das allowUnlistedAttribut auf false festlegen, wird der Server gesperrt, sodass der Zugriff auf alle IP-Adressen verhindert wird, die nicht aufgelistet sind. Wenn Sie dieses Attribut auf „false“ festlegen und die lokale Loopbackadresse (127.0.0.1) nicht als zulässige IP-Adresse auflisten, können Sie nicht mit einem Browser über eine lokale Konsole auf Ihren Server zugreifen.

Der Standardwert ist true.
enableReverseDns Optionales Boolean -Attribut.

Gibt an, ob Reverse-DNS-Lookups (Domain Name System) für den FTP-Server aktiviert oder deaktiviert werden sollen. Reverse-Lookups umfassen das Nachschlagen des Domänennamens, wenn die IP-Adresse bekannt ist.

Achtung: Reverse-DNS-Lookups können erhebliche Ressourcen und viel Zeit in Anspruch nehmen.

Der Standardwert ist false.

Untergeordnete Elemente

Element Beschreibung
add Optionales Element.

Fügt der Sammlung von IP-Adresseinschränkungen eine IP-Einschränkung hinzu.
remove Optionales Element.

Entfernt einen Verweis auf eine Einschränkung aus der <ipSecurity>-Sammlung.
clear Optionales Element.

Entfernt alle Verweise auf Einschränkungen aus der <ipSecurity>-Sammlung.

Konfigurationsbeispiel

Das folgende Beispiel zeigt 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 wird die IP-Sicherheit für FTP zum Zulassen nicht aufgelisteter IP-Adressen konfiguriert, und anschließend werden IP-Einschränkungen festgelegt, die den Zugriff von 127.0.0.1 zulassen und den Zugriff vom IP-Adressbereich 169.254.0.0/255.255.0.0 verweigern.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /allowUnlisted:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /+"[ipAddress='169.254.0.0',subnetMask='255.255.0.0']" /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 ipSecuritySection = config.GetSection("system.ftpServer/security/ipSecurity", "Default Web Site");
         ConfigurationElementCollection ipSecurityCollection = ipSecuritySection.GetCollection();

         ipSecuritySection["allowUnlisted"] = true;

         ConfigurationElement addElement = ipSecurityCollection.CreateElement("add");
         addElement["ipAddress"] = @"127.0.0.1";
         addElement["allowed"] = true;
         ipSecurityCollection.Add(addElement);

         ConfigurationElement addElement1 = ipSecurityCollection.CreateElement("add");
         addElement1["ipAddress"] = @"169.254.0.0";
         addElement1["subnetMask"] = @"255.255.0.0";
         ipSecurityCollection.Add(addElement1);

         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 ipSecuritySection As ConfigurationSection = config.GetSection("system.ftpServer/security/ipSecurity", "Default Web Site")
      Dim ipSecurityCollection As ConfigurationElementCollection = ipSecuritySection.GetCollection

      ipSecuritySection("allowUnlisted") = True

      Dim addElement As ConfigurationElement = ipSecurityCollection.CreateElement("add")
      addElement("ipAddress") = "127.0.0.1"
      addElement("allowed") = True
      ipSecurityCollection.Add(addElement)

      Dim addElement1 As ConfigurationElement = ipSecurityCollection.CreateElement("add")
      addElement1("ipAddress") = "169.254.0.0"
      addElement1("subnetMask") = "255.255.0.0"
      ipSecurityCollection.Add(addElement1)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var ipSecuritySection = adminManager.GetAdminSection("system.ftpServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var ipSecurityCollection = ipSecuritySection.Collection;

ipSecuritySection.Properties.Item("allowUnlisted").Value = true;

var addElement = ipSecurityCollection.CreateNewElement("add");
addElement.Properties.Item("ipAddress").Value = "127.0.0.1";
addElement.Properties.Item("allowed").Value = true;
ipSecurityCollection.AddElement(addElement);

var addElement1 = ipSecurityCollection.CreateNewElement("add");
addElement1.Properties.Item("ipAddress").Value = "169.254.0.0";
addElement1.Properties.Item("subnetMask").Value = "255.255.0.0";
ipSecurityCollection.AddElement(addElement1);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set ipSecuritySection = adminManager.GetAdminSection("system.ftpServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set ipSecurityCollection = ipSecuritySection.Collection

ipSecuritySection.Properties.Item("allowUnlisted").Value = True

Set addElement = ipSecurityCollection.CreateNewElement("add")
addElement.Properties.Item("ipAddress").Value = "127.0.0.1"
addElement.Properties.Item("allowed").Value = True
ipSecurityCollection.AddElement(addElement)

Set addElement1 = ipSecurityCollection.CreateNewElement("add")
addElement1.Properties.Item("ipAddress").Value = "169.254.0.0"
addElement1.Properties.Item("subnetMask").Value = "255.255.0.0"
ipSecurityCollection.AddElement(addElement1)

adminManager.CommitChanges()