Sicurezza <>

Panoramica

Il <security> gruppo di sezioni si trova nella <system.webServer> sezione e contiene tutti gli elementi che configurano le impostazioni di sicurezza in un server Internet Information Services (IIS) 7. Queste includono le impostazioni SECURE Sockets Layer (SSL) per un sito, le applicazioni dipendenti da Common Gateway Interface (CGI) o i file binari ISAPI (Internet Server API), le impostazioni di configurazione per tutti i moduli di autenticazione installati nel server e le impostazioni delle regole di autorizzazione. Include anche le impostazioni di configurazione per la sicurezza IP e la richiesta di filtro delle richieste e un elenco di restrizioni ISAPI e CGI sul server.

Le impostazioni nel <security> gruppo di sezioni possono essere combinate per una maggiore sicurezza. Ad esempio:

  • L'elemento <authentication> definisce le sezioni di configurazione per tutti i tipi di autenticazione utente che è possibile installare e abilitare nel server IIS 7, mentre l'elemento <authorization> configura gli account utente che possono accedere al sito o all'applicazione. È possibile usare <authorization> in combinazione con <authentication> per proteggere l'accesso al contenuto nel server. L'elemento <access> configura le impostazioni SSL per il server Web, il sito o l'applicazione.
  • L'elemento <isapiCgiRestriction> specifica un elenco di applicazioni CGI e ISAPI che possono essere eseguite in IIS 7. Questo elemento consente di assicurarsi che gli utenti malintenzionati non possano copiare file binari CGI e ISAPI non autorizzati nel server Web e quindi eseguirli. L'elemento <applicationDependencies> specifica un'applicazione con dipendenze a una o più restrizioni di estensione CGI o ISAPI. È possibile combinare l'elemento con l'elemento <isapiCgiRestriction><applicationDependencies> per assicurarsi che le restrizioni di estensione CGI o ISAPI siano impostate correttamente.

Nota

Per la sicurezza avanzata, né Windows Vista o Windows Server 2008 installa IIS 7 per impostazione predefinita. Quando si installa IIS 7, IIS viene configurato automaticamente per servire solo contenuto statico, inclusi i file HTML e di immagine. È necessario installare manualmente qualsiasi altro servizio ruolo e funzionalità richieste dai siti Web e dalle applicazioni. Questa strategia riduce notevolmente la superficie di attacco IIS 7.

Compatibilità

Versione Note
IIS 10.0 L'elemento <security> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <security> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <defaultIpSecurity> è stato aggiunto come elemento figlio.
IIS 7,5 L'elemento <security> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <security> è stato introdotto in IIS 7.
IIS 6.0 L'elemento <security> sostituisce le proprietà della metabase di sicurezza IIS 6.0 correlate ai certificati, all'autenticazione e all'autorizzazione.

Installazione

L'elemento <security> è incluso nell'installazione predefinita di IIS 7.

Procedure

Come disabilitare l'autenticazione anonima

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

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

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server, espandere Siti e passare al livello nel riquadro gerarchia da configurare e quindi fare clic sul sito Web o sull'applicazione Web.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
    Screenshot che mostra il riquadro Autenticazione in I S Manager.

Come modificare le credenziali di autenticazione anonima dall'account IUSR

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

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

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server, espandere Siti e passare al livello nel riquadro gerarchia da configurare e quindi fare clic sul sito Web o sull'applicazione Web.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Modifica nel riquadro Azioni .

  5. Nella finestra di dialogo Modifica credenziali di autenticazione anonima eseguire una delle operazioni seguenti:

    • Selezionare Identità del pool di applicazioni per usare il set di identità per il pool di applicazioni e quindi fare clic su OK.
      Screenshot che mostra la finestra di dialogo Modifica credenziali di autenticazione anonima. L'identità del pool di applicazioni è selezionata.

    • Fare clic su Imposta... e quindi nella finestra di dialogo Imposta credenziali immettere il nome utente per l'account nella casella Nome utente, immettere la password per l'account nelle caselle Password e Conferma password , fare clic su OK e quindi fare di nuovo clic su OK .
      Screenshot che mostra la finestra di dialogo Imposta credenziali.

      Nota

      Se si usa questa procedura, concedere solo i privilegi minimi del nuovo account nel computer server IIS.


Come abilitare l'autenticazione di base e disabilitare l'autenticazione anonima

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

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

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server, espandere Siti e quindi fare clic sul sito, l'applicazione o il servizio Web per cui si vuole abilitare l'autenticazione di base.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione di base e quindi fare clic su Abilita nel riquadro Azioni.

  5. Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
    Screenshot che mostra il riquadro Autenticazione. Autenticazione anonima selezionata. Il riquadro Azioni elenca Disabilitato e Modifica.


Come richiedere il livello Secure Sockets

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

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

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare al sito, all'applicazione o alla directory per cui si desidera configurare i requisiti SSL. Non è possibile configurare SSL a livello di server.

  3. Nel riquadro Home fare doppio clic su Impostazioni SSL.
    Screenshot che mostra il riquadro Home del sito Web predefinito, con le impostazioni S L selezionate.

  4. Nel riquadro Impostazioni SSL fare clic su Richiedi SSL.

  5. Nel riquadro Azioni fare clic su Applica.


Come abilitare autenticazione di Windows per un sito Web, un'applicazione Web o un servizio Web

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

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

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server, espandere Siti e quindi il sito, l'applicazione o il servizio Web per cui si desidera abilitare autenticazione di Windows.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione di Windows e quindi fare clic su Abilita nel riquadro Azioni .
    Screenshot che mostra il riquadro Autenticazione con l'autenticazione di Windows selezionata.

Configurazione

Quando si configurano le impostazioni di sicurezza, il codice XML di configurazione deve includere il <security> gruppo di sezioni. È possibile configurare le impostazioni di sicurezza a livello di server nel file ApplicationHost.config o a livello di sito, livello di applicazione o directory nel file di Web.config appropriato.

Attributi

Nessuno.

Elementi figlio

Elemento Descrizione
access Elemento facoltativo.

Specifica le impostazioni di configurazione per Secure Sockets Layer (SSL), ad esempio se usare i certificati client per l'autenticazione e la forza di crittografia.
applicationDependencies Elemento facoltativo.

Specifica un'applicazione con dipendenze a una o più restrizioni di estensione CGI o ISAPI.
authentication Elemento facoltativo.

Specifica le impostazioni correlate all'autenticazione.
authorization Elemento facoltativo.

Specifica le impostazioni correlate all'autorizzazione.
dynamicIpSecurity Elemento facoltativo.

Specifica restrizioni IP dinamiche che bloccano qualsiasi indirizzo IP che soddisfi un set di criteri.
ipSecurity Elemento facoltativo.

Specifica le restrizioni di accesso in base all'indirizzo IP 4 o al nome di dominio DNS.
isapiCgiRestriction Elemento facoltativo.

Specifica le impostazioni che limitano i programmi CGI e ISAPI consentiti per l'esecuzione nel server.
requestFiltering Elemento facoltativo.

Specifica le impostazioni di configurazione per il filtro delle richieste.

Esempio di configurazione

Nell'esempio seguente viene configurata l'autenticazione, SSL e le impostazioni di filtro delle richieste per un sito Web denominato Contoso.

<location path="Contoso">
   <system.webServer>
      <security>
         <authentication>
            <windowsAuthentication enabled="true" />
            <basicAuthentication enabled="false" />
            <anonymousAuthentication enabled="false" />
         </authentication>
         <access sslFlags="Ssl, SslNegotiateCert, Ssl128" />
         <requestFiltering>
            <fileExtensions>
               <add fileExtension=".inc" allowed="false" />
            </fileExtensions>
            <denyUrlSequences>
               <add sequence="_vti_bin" />
               <add sequence="_vti_cnf" />
               <add sequence="_vti_pvt" />
            </denyUrlSequences>
         </requestFiltering>
      </security>
   </system.webServer>
</location>

Codice di esempio

Gli esempi seguenti disabilitano l'autenticazione anonima per un sito denominato Contoso, quindi abilitare l'autenticazione di base e autenticazione di Windows per il sito.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/basicAuthentication /enabled:"True" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di 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 anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = false;

         ConfigurationSection basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
         basicAuthenticationSection["enabled"] = true;

         ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
         windowsAuthenticationSection["enabled"] = true;

         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 anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = False

      Dim basicAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso")
      basicAuthenticationSection("enabled") = True

      Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
      windowsAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;

var basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
basicAuthenticationSection.Properties.Item("enabled").Value = true;

var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

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

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False

Set basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
basicAuthenticationSection.Properties.Item("enabled").Value = True

Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True

adminManager.CommitChanges()