Segurança <segurança>
Visão geral
O grupo de seções <security>
reside na seção <system.webServer>
e contém todos os elementos que definem as configurações de segurança em um servidor dos IIS (Serviços de Informações da Internet) 7. Isso inclui configurações de protocolo SSL para um site, aplicativos que dependem de binários de CGI (Interface de Gateway Comum) ou ISAPI (API do Servidor da Internet), configurações para todos os módulos de autenticação instalados em seu servidor e configurações de regra de autorização. Também inclui configurações de filtragem de solicitação e segurança de IP, além de uma lista de restrições ISAPI e CGI no servidor.
As configurações no grupo de seções <security>
podem ser combinadas para obter segurança extra. Por exemplo:
- O elemento
<authentication>
define seções de configuração para todos os tipos de autenticação de usuário que você pode instalar e habilitar no servidor IIS 7, enquanto o elemento<authorization>
configura as contas de usuário que podem acessar seu site ou aplicativo. Você usa<authorization>
em combinação com<authentication>
para proteger o acesso ao conteúdo em seu servidor. O elemento<access>
define as configurações de SSL para seu servidor Web, site ou aplicativo. - O elemento
<isapiCgiRestriction>
especifica uma lista de aplicativos CGI e ISAPI que podem ser executados nos IIS 7. Esse elemento permite que você garanta que usuários mal-intencionados não possam copiar binários CGI e ISAPI não autorizados para o servidor Web e, em seguida, executá-los. O elemento<applicationDependencies>
especifica um aplicativo que tem dependências para uma ou mais restrições de extensão CGI ou ISAPI. Você pode combinar o elemento<isapiCgiRestriction>
com o elemento<applicationDependencies>
para garantir que as restrições de extensão CGI ou ISAPI sejam definidas corretamente.
Observação
Para segurança aprimorada, nem o Windows Vista nem o Windows Server 2008 instalam os IIS 7 por padrão. Quando você instala os IIS 7, os IIS são configurados automaticamente para fornecer apenas conteúdo estático, incluindo arquivos HTML e de imagem. Você deve instalar manualmente quaisquer outros serviços e recursos de função exigidos por seus sites e aplicativos. Essa estratégia reduz consideravelmente a superfície de ataque dos IIS 7.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <security> não foi modificado nos IIS 10.0. |
IIS 8.5 | O elemento <security> não foi modificado nos IIS 8.5. |
IIS 8.0 | O elemento <defaultIpSecurity> foi adicionado como um elemento filho. |
IIS 7.5 | O elemento <security> não foi modificado nos IIS 7.5. |
IIS 7.0 | O elemento <security> foi introduzido nos IIS 7. |
IIS 6,0 | O elemento <security> substitui as propriedades de metabase de segurança dos IIS 6.0 relacionadas a certificados, autenticação e autorização. |
Instalação
O elemento <security>
está incluído na instalação padrão dos IIS 7.
Instruções
Como desabilitar a autenticação anônima
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e vá para o nível no painel de hierarquia que você deseja configurar e clique no site ou aplicativo Web.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
Como alterar credenciais de autenticação anônima da conta IUSR
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e acesse o nível no painel de hierarquia que você deseja configurar e clique no site ou aplicativo Web.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação Anônima e clique em Editar... no painel Ações.
Na caixa de diálogo Editar credenciais de autenticação anônima, faça uma das seguintes opções:
Selecione Identidade do pool de aplicativos para usar a identidade definida para o pool de aplicativos e clique em OK.
Clique em Definir... e, em seguida, na caixa de diálogo Definir Credenciais, insira o nome de usuário da conta na caixa Nome de usuário, insira a senha da conta nas caixas Senha e Confirmar senha, clique em OK e clique em OK novamente.
Observação
Se você usar esse procedimento, conceda à nova conta privilégios mínimos somente no computador do servidor IIS.
Como habilitar a autenticação básica e desabilitar a autenticação anônima
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e clique no site, aplicativo ou serviço Web para o qual você deseja habilitar a autenticação básica.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação Básica e, no painel Ações, clique em Habilitar.
No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
Como exigir o protocolo SSL
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
No painel Conexões, acesse o site, o aplicativo ou o diretório para o qual você deseja configurar requisitos de SSL. Não é possível configurar o SSL no nível do servidor.
No painel Página Inicial, clique duas vezes em Configurações de SSL.
No painel Configurações de SSL, clique em Exigir SSL.
No painel Ações, clique em Aplicar.
Como habilitar a autenticação do Windows para um site, aplicativo Web ou serviço Web
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador de Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e o site, aplicativo ou serviço Web para o qual você deseja habilitar a autenticação do Windows.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação do Windows e, em seguida, clique em Habilitar no painel Ações.
Configuração
Quando você define as configurações de segurança, o XML de configuração deve incluir o grupo de seções <security>
. Você pode definir as configurações de segurança no nível do servidor no arquivo ApplicationHost.config, ou no nível do site, do aplicativo ou do diretório no arquivo Web.config apropriado.
Atributos
Nenhum.
Elementos filho
Elemento | Descrição |
---|---|
access |
Elemento opcional. Especifica as configurações do protocolo SSL, como se usar certificados de cliente para autenticação e a força criptográfica. |
applicationDependencies |
Elemento opcional. Especifica um aplicativo que tem dependências para uma ou mais restrições de extensão CGI ou ISAPI. |
authentication |
Elemento opcional. Especifica as configurações relacionadas à autenticação. |
authorization |
Elemento opcional. Especifica as configurações relacionadas à autorização. |
dynamicIpSecurity |
Elemento opcional. Especifica restrições de IP dinâmicas que bloqueiam qualquer endereço IP que atenda a um conjunto de critérios. |
ipSecurity |
Elemento opcional. Especifica restrições de acesso com base no endereço IP versão 4 ou nome de domínio DNS. |
isapiCgiRestriction |
Elemento opcional. Especifica as configurações que restringem quais programas CGI e ISAPI têm permissão para serem executados no servidor. |
requestFiltering |
Elemento opcional. Especifica as configurações de filtragem de solicitação. |
Exemplo de configuração
O exemplo a seguir define as configurações de filtragem de autenticação, SSL e solicitação para um site chamado 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>
Exemplo de código
Os exemplos a seguir desabilitam a autenticação anônima para um site chamado Contoso e habilitam a autenticação básica e a autenticação do Windows para o site.
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
Observação
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()