Verweigern des Zugriffs auf Grundlage der Anmeldefehlerrate: <denyByFailure>-Element
Übersicht
Das <denyByFailure>
-Element konfiguriert den FTP-Dienst dazu, den Zugriff auf den FTP-Dienst basierend auf der Anzahl von Authentifizierungsfehlern zu verweigern, die innerhalb eines bestimmten Zeitraums für einen FTP-Client auftreten. Wenn die Anzahl fehlgeschlagener Anmeldeversuche erreicht wurde, wird die FTP-Verbindung zwangsweise geschlossen, und die IP-Adresse des Clients wird für die im entryExpiration-Attribut festgelegte Dauer für den Zugriff auf den FTP-Dienst gesperrt. Das Verweigern des Zugriffs auf Grundlage der Fehlerrate kann nur für den Server aktiviert werden, nicht für einzelne Sites.
Hinweis
Wenn die IP-Adresse des Clients mit einem Zulassungseintrag für eine bestimmte IP-Adresse übereinstimmt, der im Feature „FTP-Einschränkungen für IP-Adressen und Domänen“ auf Serverebene festgelegt wurde, wird dem Client zusätzliches Vertrauen gewährt, und er kann die Einschränkungsüberprüfung für FTP-Anmeldeversuche umgehen.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <denyByFailure> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <denyByFailure> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <denyByFailure> -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
Drücken Sie die Windows-Logo-Taste, und klicken Sie dann auf Server-Manager.
Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
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
- Öffnen Sie die Systemsteuerung von Windows.
- Öffnen Sie in der Windows-Systemsteuerung Programme und Features.
- Klicken Sie unter Programme und Funktionen auf Windows-Funktionen aktivieren oder deaktivieren.
- Erweitern Sie im Dialogfeld Windows-Features den Eintrag Internetinformationsdienste und dann FTP-Server.
- 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
Öffnen Sie Internetinformationsdienste-Manager (IIS):
Vorgehensweise unter Windows Server 2012 oder höher:
- Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
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).
Wählen Sie im Bereich Verbindungen den Server aus.
Doppelklicken Sie im Bereich Start auf das Feature FTP-Anmeldeversuchsbeschränkungen.
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.
Klicken Sie auf Nur in Protokoll eintragen, um zu protokollieren, dass die Bedingung erfüllt wurde, Anmeldeversuche jedoch nicht zu blockieren.
Klicken Sie im Bereich Aktionen auf Übernehmen.
Konfiguration
Das <denyByFailure>
-Element wird auf Serverebene konfiguriert.
Attribute
Attribut | Beschreibung |
---|---|
enabled |
Optionales boolesches Attribut. Ermöglicht es dem FTP-Dienst, den Zugriff auf Grundlage der Anmeldefehlerrate zu verweigern. Der Standardwert ist False . |
maxFailure |
Optionales uint-Attribut. Gibt die Anzahl von Fehlern im festgelegten Zeitraum an, die dazu führt, dass der Zugriff auf den FTP-Dienst verweigert wird. Der Standardwert ist 4 . |
entryExpiration |
Optionales TimeSpan-Attribut. Gibt den Zeitraum an, in dem eine festgelegte Anzahl von Fehlern dazu führt, dass der Zugriff auf den FTP-Dienst verweigert wird. Der Standardwert ist 00:00:30 . |
loggingOnlyMode |
Optionales boolesches Attribut. Gibt an, dass der Zugriff aufgrund der Fehlerrate nicht verweigert wird, sondern nur das Ereignis protokolliert wird. Der Standardwert ist False . |
Untergeordnete Elemente
Keine.
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"