Что нового в Windows 2003 Server: улучшения безопасности IIS
Internet Information Services (IIS) Microsoft, хотя и является одним из наиболее широко используемых веб-серверов, долгое время считался слабым местом любого сервера, на котором он установлен, когда речь идет о безопасности. Веб-серверы по самой своей природе обычно открыты для Интернета (если только они не используются только для доступа к внутренней сети), и это делает их естественной мишенью для хакеров и злоумышленников. Эксплойтов IIS предостаточно, и Microsoft пришлось поторопиться, чтобы не отставать от исправлений безопасности для программного обеспечения веб-сервиса.
Поэтому неудивительно, что усиление безопасности было одной из основных целей компании при разработке новой версии IIS (v6), поставляемой с Windows Server 2003. Достигли ли они этого? В этой статье мы расскажем о некоторых изменениях в IIS, которые призваны сделать его менее уязвимым для злоумышленников, и предоставим вам решать.
IIS не установлен по умолчанию
Microsoft решила начать с самого начала и сделать IIS необязательным компонентом, который не устанавливается по умолчанию при установке операционной системы Windows Server 2003. Единственным исключением является версия операционной системы для веб-серверов, которая по определению предназначена для использования только для веб-служб и не включает многие компоненты (например, возможность быть контроллером домена), встроенные в другие три версии.
Общей проблемой в более ранних версиях было обнаружение «мошеннического» сервера IIS, который запускал веб-службы без ведома администраторов, предоставляя злоумышленникам привлекательную точку входа на сервер и в сеть. Чтобы этого не произошло, при установке Windows Server 2003 Standard, Enterprise или Datacenter edition IIS 6.0 не будет устанавливаться по умолчанию. Вы можете добавить его либо из мастера настройки сервера, который отображается при первой загрузке (и доступен позже из меню «Администрирование»), либо из апплета «Установка и удаление программ» на панели управления.
Режим блокировки
Когда вы решите установить IIS, он запустится в «высокобезопасном» или «заблокированном» режиме. Это означает, что многие более сложные функции веб-служб, такие как Active Server Pages (ASP), ASP.NET, Web Distributed Authoring and Versioning (WebDAV) и включения на стороне сервера (SSI), не работают. Это связано с тем, что все эти функции, используемые для обслуживания динамического контента, сами по себе представляют уязвимости. В этом режиме блокировки серверные расширения FrontPage не работают, и можно обслуживать только статический контент. Любая попытка использовать эти функции вызывает ошибку 404 (файл не найден).
Администратор должен включить функции динамического содержимого в диспетчере IIS, чтобы иметь возможность использовать эти функции. Для этого вы можете отдельно включить ASP.NET, страницы ASP и другие расширения веб-службы, выполнив следующие действия:
- На левой панели MMC диспетчера IIS разверните узел веб-сервера, на котором вы хотите включить динамическое содержимое, и щелкните Расширения веб-службы.
- На правой панели вы увидите список расширений веб-службы и статус (запрещено или разрешено) для каждого из них.
- Вы можете щелкнуть правой кнопкой мыши имя расширения и выбрать «Разрешить», чтобы включить его по отдельности.
- Если вы хотите разрешить все расширения для определенного приложения, вы можете выбрать значок «Разрешить все расширения веб-службы для определенного приложения» в разделе «Задачи», как показано на рисунке A. Затем вы можете выбрать приложение из раскрывающегося списка (варианты: Active Server Pages, Internet Data Connector, серверные включения и WebDAV).
Рисунок А
Вы также можете запретить все расширения веб-служб из списка задач для большей безопасности, если у вас нет приложений, требующих ISAPI, CGI, ASP, WebDAV или других расширений.
Новый метод аутентификации
IIS 6.0 включает новый механизм проверки подлинности, называемый Advanced Digest Authentication. При использовании этого метода аутентификации учетные данные пользователя сохраняются в Active Directory на контроллере домена в виде дайджеста сообщения MD5. Это тип хэша, основанный на HTTP 1.1, поэтому он поддерживается не всеми браузерами. Однако он обеспечивает повышенную безопасность по сравнению с дайджест-аутентификацией, поэтому, если все клиенты, которые будут получать доступ к страницам, используют IE 5 или более позднюю версию или другой браузер, поддерживающий HTTP 1.1, а контроллер домена работает под управлением Windows Server 2003, он может обеспечить лучшую безопасность..
Вам не нужно устанавливать какое-либо программное обеспечение на клиентах, чтобы использовать Advanced Digest Authentication; вам нужно только убедиться, что они используют веб-браузер, совместимый с HTTP 1.1. Пользователи должны иметь действующие учетные записи в домене Active Directory.
Чтобы включить расширенную дайджест-аутентификацию на сервере IIS, необходимо настроить свойства папки веб-сайтов, конкретного веб-сайта, каталога (или виртуального каталога) или файла в диспетчере IIS. Для этого выполните следующие действия:
1. Щелкните правой кнопкой мыши объект, для которого вы хотите использовать этот тип аутентификации, и перейдите на вкладку «Безопасность » (она будет помечена как «Безопасность каталога » или «Безопасность файлов», в зависимости от объекта, для которого вы устанавливаете метод аутентификации).
2. Нажмите кнопку «Изменить» в разделе «Аутентификация и контроль доступа».
3. В диалоговом окне «Методы аутентификации» установите флажок «Дайджест-аутентификация для серверов домена Windows» в разделе «Аутентифицированный доступ», как показано на рисунке B.
Рисунок Б
4. Окно сообщения сообщит вам, что дайджест-аутентификация работает с учетными записями домена Active Directory, и спросит, хотите ли вы продолжить. Нажмите Да.
5. В поле «Область» вам нужно настроить имя области. Затем нажмите ОК.
Царство — это, по сути, граница безопасности. Когда пользователь прошел аутентификацию в области, а затем получает доступ к ресурсам в другой области, ему/ей придется пройти повторную аутентификацию, даже если пользователь уже прошел аутентификацию на сервере. Это обеспечивает большую безопасность.
Чтобы использовать расширенную дайджест-аутентификацию, вам также необходимо установить для ключа метабазы UseDigestSSP значение 1 (ИСТИНА). Это значение, которое переключает методы Digest и Advanced Digest. Если для этого ключа не задано значение TRUE, IIS будет использовать дайджест-аутентификацию вместо расширенного дайджеста.
URL-авторизация
Еще одна новая функция безопасности в IIS 6.0 — авторизация по URL-адресу. Эта функция зависит от диспетчера авторизации Windows Server 2003 (обсуждается в моей статье из двух частей на этом сайте, озаглавленной «Диспетчер авторизации и администрирование на основе ролей в Windows Server 2003»). Инструмент диспетчера авторизации — это новая функция, которая позволяет вам использовать безопасность на основе ролей с IIS, предоставляя авторизацию для определенного URL-адреса на основе роли пользователя, определенной в запросах LDAP, сценариях диспетчера авторизации и специально созданных пользовательских ролях.
Вы должны включить перехватчик ISAPI, прежде чем сможете использовать авторизацию URL-адресов, и установить несколько необходимых свойств метабазы в приложении, виртуальном каталоге или веб-сайте. Вы также должны связать URL-адрес с хранилищем диспетчера авторизации, в котором содержится политика авторизации для URL-адреса. Детали выполнения этих задач будут предметом следующей статьи.
Использование авторизации URL-адресов упрощает для администраторов управление доступом пользователей к URL-адресам, составляющим веб-приложение, вместо того, чтобы иметь дело с несколькими ACL и отслеживать, какие разрешения нужны каждому пользователю для каждого ресурса. Авторизация URL-адресов является дополнением к разрешениям ACL и обеспечивает дополнительный уровень безопасности. Авторизация на основе ролей также дает вам чрезвычайно детальный контроль, так что вы можете разрешить пользователям доступ к определенным веб-страницам только в определенный день недели или время суток, или вы можете создавать роли, которые определяются с помощью запросов LDAP, которые могут проверять вашей базе данных для получения такой информации, как возраст пользователя.