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
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).
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.
Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.
Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
Come modificare le credenziali di autenticazione anonima dall'account IUSR
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).
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.
Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.
Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Modifica nel riquadro Azioni .
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.
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 .
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
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).
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.
Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.
Nel riquadro Autenticazione selezionare Autenticazione di base e quindi fare clic su Abilita nel riquadro Azioni.
Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
Come richiedere il livello Secure Sockets
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).
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.
Nel riquadro Impostazioni SSL fare clic su Richiedi SSL.
Nel riquadro Azioni fare clic su Applica.
Come abilitare autenticazione di Windows per un sito Web, un'applicazione Web o un servizio Web
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).
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.
Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.
Nel riquadro Autenticazione selezionare Autenticazione di Windows e quindi fare clic su Abilita nel riquadro Azioni .
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()