Freigeben über


FTP-Systemauthentifizierung: <authentication>-Element

Übersicht

Mit dem <authentication>-Element können Sie die Benutzerkonten konfigurieren, die auf Ihre Site oder Anwendung zugreifen können. Verwenden Sie die Authentifizierung in Kombination mit der Autorisierung, um den Zugriff auf Inhalte auf Ihrem Server zu sichern. Die Authentifizierung bestätigt die Identität eines Benutzers, während die Autorisierung bestimmt, auf welche Ressourcen Benutzer zugreifen können.

IIS definiert einen Authentifizierungsregeltyp – Verweigerungsregeln. Mithilfe von Verweigerungsregeln können Sie die Benutzerkonten oder Benutzergruppen festlegen, die nicht auf die Sites auf einem Server zugreifen können.

Kompatibilität

Version Hinweise
IIS 10.0 Das <authentication>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <authentication>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <authentication>-Element wurde in IIS 8.0 eingeführt.
IIS 7.5 N/V
IIS 7.0 N/V
IIS 6.0 N/V

Setup

Um das Verweigern des Zugriffs über die Authentifizierung auf Ihrem FTP-Server zu unterstützen, müssen Sie den Rollendienst „FTP-Dienst“ installieren.

Windows Server 2012

  1. Drücken Sie die Windows-Logo-Taste, und klicken Sie dann auf Server-Manager.

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

  3. Im Assistenten zum Hinzufügen von Rollen und Features:

    • Klicken Sie auf der Seite Voraussetzungen auf Weiter.
    • Wählen Sie auf der Seite Installationstyp den Installationstyp aus, und klicken Sie dann auf Weiter.
    • Wählen Sie auf der Seite Serverauswahl den entsprechenden Server aus, und klicken Sie dann auf Weiter.
    • Stellen Sie auf der Seite Serverrollen sicher, dass Webserver (IIS) ausgewählt ist, und erweitern Sie diesen Eintrag.
    • Erweitern Sie FTP-Server, wählen Sie sowohl FTP-Dienst als auch FTP-Erweiterbarkeit aus, und klicken Sie dann auf Weiter.
    • Klicken Sie auf der Seite Features auf Weiter.
    • Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
    • Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8

  1. Öffnen Sie die Systemsteuerung von Windows.
  2. Öffnen Sie in der Windows-Systemsteuerung Programme und Features.
  3. Klicken Sie unter Programme und Funktionen auf Windows-Funktionen aktivieren oder deaktivieren.
  4. Erweitern Sie im Dialogfeld Windows-Features den Eintrag Internetinformationsdienste und dann FTP-Server.
  5. Wählen Sie unter FTP-Server die Optionen FTP-Dienst und FTP-Erweiterbarkeit aus, und klicken Sie dann auf OK.

Gewusst wie

Verweigern des Zugriffs auf den FTP-Server auf Grundlage der Anmeldefehlerrate

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

    • Vorgehensweise unter Windows Server 2012 oder höher:

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

      • 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).
  2. Wählen Sie im Bereich Verbindungen den Server aus.

  3. Doppelklicken Sie im Bereich Start auf das Feature FTP-Anmeldeversuchsbeschränkungen.

    Image of Home pane displaying Enable F T P Log on Attempt Restrictions feature selected.

  4. Klicken Sie im Dialogfeld FTP-Anmeldeversuchsbeschränkungen auf Aktivieren, um die Beschränkungen zu aktivieren. Geben Sie dann die maximale Anzahl von Fehlern und den Zeitraum ein, um festzulegen, wann diese Fehler dazu führen, dass der Zugriff auf den FTP-Dienst verweigert wird.

  5. Klicken Sie auf Nur in Protokoll eintragen, um zu protokollieren, dass die Bedingung erfüllt wurde, Anmeldeversuche jedoch nicht zu blockieren.

  6. Wählen Sie im Bereich Aktionen die Option Übernehmen aus.

Konfiguration

Das <authentication>-Element wird auf Serverebene konfiguriert.

Attribute

Keine

Untergeordnete Elemente

Element Beschreibung
denyByFailure Optionales Element.

Konfiguriert den FTP-Dienst zum Verweigern des Zugriffs auf Grundlage der Anmeldefehlerrate.

Konfigurationsbeispiel

Im folgenden Beispiel wird ein <denyByFailure>-Element konfiguriert.

<system.ftpServer>
   <security>
      <authentication>
         <denyByFailure enabled="true" maxFailure="5" entryExpiration="00:00:45" loggingOnlyMode="false" />
      </authentication>
   </security>
</system.ftpServer>

Beispielcode

In den folgenden Codebeispielen wird das Verweigern des Zugriffs auf den FTP-Server auf Grundlage der Anmeldefehlerrate konfiguriert.

AppCmd.exe

appcmd.exe set config  -section:system.ftpServer/security/authentication /denyByFailure.enabled:"True" /denyByFailure.maxFailure:"10" /denyByFailure.entryExpiration:"00:00:35" /denyByFailure.loggingOnlyMode:"False"  /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 authenticationSection = config.GetSection("system.ftpServer/security/authentication");
            
            ConfigurationElement denyByFailureElement = authenticationSection.GetChildElement("denyByFailure");
            denyByFailureElement["enabled"] = true;
            denyByFailureElement["maxFailure"] = 10;
            denyByFailureElement["entryExpiration"] = TimeSpan.Parse("00:00:35");
            denyByFailureElement["loggingOnlyMode"] = false;
            
            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 authenticationSection As ConfigurationSection = config.GetSection ("system.ftpServer/security/authentication")
      Dim denyByFailureElement As ConfigurationElement = authenticationSection.GetChildElement("denyByFailure")
      denyByFailureElement("enabled") = true
      denyByFailureElement("maxFailure") = 10
      denyByFailureElement("entryExpiration") = TimeSpan.Parse("00:00:35")
      denyByFailureElement("loggingOnlyMode") = false
      serverManager.CommitChanges
   End Sub
End Module

JavaScript

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

var authenticationSection = adminManager.GetAdminSection("system.ftpServer/security/authentication", "MACHINE/WEBROOT/APPHOST");
var denyByFailureElement = authenticationSection.ChildElements.Item("denyByFailure");
denyByFailureElement.Properties.Item("enabled").Value = true;
denyByFailureElement.Properties.Item("maxFailure").Value = 10;
denyByFailureElement.Properties.Item("entryExpiration").Value = "00:00:35";
denyByFailureElement.Properties.Item("loggingOnlyMode").Value = false;

adminManager.CommitChanges();

VBScript

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

Set authenticationSection = adminManager.GetAdminSection("system.ftpServer/security/authentication", "MACHINE/WEBROOT/APPHOST")
Set denyByFailureElement = authenticationSection.ChildElements.Item("denyByFailure")
denyByFailureElement.Properties.Item("enabled").Value = true
denyByFailureElement.Properties.Item("maxFailure").Value = 10
denyByFailureElement.Properties.Item("entryExpiration").Value = "00:00:35"
denyByFailureElement.Properties.Item("loggingOnlyMode").Value = false

adminManager.CommitChanges()

PowerShell

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.ftpServer/security/authentication/denyByFailure" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.ftpServer/security/authentication/denyByFailure" -name "maxFailure" -value 10
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.ftpServer/security/authentication/denyByFailure" -name "entryExpiration" -value "00:00:35"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.ftpServer/security/authentication/denyByFailure" -name "loggingOnlyMode" -value "False"