Authentification FTP système <authentification>
Vue d’ensemble
L'élément <authentication>
vous permet de configurer les comptes d'utilisateur qui peuvent accéder aux sites sur un serveur. Utilisez l'authentification en combinaison avec l'autorisation pour sécuriser l'accès au contenu de votre serveur. L'authentification confirme l'identité d'un utilisateur, tandis que l'autorisation détermine les ressources auxquelles les utilisateurs peuvent accéder ou non.
IIS définit un type de règle d'authentification, règles de refus. Les règles de refus vous permettent de définir les comptes d'utilisateur ou les groupes d'utilisateurs qui ne peuvent pas accéder aux sites sur un serveur.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L'élément <authentication> n'a pas été modifié dans IIS 10.0. |
IIS 8.5 | L'élément <authentication> n'a pas été modifié dans IIS 8.5. |
IIS 8.0 | L'élément <authentication> a été introduit dans IIS 8.0. |
IIS 7.5 | S/O |
IIS 7.0 | S/O |
IIS 6.0 | S/O |
Programme d’installation
Pour prendre en charge le refus d'accès via l'authentification sur votre serveur FTP, vous devez installer le service de rôle de service FTP.
Windows Server 2012
Appuyez sur la touche de logo Windows, puis cliquez sur Gestionnaire de serveur.
Dans le Gestionnaire de serveur, cliquez sur Gérer, puis sur Ajouter des rôles et des fonctionnalités.
Dans l'Assistant Ajouter des rôles et des fonctionnalités :
- Sur la page Avant de commencer, cliquez sur Suivant.
- Dans la page Type d'installation, sélectionnez le type d'installation, puis cliquez sur Suivant.
- Dans la page Sélection du serveur, sélectionnez le serveur approprié, puis cliquez sur Suivant.
- Dans la page Rôles de serveur, vérifiez que serveur web (IIS) est sélectionné, puis développez-le.
- Développez le Serveur FTP, puis sélectionnez Service FTP et Extensibilité FTP, puis cliquez sur Suivant.
- Dans la page Fonctionnalités, cliquez sur Suivant.
- Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows 8
- Ouvrez le Panneau de configuration de Windows.
- Dans le Panneau de configuration Windows, ouvrez Programmes et fonctionnalités.
- Dans Programmes et fonctionnalités, cliquez sur Activer ou désactiver des fonctionnalités Windows.
- Dans la boîte de dialogue Fonctionnalités Windows, développez Internet Information Services, puis développez Serveur FTP.
- Sous Serveur FTP, sélectionnez Service FTP et Extensibilité FTP, puis cliquez sur OK.
Procédure
Comment refuser l'accès au serveur FTP en fonction du taux d'échec de connexion
Ouvrez le Gestionnaire d'Internet Information Services (IIS) :
Si vous utilisez Windows Server 2012 ou une version ultérieure :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire d'Internet Information Services (IIS).
Si vous utilisez Windows 8 ou une version ultérieure :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions, sélectionnez le serveur.
Dans le volet Accueil, double-cliquez sur la fonctionnalité Restrictions des tentatives de connexion FTP.
Dans la boîte de dialogue Restrictions des tentatives de connexion FTP, cliquez sur Activer pour activer les restrictions, puis entrez le nombre maximal d'échecs et le délai dans lequel ces échecs entraîneront le refus de l'accès au service FTP.
Cliquez sur Écrire dans le journal uniquement pour indiquer que la condition a été remplie, mais pas pour bloquer les tentatives de connexion.
Cliquez sur Appliquer dans le volet Actions.
Configuration
L'élément <authentication>
est configuré sur le serveur.
Attributs
Aucune.
Éléments enfants
Élément | Description |
---|---|
denyByFailure |
Élément facultatif. Configure le service FTP pour refuser l'accès en fonction du taux d'échec. |
Exemple Configuration
L'exemple suivant configure un élément <denyByFailure>
.
<system.ftpServer>
<security>
<authentication>
<denyByFailure enabled="true" maxFailure="5" entryExpiration="00:00:45" loggingOnlyMode="false" />
</authentication>
</security>
</system.ftpServer>
Exemple de code
Les exemples de code suivants configurent le refus d'accès au serveur FTP en fonction du taux d'échec de connexion.
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
Remarque
Vous devez veiller à définir le paramètre commit sur apphost
quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d'emplacement appropriée dans le fichier ApplicationHost.config.
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"