Partager via


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

  1. Appuyez sur la touche de logo Windows, puis cliquez sur Gestionnaire de serveur.

  2. Dans le Gestionnaire de serveur, cliquez sur Gérer, puis sur Ajouter des rôles et des fonctionnalités.

  3. 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

  1. Ouvrez le Panneau de configuration de Windows.
  2. Dans le Panneau de configuration Windows, ouvrez Programmes et fonctionnalités.
  3. Dans Programmes et fonctionnalités, cliquez sur Activer ou désactiver des fonctionnalités Windows.
  4. Dans la boîte de dialogue Fonctionnalités Windows, développez Internet Information Services, puis développez Serveur FTP.
  5. 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

  1. 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).
  2. Dans le volet Connexions, sélectionnez le serveur.

  3. Dans le volet Accueil, double-cliquez sur la fonctionnalité Restrictions des tentatives de connexion FTP.

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

  4. 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.

  5. Cliquez sur Écrire dans le journal uniquement pour indiquer que la condition a été remplie, mais pas pour bloquer les tentatives de connexion.

  6. 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"