Поделиться через


Настройка WebDAV с помощью фильтрации запросов

Роберт Макмюррей

Введение

Корпорация Майкрософт выпустила новый модуль расширения WebDAV, который был полностью перезаписан для службы IIS 7.0 (IIS 7.0) в Windows Server® 2008. Этот новый модуль расширения WebDAV включал множество новых функций, позволяющих веб-авторам публиковать содержимое лучше, чем раньше, и предлагает веб-администраторам больше параметров безопасности и конфигурации. Корпорация Майкрософт выпустила обновление модуля расширения WebDAV для Windows Server® 2008, которое обеспечивает поддержку общих и эксклюзивных блокировок для предотвращения потерянных обновлений из-за перезаписи.

IIS 7.0 предоставляет несколько новых функций безопасности, включая новые функции фильтрации запросов IIS 7.0. Для пользователей IIS, знакомых с UrlScan из предыдущих версий IIS, функция фильтрации запросов в IIS 7.0 похожа на встроенную функцию URLScan.

Новый модуль WebDAV и фильтрация запросов были разработаны для совместной работы, и в этом документе описывается настройка параметров фильтрации запросов, связанных с WebDAV, вместе с параметрами WebDAV для настройки безопасной среды публикации. Обратите внимание, что при использовании пользовательского интерфейса диспетчера IIS для настройки WebDAV параметры фильтрации запросов автоматически обновляются, и вам не нужно выполнять действия, описанные в этой статье.

Необходимые компоненты

Для выполнения процедур в этой статье требуются следующие элементы:

  • На сервере должна быть установлена служба IIS 7.0, и необходимо настроить следующее:

    • Веб-сайт по умолчанию, созданный установкой IIS 7.0, по-прежнему должен существовать.
    • Необходимо установить функцию фильтрации запросов.
  • Необходимо установить новый модуль расширения WebDAV. Сведения об установке нового модуля WebDAV см. в следующем документе:

  • Знание того, как использовать AppCmd, полезно. Дополнительные сведения об использовании фильтрации запросов см. в следующем документе:

Примечание.

Необходимо убедиться, что вы выполните действия, описанные в этом документе, с помощью полных административных разрешений. Это лучше всего сделать с помощью одного из двух методов:

  • Войдите на компьютер с помощью локальной учетной записи "администратор".
  • Если вы вошли в систему с использованием учетной записи с правами администратора, не являющейся локальной учетной записью администратора, откройте диспетчер IIS и все сеансы командной строки с помощью параметра "Запуск от имени Администратор istrator".

Указанное выше условие является обязательным, так как компонент безопасности управления учетными записями пользователей (UAC) в Windows Server 2008 предотвратит административный доступ к параметрам конфигурации IIS 7.0. Дополнительные сведения об UAC см. в следующей документации:

Основные понятия фильтрации запросов

Фильтрация запросов в IIS 7.0 состоит из запросов фильтрации на основе следующих параметров:

  • Расширения файлов
  • Скрытые сегменты
  • HTTP-команды
  • Ограничения запросов
  • Последовательности URL-адресов

Все эти функции фильтрации запросов могут повлиять на содержимое, отправленное или скачиваемое через WebDAV, но некоторые функции можно настроить для совместной работы с WebDAV.

В следующем списке описывается, какие функции можно настроить для работы с WebDAV:

  • Следующие функции всегда влияют на запросы WebDAV:

    • Ограничения запросов
    • Последовательности URL-адресов
  • Следующие функции влияют на запросы WebDAV по умолчанию, но их можно настроить для обхода запросов WebDAV:

    • Расширения файлов
    • Скрытые сегменты
    • HTTP-команды

Например, можно настроить сервер для разрешения запросов, отличных от WebDAV, для файлов .htm и .php, блокируя доступ к файлам ".mdb" и "config", а запросы WebDAV по-прежнему разрешают доступ к заблокированным содержимому.

Примечание.

Для запросов WebDAV требуется проверка подлинности.

Параметры фильтрации запросов можно изменить с помощью одного из следующих методов:

  • Использование пользовательского интерфейса, предоставленного в составе пакета Администратор istration для IIS 7.0
  • Использование AppCmd из командной строки
  • Редактирование файла applicationHost.config
  • Использование Microsoft.Web. Администратор istration из приложения .NET или Windows PowerShell

Остальные сведения в этом пошаговом руководстве покажут, как использовать AppCmd из командной строки, а также показать, какие параметры конфигурации могут выглядеть в файле конфигурации applicationHost.config.

Примечание.

Этот документ не охватывает все функции, которые можно настроить с помощью фильтрации запросов. Сведения о настройке дополнительных параметров фильтрации запросов см. в следующем разделе:

Настройка фильтрации запросов и WebDAV

Фильтрация расширений файлов

Некоторые расширения файлов, такие как .config" и .asax, защищены коллекцией fileExtensions по умолчанию. Дополнительные записи можно добавить в список расширений файлов, чтобы разрешить или заблокировать их для HTTP-запросов, и вы можете контролировать, применяется ли этот список к запросам WebDAV. В этом примере вы будете использовать файлы AppCmd ".txt" от доступа, даже если они могут быть доступны обычно, и вы укажите, что запросы WebDAV смогут получить доступ ко всем заблокированным расширениям файлов.

  1. Откройте командную строку с полными правами администратора и измените каталог в папку InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Используйте следующий синтаксис для просмотра существующих правил фильтрации запросов:

    AppCmd list config "Default Web Site/" /section:system.webServer/security/requestFiltering
    
  3. Блокировать доступ к файлам ".txt", добавив определенное расширение в коллекцию fileExtensions и указав false для разрешенного атрибута с помощью следующего синтаксиса:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+fileExtensions.[fileExtension='.txt',allowed='false'] /commit:apphost
    
  4. Разрешить WebDAV получить доступ ко всем заблокированным типам файлов, задав атрибут applyToWebDAV для коллекции fileExtensions значение false, используя следующий синтаксис:

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

После выполнения описанных выше действий полученный код в разделе fileExtensions файла applicationHost.config должен выглядеть следующим образом:

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

Примечания:

  • Приведенные выше действия можно использовать для блокировки доступа к дополнительным расширениям файлов, добавив их в коллекцию fileExtensions, или изменить синтаксис, чтобы разрешить определенные файлы, указав значение true для разрешенного атрибута.

  • Вы можете заблокировать все неизвестные расширения файлов, задав атрибут allowUnlisted для коллекции fileExtensions значение false, используя следующий синтаксис:

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

    Примечание.

    Если этот параметр задан, необходимо добавить каждое расширение, прежде чем получить доступ к нему с помощью запросов, отличных от WebDAV.

  • Приведенные выше действия можно использовать для блокировки доступа к запросам WebDAV, указав значение true для атрибута applyToWebDAV .

Фильтрация скрытых сегментов

Некоторые сегменты файлов, такие как web.config и "App_code", скрыты по умолчанию коллекцией запросов, отфильтровывая скрытыеSegments . Дополнительные записи можно добавить в список сегментов файлов, чтобы скрыть их для HTTP-запросов, и вы можете контролировать, применяется ли этот список к запросам WebDAV. В этом примере вы будете использовать AppCmd, чтобы скрыть сегмент "include" от HTTP-запросов, даже если он обычно будет видимым, и вы укажет, что запросы WebDAV смогут получить доступ ко всем скрытым сегментам файлов.

  1. Откройте командную строку с полными правами администратора и измените каталог в папку InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Блокировать доступ к сегменту include, добавив определенную запись в коллекцию hiddenSegments с помощью следующего синтаксиса:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+hiddenSegments.[segment='include'] /commit:apphost
    
  3. Разрешить WebDAV получить доступ ко всем заблокированным типам файлов, задав атрибут applyToWebDAV для коллекции hiddenSegments значение false, используя следующий синтаксис:

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

После выполнения описанных выше действий полученный код в разделе hiddenSegments файла applicationHost.config должен выглядеть следующим образом:

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

Примечания:

  • Описанные выше действия можно использовать для скрытия дополнительных сегментов файлов, добавив их в коллекцию hiddenSegments .
  • Приведенные выше действия можно использовать для блокировки доступа к запросам WebDAV, указав значение true для атрибута applyToWebDAV .

Фильтрация HTTP-команд

Коллекция команд фильтрации запросов по умолчанию позволяет сопоставлять все незаписанные HTTP-команды, даже если некоторые команды не могут быть сопоставлены с конкретными обработчиками HTTP. Можно указать, какие http-команды должны быть разрешены или заблокированы, добавив записи в этот список, и вы можете контролировать, применяется ли этот список к запросам WebDAV. В этом примере вы будете использовать AppCmd для блокировки команды DELETE и PUT из HTTP-запросов, и вы укажете, что запросы WebDAV смогут использовать эти команды.

  1. Откройте командную строку с полными правами администратора и измените каталог в папку InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Блокировать доступ к команде DELETE, добавив определенную запись в коллекцию команд и указав false для разрешенного атрибута с помощью следующего синтаксиса:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='DELETE',allowed='false'] /commit:appHost
    
  3. Блокировать доступ к команде PUT, добавив другую конкретную запись в коллекцию команд и указав false для разрешенного атрибута с помощью следующего синтаксиса:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='PUT',allowed='false'] /commit:appHost
    
  4. Разрешить WebDAV получить доступ ко всем HTTP-командам, задав атрибут applyToWebDAV для коллекции команд значение false, используя следующий синтаксис:

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

После выполнения описанных выше действий полученный код в разделе команд файла applicationHost.config должен выглядеть следующим образом:

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

Примечания:

  • Описанные выше действия можно использовать для блокировки дополнительных http-команд, добавив их в коллекцию команд, или изменить синтаксис, чтобы разрешить определенные команды, указав значение true для разрешенного атрибута.

  • Вы можете заблокировать все неизвестные HTTP-команды, задав атрибут allowUnlisted для коллекции команд значение false, используя следующий синтаксис:

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

    Примечание.

    Чтобы задать этот параметр, необходимо добавить каждую http-команду, прежде чем получить доступ к нему с помощью запросов, отличных от WebDAV.

  • Приведенные выше действия можно использовать для блокировки доступа к запросам WebDAV, указав значение true для атрибута applyToWebDAV .

Итоги

В этом документе показаны следующие понятия:

Дополнительные сведения

Дополнительные сведения об использовании WebDAV см. в следующих статьях: