Безопасность <>

Общие сведения

Группа <security> разделов находится в <system.webServer> разделе и содержит все элементы, которые настраивают параметры безопасности на сервере СЛУЖБ IIS 7. К ним относятся параметры SSL для сайта, приложения, зависящие от двоичных файлов интерфейса CGI или API сервера Интернета (ISAPI), параметры конфигурации для всех модулей проверки подлинности, установленных на сервере, и параметры правил авторизации. Он также включает параметры конфигурации ip-безопасности и фильтрации запросов, а также список ограничений ISAPI и CGI на сервере.

Параметры в <security> группе разделов можно объединить для обеспечения дополнительной безопасности. Например:

  • Элемент <authentication> определяет разделы конфигурации для всех типов проверки подлинности пользователей, которые можно установить и включить на сервере IIS 7, в то время как <authorization> элемент настраивает учетные записи пользователей, которые могут получать доступ к сайту или приложению. Вы используете <authorization> в сочетании с для <authentication> защиты доступа к содержимому на сервере. Элемент <access> настраивает параметры SSL для веб-сервера, сайта или приложения.
  • Элемент <isapiCgiRestriction> задает список приложений CGI и ISAPI, которые могут выполняться в IIS 7. Этот элемент позволяет гарантировать, что злоумышленники не смогут скопировать несанкционированные двоичные файлы CGI и ISAPI на веб-сервер, а затем запустить их. Элемент <applicationDependencies> указывает приложение, которое имеет зависимости от одного или нескольких ограничений расширения CGI или ISAPI. Вы можете объединить <isapiCgiRestriction> элемент с элементом , <applicationDependencies> чтобы убедиться, что ограничения расширения CGI или ISAPI настроены правильно.

Примечание

Для обеспечения повышенной безопасности ни Windows Vista, ни Windows Server 2008 не устанавливают службы IIS 7 по умолчанию. При установке IIS 7 службы IIS автоматически настраиваются для обслуживания только статического содержимого, включая HTML-файлы и файлы изображений. Необходимо вручную установить все другие службы и компоненты ролей, необходимые для веб-сайтов и приложений. Эта стратегия значительно сокращает область атак IIS 7.

Совместимость

Версия Примечания
IIS 10.0 Элемент <security> не был изменен в IIS 10.0.
IIS 8,5 Элемент <security> не был изменен в IIS 8.5.
IIS 8,0 Элемент <defaultIpSecurity> был добавлен в качестве дочернего элемента.
IIS 7,5 Элемент <security> не был изменен в IIS 7.5.
IIS 7.0 Элемент <security> появился в IIS 7.
IIS 6,0 Элемент <security> заменяет свойства метабазы безопасности IIS 6.0, связанные с сертификатами, проверкой подлинности и авторизацией.

Настройка

Элемент <security> включен в установку iis 7 по умолчанию.

Инструкции

Отключение анонимной проверки подлинности

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, сайты, перейдите на уровень в области иерархии, которую вы хотите настроить, а затем щелкните веб-сайт или веб-приложение.

  3. Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.

  4. В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Отключить в области Действия .
    Снимок экрана: панель проверки подлинности в диспетчере I IS.

Изменение учетных данных анонимной проверки подлинности из учетной записи IUSR

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, сайты, перейдите к уровню в области иерархии, которую вы хотите настроить, а затем щелкните веб-сайт или веб-приложение.

  3. Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.

  4. В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Изменить... в области Действия .

  5. В диалоговом окне Изменение учетных данных анонимной проверки подлинности выполните одно из следующих действий.

    • Выберите Удостоверение пула приложений , чтобы использовать набор удостоверений для пула приложений, а затем нажмите кнопку ОК.
      Снимок экрана: диалоговое окно

    • Нажмите кнопку Задать..., а затем в диалоговом окне Установка учетных данных введите имя пользователя учетной записи в поле Имя пользователя , введите пароль для учетной записи в полях Пароль и Подтверждение пароля , нажмите кнопку ОК, а затем нажмите кнопку ОК еще раз.
      Снимок экрана: диалоговое окно

      Примечание

      Если вы используете эту процедуру, предоставьте новой учетной записи только минимальные привилегии на компьютере сервера IIS.


Включение обычной проверки подлинности и отключение анонимной проверки подлинности

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, сайты, а затем щелкните сайт, приложение или веб-службу, для которых требуется включить обычную проверку подлинности.

  3. Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.

  4. В области Проверка подлинности выберите Обычная проверка подлинности, а затем в области Действия нажмите кнопку Включить.

  5. В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Отключить в области Действия .
    Снимок экрана: панель проверки подлинности. Выбрана анонимная проверка подлинности. На панели Действия перечислены отключенные и правки.


Как требовать уровень безопасных сокетов

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения перейдите к сайту, приложению или каталогу, для которого требуется настроить требования к SSL. Вы не можете настроить SSL на уровне сервера.

  3. На панели Главная дважды щелкните Параметры SSL.
    Снимок экрана: панель

  4. В области Параметры SSL щелкните Требовать SSL.

  5. В области Действия нажмите кнопку Применить.


Включение проверка подлинности Windows для веб-сайта, веб-приложения или веб-службы

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, узел Сайты, а затем сайт, приложение или веб-службу, для которых требуется включить проверка подлинности Windows.

  3. Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.

  4. В области Проверка подлинности выберите Проверка подлинности Windows и нажмите кнопку Включить в области Действия .
    Снимок экрана: панель проверки подлинности с выбранной проверкой подлинности Windows.

Конфигурация

При настройке параметров безопасности XML-код конфигурации должен включать группу <security> разделов. Параметры безопасности можно настроить на уровне сервера в файле ApplicationHost.config либо на уровне сайта, приложения или каталога в соответствующем Web.config файле.

Атрибуты

Отсутствует.

Дочерние элементы

Элемент Описание
access Необязательный элемент.

Задает параметры конфигурации для SSL, например, следует ли использовать сертификаты клиента для проверки подлинности и надежности шифрования.
applicationDependencies Необязательный элемент.

Указывает приложение, которое имеет зависимости от одного или нескольких ограничений расширения CGI или ISAPI.
authentication Необязательный элемент.

Задает параметры, связанные с проверкой подлинности.
authorization Необязательный элемент.

Задает параметры, связанные с авторизацией.
dynamicIpSecurity Необязательный элемент.

Задает динамические ограничения IP-адресов, которые блокируют любой IP-адрес, соответствующий набору критериев.
ipSecurity Необязательный элемент.

Указывает ограничения доступа на основе IP-адреса версии 4 или доменного имени DNS.
isapiCgiRestriction Необязательный элемент.

Указывает параметры, ограничивающие, какие программы CGI и ISAPI разрешено запускать на сервере.
requestFiltering Необязательный элемент.

Задает параметры конфигурации для фильтрации запросов.

Образец конфигурации

В следующем примере настраивается проверка подлинности, SSL и фильтрация запросов для веб-сайта 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>

Пример кода

В следующих примерах отключается анонимная проверка подлинности для сайта Contoso, а затем включается обычная проверка подлинности и проверка подлинности Windows для сайта.

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

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле 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()