Condividi tramite


Autenticazione <FTP di sistema>

Panoramica

L'elemento <authentication> enabes consente di configurare gli account utente che possono accedere ai siti in un server. Usare l'autenticazione in combinazione con l'autorizzazione per proteggere l'accesso al contenuto nel server. L'autenticazione conferma l'identità di un utente, mentre l'autorizzazione determina le risorse a cui gli utenti possono o non possono accedere.

IIS definisce un tipo di regola di autenticazione, Regole di negazione. Le regole di negazione consentono di definire gli account utente o i gruppi di utenti che non possono accedere ai siti in un server.

Compatibilità

Versione Note
IIS 10.0 L'elemento <authentication> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <authentication> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <authentication> è stato introdotto in IIS 8.0.
IIS 7,5 N/D
IIS 7.0 N/D
IIS 6.0 N/D

Installazione

Per supportare la negazione dell'accesso tramite l'autenticazione nel server FTP, è necessario installare il servizio ruolo servizio FTP.

Windows Server 2012

  1. Premere il tasto logo Windows e quindi fare clic su Server Manager.

  2. In Server Manager fare clic su Gestisci e quindi su Aggiungi ruoli e funzionalità.

  3. Nella procedura guidata Aggiungi ruoli e funzionalità :

    • Nella pagina Prima di iniziare fare clic su Avanti.
    • Nella pagina Tipo di installazione selezionare il tipo di installazione e quindi fare clic su Avanti.
    • Nella pagina Selezione server selezionare il server appropriato e quindi fare clic su Avanti.
    • Nella pagina Ruoli server verificare che sia selezionato Server Web (IIS) e quindi espanderlo.
    • Espandere Server FTP, quindi selezionare sia il servizio FTP che l'estendibilità FTP, quindi fare clic su Avanti.
    • Nella pagina Funzionalità fare clic su Avanti.
    • Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
    • Nella pagina Risultati fare clic su Chiudi.

Windows 8

  1. Aprire il Pannello di controllo di Windows.
  2. In Windows Pannello di controllo aprire Programmi e funzionalità.
  3. In Programmi e funzionalità, fare clic su Attiva o disattiva le funzionalità di Windows.
  4. Nella finestra di dialogo Funzionalità di Windows espandere Internet Information Services, quindi espandere Server FTP.
  5. In Server FTP selezionare Ftp Service and FTP Extensibility (Servizio FTP) e FTP Extensibility (Estendibilità FTP) e quindi fare clic su OK.

Procedure

Come negare l'accesso al server FTP in base alla frequenza di errori di accesso

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o versione successiva:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o versione successiva:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni selezionare il server.

  3. Nel riquadro Home fare doppio clic sulla funzionalità Restrizioni tentativi di accesso FTP .

    Immagine del riquadro Home che mostra la funzionalità Abilita restrizioni di accesso F T P selezionata.

  4. Nella finestra di dialogo Restrizioni tentativi di accesso FTP fare clic su Abilita per abilitare le restrizioni, quindi immettere il numero massimo di errori e l'intervallo di tempo in cui tali errori richiederanno l'accesso al servizio FTP da negare.

  5. Fare clic su Scrivi nel log solo per registrare che la condizione è stata soddisfatta, ma non per bloccare i tentativi di accesso.

  6. Fare clic su Applica nel riquadro Azioni .

Configurazione

L'elemento <authentication> è configurato a livello di server.

Attributi

Nessuno.

Elementi figlio

Elemento Descrizione
denyByFailure Elemento facoltativo.

Configura il servizio FTP per negare l'accesso in base alla frequenza di errori.

Esempio di configurazione

Nell'esempio seguente viene configurato un <denyByFailure> elemento .

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

Codice di esempio

Gli esempi di codice seguenti configurano la negazione dell'accesso al server FTP in base alla frequenza di errori di accesso.

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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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"