Безопасность <>
Общие сведения
Группа <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 по умолчанию.
Инструкции
Отключение анонимной проверки подлинности
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, сайты, перейдите на уровень в области иерархии, которую вы хотите настроить, а затем щелкните веб-сайт или веб-приложение.
Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.
В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Отключить в области Действия .
Изменение учетных данных анонимной проверки подлинности из учетной записи IUSR
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, сайты, перейдите к уровню в области иерархии, которую вы хотите настроить, а затем щелкните веб-сайт или веб-приложение.
Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.
В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Изменить... в области Действия .
В диалоговом окне Изменение учетных данных анонимной проверки подлинности выполните одно из следующих действий.
Выберите Удостоверение пула приложений , чтобы использовать набор удостоверений для пула приложений, а затем нажмите кнопку ОК.
Нажмите кнопку Задать..., а затем в диалоговом окне Установка учетных данных введите имя пользователя учетной записи в поле Имя пользователя , введите пароль для учетной записи в полях Пароль и Подтверждение пароля , нажмите кнопку ОК, а затем нажмите кнопку ОК еще раз.
Примечание
Если вы используете эту процедуру, предоставьте новой учетной записи только минимальные привилегии на компьютере сервера IIS.
Включение обычной проверки подлинности и отключение анонимной проверки подлинности
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, сайты, а затем щелкните сайт, приложение или веб-службу, для которых требуется включить обычную проверку подлинности.
Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.
В области Проверка подлинности выберите Обычная проверка подлинности, а затем в области Действия нажмите кнопку Включить.
В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Отключить в области Действия .
Как требовать уровень безопасных сокетов
Откройте диспетчер служб 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.
В области Подключения перейдите к сайту, приложению или каталогу, для которого требуется настроить требования к SSL. Вы не можете настроить SSL на уровне сервера.
В области Параметры SSL щелкните Требовать SSL.
В области Действия нажмите кнопку Применить.
Включение проверка подлинности Windows для веб-сайта, веб-приложения или веб-службы
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, узел Сайты, а затем сайт, приложение или веб-службу, для которых требуется включить проверка подлинности 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()