Compartilhar via


Como configurar o WebDAV com a Filtragem de Solicitações

por Robert McMurray

Introdução

A Microsoft lançou um novo módulo de extensão WebDAV que foi completamente reescrito para o IIS (Serviços de Informações da Internet) 7.0 no Windows Server® 2008. Este novo módulo de extensão do WebDAV incorporou muitos novos recursos que permitem que os criadores da Web publiquem conteúdos da melhor maneira possível e oferece aos administradores da Web mais opções de segurança e configuração. A Microsoft lançou uma atualização para o módulo de extensão WebDAV para Windows Server® 2008 que dá suporte a bloqueios compartilhados e exclusivos a fim de evitar a perda de atualizações devido a substituições.

O IIS 7.0 fornece diversos novos recursos de segurança excelentes, incluindo a nova Filtragem de Solicitações do IIS 7.0. Para os usuários do IIS familiarizados com o UrlScan nas versões anteriores do produto, o recurso Filtragem de Solicitações no IIS 7.0 atua como um URLScan integrado.

O novo módulo WebDAV e a Filtragem de Solicitações foram projetados para trabalhar de modo conjunto e este documento orienta você na definição das configurações de Filtragem de Solicitações relacionadas ao WebDAV com as configurações do WebDAV a fim de configurar um ambiente de publicação seguro. Ao usar a interface do usuário do Gerenciador do IIS para configurar o WebDAV, as configurações de Filtragem de Solicitações serão atualizadas automaticamente e você não precisará seguir as etapas deste artigo.

Pré-requisitos

Os seguintes itens são necessários para concluir os procedimentos deste artigo:

  • O IIS 7.0 precisa estar instalado no servidor e o seguinte precisa ser configurado:

    • O site padrão criado pela instalação do IIS 7.0 ainda deve existir.
    • O recurso Filtragem de Solicitações deve ser instalado.
  • O novo módulo da extensão WebDAV deve ser instalado. Para obter informações sobre a instalação do novo módulo WebDAV, confira o seguinte documento:

  • A familiarização com o uso do AppCmd é útil neste caso. Para saber como usar a Filtragem de Solicitações, confira o seguinte documento:

Observação

Siga as etapas deste documento usando permissões administrativas completas. Isso é feito da melhor forma seguindo um destes dois métodos:

  • Faça logon no computador usando a conta local de “administrador”.
  • Ao conectar-se com uma conta que tem permissões administrativas e não é a conta de “administrador” local, abra o Gerenciador do IIS e todas as sessões de prompt de comando usando a opção “Executar como administrador”.

A condição acima é necessária porque o componente de segurança UAC (Controle de Conta de Usuário) no Windows Server 2008 impedirá o acesso administrativo às configurações do IIS 7.0. Para saber mais sobre o UAC, confira a seguinte documentação:

Conceitos básicos da Filtragem de Solicitações

A Filtragem de Solicitações no IIS 7.0 consiste em filtrar solicitações com base nos seguintes parâmetros:

  • Extensões de arquivo
  • Segmentos ocultos
  • Verbos HTTP
  • Limites de solicitações
  • Sequências de URL

Todos esses recursos da Filtragem de Solicitações podem afetar o conteúdo carregado ou baixado por meio do WebDAV, mas alguns deles podem ser configurados para trabalhar em conjunto com o WebDAV.

A seguinte lista descreve quais recursos podem ser configurados para trabalhar com o WebDAV:

  • Os seguintes recursos sempre afetam as solicitações do WebDAV:

    • Limites de solicitações
    • Sequências de URL
  • Os seguintes recursos afetam as solicitações do WebDAV por padrão, mas podem ser configurados para ignorá-las:

    • Extensões de arquivo
    • Segmentos ocultos
    • Verbos HTTP

Por exemplo, você pode configurar o servidor para permitir solicitações que não sejam do WebDAV para arquivos .htm e .php e bloquear o acesso a arquivos .mdb e .config, ao mesmo tempo em que permite que as solicitações do WebDAV acessem esse conteúdo bloqueado.

Observação

As solicitações do WebDAV requerem autenticação.

Você pode editar suas configurações de Filtragem de Solicitações com um dos seguintes métodos:

  • Usar a interface do usuário fornecida como parte do Administration Pack para IIS 7.0
  • Usar AppCmd em uma linha de comando
  • Editar o arquivo applicationHost.config
  • Usar Microsoft.Web.Administration por meio de um aplicativo .NET ou do Windows PowerShell

As informações restantes nestas instruções mostram como usar AppCmd em uma linha de comando e oferecem um exemplo de como podem ser as definições de configuração resultantes no arquivo applicationHost.config.

Observação

Este documento não aborda todos os recursos que podem ser configurados usando a Filtragem de Solicitações. Para saber como configurar opções adicionais de Filtragem de Solicitações, confira o seguinte tópico:

Como configurar a Filtragem de Solicitações e o WebDAV

Como filtrar extensões de arquivo

Certas extensões de arquivo como .config e .asax são protegidas pela coleção fileExtensions de Filtragem de Solicitações padrão. É possível adicionar outras entradas à lista de extensões de arquivo a fim de autorizá-las ou bloqueá-las para solicitações HTTP, além de controlar se essa lista se aplica a solicitações do WebDAV. Neste exemplo, você usará AppCmd para impedir que os arquivos .txt sejam acessados, mesmo que eles sejam normalmente acessíveis, e especificará que as solicitações do WebDAV poderão acessar todas as extensões de arquivo bloqueadas.

  1. Abra um prompt de comando com privilégios administrativos totais e mude o diretório para a pasta InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Use a seguinte sintaxe para exibir as regras de Filtragem de Solicitações existentes:

    AppCmd list config "Default Web Site/" /section:system.webServer/security/requestFiltering
    
  3. Bloqueie o acesso a arquivos .txt adicionando uma extensão de arquivo específica à coleção fileExtensions e especificando falso para o atributo allowed usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+fileExtensions.[fileExtension='.txt',allowed='false'] /commit:apphost
    
  4. Permita que o WebDAV acesse todos os tipos de arquivo bloqueados definindo o atributo applyToWebDAV da coleção fileExtensions como falso usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.applyToWebDAV:false /commit:apphost
    

Depois de concluir as etapas acima, o código resultante na seção fileExtensions do arquivo applicationHost.config deve ser semelhante a este exemplo:

<requestFiltering>
   <fileExtensions applyToWebDAV="false">
      <add fileExtension=".txt" allowed="false" />
   </fileExtensions>
</requestFiltering>

Observações:

  • É possível seguir as etapas acima para bloquear o acesso a outras extensões de arquivo adicionando-as à coleção fileExtensions ou modificar a sintaxe a fim de autorizar arquivos específicos definindo true para o atributo allowed.

  • É possível bloquear todas as extensões de arquivo desconhecidas definindo o atributo allowUnlisted da coleção fileExtensions como falso usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.allowUnlisted:false /commit:apphost
    

    Observação

    Para definir essa opção, é necessário adicionar especificamente cada extensão de arquivo a fim de que ela possa ser acessada por solicitações que não sejam do WebDAV.

  • É possível seguir as etapas acima para bloquear o acesso das solicitações do WebDAV especificando verdadeiro para o atributo applyToWebDAV.

Como filtrar segmentos ocultos

Certos segmentos de arquivo como web.config e App_code são ocultados pela coleção hiddenSegments padrão de Filtragem de Solicitações. É possível adicionar outras entradas à lista de segmentos de arquivo a fim de ocultá-las para as solicitações HTTP e também controlar se essa lista se aplica a solicitações do WebDAV. Neste exemplo, você usará AppCmd para ocultar o segmento “include” de solicitações HTTP, mesmo que ele normalmente seja visível, e especificará que as solicitações do WebDAV poderão acessar todos os segmentos de arquivo ocultos.

  1. Abra um prompt de comando com privilégios administrativos totais e mude o diretório para a pasta InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Bloqueie o acesso ao segmento “include” adicionando uma entrada específica à coleção hiddenSegments usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+hiddenSegments.[segment='include'] /commit:apphost
    
  3. Permita que o WebDAV acesse todos os tipos de arquivo bloqueados definindo o atributo applyToWebDAV da coleçãohiddenSegments como falso usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /hiddenSegments.applyToWebDAV:false /commit:apphost
    

Depois de concluir as etapas acima, o código resultante na seção hiddenSegments do arquivo applicationHost.config deve ser semelhante a este exemplo:

<requestFiltering>
   <hiddenSegments applyToWebDAV="false">
      <add segment="include" />
   </hiddenSegments>
</requestFiltering>

Observações:

  • É possível seguir as etapas acima para ocultar outros segmentos de arquivo adicionando-os à coleção hiddenSegments.
  • É possível seguir as etapas acima para bloquear o acesso das solicitações do WebDAV especificando verdadeiro para o atributo applyToWebDAV.

Como filtrar verbos HTTP

A coleção de verbos padrão da Filtragem de Solicitações autoriza todos os verbos HTTP não listados, mesmo que alguns deles possam não ser mapeados para manipuladores HTTP específicos. É possível especificar quais verbos HTTP devem ser permitidos ou bloqueados adicionando entradas a essa lista e também controlar se ela se aplica a solicitações do WebDAV. Neste exemplo, você usará AppCmd para bloquear os verbos “DELETE” e “PUT” de solicitações HTTP e especificará que as solicitações do WebDAV poderão usar esses verbos.

  1. Abra um prompt de comando com privilégios administrativos totais e mude o diretório para a pasta InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Bloqueie o acesso ao verbo “DELETE” adicionando uma entrada específica à coleção de verbos e especificando falso para o atributo allowed usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='DELETE',allowed='false'] /commit:appHost
    
  3. Bloqueie o acesso ao verbo “PUT” adicionando outra entrada específica à coleção de verbos e especificando falso para o atributo allowed usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='PUT',allowed='false'] /commit:appHost
    
  4. Permita que o WebDAV acesse todos os verbos HTTP definindo o atributo applyToWebDAV da coleção de verbos como falso usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.applyToWebDAV:false /commit:appHost
    

Depois de concluir as etapas acima, o código resultante na seção verbos do arquivo applicationHost.config deve ser semelhante a este exemplo:

<requestFiltering>
   <verbs applyToWebDAV="false">
      <add verb="DELETE" allowed="false" />
      <add verb="PUT" allowed="false" />
   </verbs>
</requestFiltering>

Observações:

  • É possível seguir as etapas acima para bloquear outros verbos HTTP adicionando-os à coleção de verbos e também modificar a sintaxe para permitir verbos específicos especificando verdadeiro para o atributo allowed.

  • É possível bloquear todos os verbos HTTP desconhecidos definindo o atributo allowUnlisted da coleção de verbos como falso usando a seguinte sintaxe:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.allowUnlisted:false /commit:appHost
    

    Observação

    Para definir essa opção, é necessário adicionar especificamente cada verbo HTTP a fim de que ele possa ser acessado por solicitações que não sejam do WebDAV.

  • É possível seguir as etapas acima para bloquear o acesso das solicitações do WebDAV especificando verdadeiro para o atributo applyToWebDAV.

Resumo

Este documento mostrou os seguintes conceitos:

Mais informações

Para saber mais sobre como usar o WebDAV, confira os seguintes artigos: