Compartilhar via


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

  1. 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).
  2. 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.

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
    Screenshot that shows the Authentication pane in the I I S Manager.

Como alterar credenciais de autenticação anônima da conta IUSR

  1. 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).
  2. 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.

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação Anônima e clique em Editar... no painel Ações.

  5. 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.
      Screenshot that shows the Edit Anonymous Authentication Credentials dialog box. Application pool identity is selected.

    • 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.
      Screenshot that shows the Set Credentials dialog box.

      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

  1. 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).
  2. 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.

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação Básica e, no painel Ações, clique em Habilitar.

  5. No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
    Screenshot that shows the Authentication pane. Anonymous Authentication is selected. The Actions pane lists Disabled and Edit.


Como exigir o protocolo SSL

  1. 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).
  2. 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.

  3. No painel Página Inicial, clique duas vezes em Configurações de SSL.
    Screenshot shows the Default Web Site Home pane, with S S L Settings selected.

  4. No painel Configurações de SSL, clique em Exigir SSL.

  5. No painel Ações, clique em Aplicar.


Como habilitar a autenticação do Windows para um site, aplicativo Web ou serviço Web

  1. 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).
  2. 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.

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação do Windows e, em seguida, clique em Habilitar no painel Ações.
    Screenshot shows the Authentication pane, with Windows Authentication selected.

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()