Что такое код iis безопасность


Содержание

Настройка аутентификации в IIS 8

IIS 8 поддерживает интегрированный режим ASP.NET, который помимо прочего объединяет конвейер обработки ASP.NET HTTP с конвейером обработки IIS HTTP. Это предоставляет в распоряжение богатейший набор новых возможностей, которые можно использовать в сочетании с имеющимися знаниями ASP.NET. Например, одна из них — это возможность применения аутентификации с помощью форм ASP.NET для других веб-приложений, сконфигурированных в IIS 8, которые не обязательно должны быть построены на ASP.NET.

Более того, IIS 8 использует файл web.config для хранения многих частей конфигурации веб-приложений внутри веб-сервера. Это означает возможность настройки многих параметров приложения с использованием либо консоли управления IIS 8, либо за счет непосредственной модификации файла web.config. Благодаря тесной интеграции средств конфигурирования ASP.NET и IIS 8, любые изменения, внесенные непосредственно в файл web.config, немедленно отражаются в консоли управления, и наоборот.

Давайте сначала рассмотрим возможности конфигурирования аутентификации с помощью форм из среды консоли управления IIS 8. Конфигурировать аутентификацию с помощью форм можно с использованием средства настройки аутентификации консоли управления IIS 8, как показано на рисунке ниже:

После разрешения аутентификации с помощью форм подобным образом также понадобится сконфигурировать необходимые правила авторизации. Наиболее важно добавить правило deny для анонимных пользователей с помощью средства конфигурирования авторизации в консоли управления IIS 8:

Обе конфигурационные настройки затрагивают файл web.config и веб-сервер берет эту информацию из web.config для определения собственного поведения, что видно в следующем фрагменте кода:

Вы заметите, что аутентификация с помощью форм, сконфигурированная IIS, как и следовало ожидать, находится в разделе . Но по умолчанию (и если вы ранее не добавили этого вручную), никаких правил авторизации там не будет. Как упоминалось ранее, не все опции конфигурации по умолчанию помещаются непосредственно в файл web.config. Авторизация URL — одна из таких опций конфигурации.

В любом случае унифицированная консоль управления очень хорошо продумана, так что настраивать безопасность IIS и ASP.NET посредством других инструментов нет необходимости. Многие опции по умолчанию сохраняются непосредственно в файле web.config. Как известно можно даже сконфигурировать IIS так, чтобы почти все опции помещались непосредственно в web.config. Однако, как упоминалось ранее, интеграция ASP.NET предоставляет множество возможностей при запуске IIS 8 в интегрированном с ASP NET режиме.

При запуске IIS 8 в интегрированном режиме (выбираемом по умолчанию) IIS использует канал обработки HTTP для обработки как основанных на ASP.NET HTTP-модулей, так и встроенных HTTP-модулей IIS 8.

Поскольку аутентификация с помощью форм реализована в виде HTTP-модуля ASP.NET, ее можно использовать для любого веб-приложения и виртуального каталога, сконфигурированного в IIS, который функционирует в интегрированном режиме. Это значит, что аутентификацию с помощью форм можно применять вместе с приложениями других типов, такими как статические HTML-сайты, классические приложения ASP или даже приложения PHP. Все, что потребуется сделать — это настроить веб-приложение как виртуальный каталог и затем сконфигурировать аутентификацию с помощью форм через консоль управления IIS 8. Это автоматически добавит к приложению конфигурацию web.config.

Поскольку нужно позаботиться об одной дополнительной детали, давайте в этом разделе кратко рассмотрим настройку аутентификации с помощью форм для приложения, отличного от ASP.NET. Предположим, что имеется следующая страница PHP, работающая на веб-сервере:

Теперь просто откройте доступ к папке, где расположен PHP-файл (например, test.php), как к виртуальному каталогу или веб-приложению внутри IIS. После этого можно сконфигурировать аутентификацию с помощью форм и настройки авторизации, как было описано ранее.

Поскольку IIS 8 органично поддерживает аутентификацию с помощью форм, полагаясь на HTTP-модуль аутентификации с помощью форм, поставляемый в ASP.NET, она работает точно также, как работала бы с приложением ASP.NET. Все что нужно — это удостовериться в наличии необходимой страницы входа, которая сама по себе является страницей ASP.NET. Также должны быть доступны части, необходимые для страницы ASP.NET, внутри веб-приложения (или в другом виртуальном каталоге, если применяются cookie-наборы аутентификации между приложениями).

На рисунке ниже показана страница PHP вместе со страницей входа ASP.NET в виртуальном каталоге. Аутентификация с помощью форм просто конфигурируется через управляющую консоль IIS 8, как было описано ранее:

Однако просто поместить содержимое PHP вместе с основанными на ASP.NET страницами входа и сконфигурировать аутентификацию с помощью форм еще недостаточно. Когда вы попытаетесь выполнить переход на страницу PHP, аутентификация с помощью форм пока работать не будет. В зависимости от аутентификации и правил авторизации, вы либо получите ответ «unauthorized» («неавторизовано»), либо сможете переходить к странице PHP без приглашения на вход.

Причина в том, что по умолчанию управляемые HTTP-модули, в том числе и модуль аутентификации с помощью форм, настроены так, что выполняются только по запросу кода, основанного на ASP.NET. Поэтому чтобы заставить работать аутентификацию с помощью форм, потребуется изменить это поведение, вызвав средство конфигурации HTTP Modules в консоли управления IIS 8 когда ваше веб-приложение выбрано. Затем нужно отобразить детальную информацию для модуля FormsAuthentication, сконфигурированного в списке модулей, как показано на рисунке ниже:

Открыв средство конфигурации HTTP Modules, найдите FormsAuthentication и дважды щелкните на нем или выберите ссылку Edit (Правка) в панели задач справа. В открывшемся диалоговом окне снимите отметку с флажка Invoke Only for Requests to ASP.NET Applications or Managed Handlers (Вызывать только для запросов к приложениям ASP.NET или управляемым обработчикам), как показано на рисунке ниже:

После завершения этой настройки при обращении к странице PHP в каталоге веб-приложения запрос будет аутентифицирован посредством аутентификации с помощью форм ASP.NET. Конфигурационный файл web.config для веб-приложения будет выглядеть следующим образом:

Конфигурация FormsAuthenticationModule важна. Флажок в неотмеченном состоянии задает preCondition=»», которое по умолчанию установлено в managedHandler.

Безопасность сервера IIS

Microsoft Internet Information Server (IIS) был создан для унификации работы всех служб Internet. Он представляет собой высокоинтегрированный пакет серверных служб поддержки HTTP, FTP и Gopher.

Защита IIS основана на средствах обеспечения безопасности Windows NT. В их число входят:

  • учетные записи пользователей — Для предотвращения несанкционированного доступа к узлу IIS следует контролировать учетные записи пользователей. К основным методам защиты также относятся: применение формуляра “Гость из Internet”, регистрация по имени и паролю пользователя (по схеме аутентификации Windows NT) и выбор сложных для угадывания паролей;
  • установка NTFS;
  • права доступа — Основным механизмом доступа через сервер IIS является анонимный доступ. Из механизмов проверки подлинности лишь Windows NT Challenge-Response, используемый сервером HTTP, можно считать относительно защищенным. Поэтому не применяйте для аутентификации базовую схему, так как имя пользователя и пароль при этом передаются по сети открытым способом;
  • уменьшение числа протоколов и отключение службы Server — Уменьшив число протоколов, которыми пользуются сетевые адаптеры, вы заметно усилите защиту. Чтобы пользователи не смогли просматривать разделяемые ресурсы IIS, отключите службу Server. Отключение этой службы затруднит злоумышленникам поиск слабых мест в вашей системе;
  • защита информации в FTP — FTP всегда использует защиту на уровне пользователя. Это значит, что для доступа к серверу FTP пользователь должен пройти процедуру регистрации. Сервис FTP сервера IIS для идентификации пользователей, желающих получить доступ, может использовать базу данных пользовательских бюджетов Windows NT Server. Однако при этой процедуре FTP передает всю информацию только открытым текстом, что создает опасность перехвата пользовательских имен и паролей.

Проблема раскрытия паролей устраняется при таких конфигурациях сервера FTP, когда он разрешает анонимный доступ. При анонимном входе пользователь должен ввести в качестве пользовательского имени anonymous и свой почтовый (e-mail) адрес — в качестве пароля. Анонимные пользователи получают доступ к тем же файлам, доступ к которым разрешен бюджету lVSR_computemame. Кроме того, к сервису FTP сервера IIS Windows NT можно разрешить исключительно анонимный доступ. Такой вариант хорош тем, что при нем отсутствует возможность рассекречивания паролей в общей сети. Анонимный доступ к FTP разрешен по умолчанию;

  • контроль доступа по IP-адресу — Существует дополнительная возможность контроля доступа к серверу IIS — разрешение или запрещение доступа с конкретных IP-адресов. Например, можно запретить доступ к своему серверу с определенного IP-адреса; точно так же можно сделать сервер недоступным для целых сетей. С другой стороны, можно разрешить доступ к серверу только определенным узлам;
  • схемы шифрования — Чтобы обеспечить безопасность пакетов во время их пересылки по сети, приходится применять различные схемы шифрования. Необходимость в такой защите вызвана тем, что при пересылке пакетов по сети не исключен перехват кадров. Большинство схем шифрования работает внутри прикладного и транспортного уровня модели OSI. Некоторые схемы могут работать и на более низких уровнях. Используются такие протоколы, как: SSL, PCT, SET, PPTP, PGP.

Аудит

Аудит — одно из средств защиты сети Windows NT. С его помощью можно отслеживать действия пользователей и ряд системных событий в сети. Фиксируются следующие параметры, касающиеся действий, совершаемых пользователями:

  • выполненное действие;
  • имя пользователя, выполнившего действие;
  • дата и время выполнения.

Аудит, реализованный на одном контроллере домена, распространяется на все контроллеры домена. Настройка аудита позволяет выбрать типы событий, подлежащих регистрации, и определить, какие именно параметры будут регистрироваться. В сетях с минимальным требованиям к безопасности подвергайте аудиту:

  • успешное использование ресурсов, только в том случае, если эта информация вам необходима для планирования;
  • успешное использование важной и конфиденциальной информации.

В сетях со средними требованиями к безопасности подвергайте аудиту:

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

В сетях с высокими требованиями к безопасности подвергайте аудиту:

  • удачные и неудачные попытки регистрации пользователей;
  • удачное и неудачное использование любых ресурсов;
  • удачные и неудачные попытки изменения стратегии безопасности и административной политики.

Аудит приводит к дополнительной нагрузке на систему, поэтому регистрируйте лишь события, действительно представляющие интерес. Windows NT записывает события в три журнала:

  • Системный журнал — (system log) содержит сообщения об ошибках, предупреждения и другую информацию, исходящую от операционной системы и компонентов сторонних производителей. Список событий, регистрируемых в этом журнале, предопределен операционной системой и компонентами сторонних производителей и не может быть изменен пользователем. Журнал находится в файле Sysevent.evt.
  • Журнал безопасности — (Security Log) содержит информацию об успешных и неудачных попытках выполнения действий, регистрируемых средствами аудита. События, регистрируемые в этом журнале, определяются заданной вами стратегией аудита. Журнал находится в файле Secevent.evt.
  • Журнал приложений — (Application Log) содержит сообщения об ошибках, предупреждения и другую информацию, выдаваемую различными приложениями. Список событий, регистрируемых в этом журнале, определяется разработчиками приложений. Журнал находится в файле Appevent.evt.

Все журналы размещены в папке %Systemroot%\System32\Config. При выборе событий для проведения аудита следует учитывать возможность переполнения журнала. Для настройки журнала используйте диалоговое окно Event Log Settings.

С помощью этого окна можно управлять:

  • размером архивируемых журналов (размер по умолчанию – 512 Кбайт, можно изменить размер от 64 до 4 194 240 Кбайт);
  • методикой замещения устаревших записей журнала;
  • Overwrite Events as Need – в случае заполнения журнала при записи новых событий операционная система удаляет самые старые события;
  • Overwrite Events Older then X Days – в случае заполнения журнала при записи новых событий удаляются самые события, но только если они старше Х дней, иначе новые события будут проигнорированы;
  • Do not Overwrite Events – в случае заполнения журнала новые события не фиксируются. Очистка журнала производится вручную.

Для просмотра информации об ошибках и предупреждениях, а также об успешных и неудачных запусках задач используется программа Event Viewer. По умолчанию аудит выключен, и журнал безопасности не ведется. Первый этап планирования стратегии аудита — выбор подлежащих аудиту событий в диалоговом окне Audit Policy утилиты User Manager for Domains (User Manager).

Приведем типы событий, которые могут регистрироваться:

  • Logon and Logoff – регистрация пользователя в системе или выход из нее, а также установка и разрыв сетевого соединения;
  • File and Object Access – доступ к папкам, файлам и принтерам, подлежащим аудиту;
  • Use of User Rights – использование привилегий пользователей (кроме прав, связанных с входом и выходом из системы);
  • User and Group Management – создание, изменение и удаление учётных записей пользователей и групп, а также изменения в ограничениях учётной записи;
  • Security Policy Changes — изменения в привилегиях пользователей, стратегии аудита и политике доверительных отношений;
  • Restart, Shutdown and System — перезапуск или выключение компьютера пользователем; возникновение ситуации, влияющей на безопасность системы;
  • Process Tracking — события, которые вызывают запуск и завершение программ.

Настройка функций аудита описана в документации по Windows NT. Дополнительно рассмотрим следующие типы аудита: Аудит базовых объектов. Кроме файлов и папок, принтеров и разделов системного реестра в Windows NT есть базовые объекты, которые рядовому пользователю не видны. Они доступны только разработчикам приложений или драйверов устройств. Для включения аудита этих объектов необходимо разрешить аудит событий типа File and Object Access в диспетчере пользователей и с помощью редактора реестра установить значение параметра: Ветвь — HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Control\ Lsa, Имя — AuditBaseObjects, Тип — REG_DWORD, Значение — 1.

Не нашли то, что искали? Воспользуйтесь поиском:

Работа с консолью IIS

Работа с консолью IIS.

Сначала ознакомьтесь с оснасткой IIS Microsoft Management Console (MMC). Откройте IIS MMC посредством выбора команды Start\Administrative Tools\Internet Information Services (IIS) Manager. В MMC осуществляется настройка всех установленных компонентов IIS. Для настройки веб-сайтов служит папка Web Sites (Веб-узлы) в левой области консоли. При открытии этой папки в левой части окна отображается список всех веб-сайтов данного сервера, а в правой – основная информация о каждом из них (см. рис. 2.1).

увеличить изображение
Рис. 2.1. Веб-узлы в консоли IIS MMCКаталоги веб-сайтов

Щелкнув на имени веб-сайта в левой части окна MMC, вы увидите, как справа появится список всех его файлов и каталогов. С консолью MMC работают так же, как и с Internet Explorer. Она позволяет получить доступ к разрешениям NTFS для каталогов, однако не дает возможность настройки разрешений NTFS для файлов. С ее помощью можно выяснить, какие файлы доступны в сконфигурированных каталогах.Идентификатор веб-сайта

Первым сайтом в списке является Default Web Site (Веб-сайт по умолчанию). С каждым сайтом ассоциируется случайным образом сгенерированный идентификатор. Идентификатором сайта Default Web Site всегда является 1. Этот идентификатор используется в файле конфигурации метабазы для ссылки на данный сайт, с ним работают все интерфейсы программирования (например, WMI или ADSI).

Управление службами веб-сайта

Используемая веб-сайтами служба Windows называется World Wide Web Publishing Service. Она осуществляет управление веб-сайтами, и при ее остановке все веб-узлы будут отключены. Консоль MMC позволяет останавливать, запускать и приостанавливать работу отдельных веб-сайтов.

Для запуска, остановки или приостановки работы сайта щелкните на имени сайта, затем с помощью кнопок на панели инструментов выберите нужное действие. Эти кнопки похожи на кнопки воспроизведения, остановки и паузы на пульте управления видеомагнитофоном или DVD-проигрывателем. Столбец State (Состояние) в правой части консоли MMC отображает текущее состояние сайта – работа, остановка или приостановка.

  • Running. Веб-сайт в данный момент работает.
  • Stopped. Веб-сайт не обслуживает клиентов и не отвечает на их запросы.
  • Paused. Веб-сайт не отвечает на новые запросы. Процессы, запущенные перед приостановкой веб-сайта, выполняются, после чего завершают свою работу. Используется, если нужно остановить веб-сайт без внезапного отключения клиентов.

Адресация сайтов

Каждому работающему сайту нужно присвоить однозначный, связанный только с ним адрес. Доступны три способа адресации, и один из трех адресов должен быть уникальным. Выберите такой адрес из следующего списка:

  • значение заголовка узла;
  • IP-адрес;
  • номер порта (не SSL-порт; он в расчет не принимается).

Сведения о настройке этих параметров приведены в разделе «Настройка адреса для веб-сайта» далее в лекции. При запуске веб-сайта, не имеющего уникального адреса, отобразится сообщение об ошибке.

Создание виртуальных каталогов

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

Создание виртуального каталога является несложной процедурой.

  1. Откройте консоль IIS MMC с помощью команды Start\Administrative Tools\Interet Information Services (IIS) Manager (Пуск\Администрирование\Диспетчер IIS).
  2. В левой части окна IIS MMC выделите веб-сайт или каталог, в котором будет создаваться виртуальный каталог.
  3. Выберите команду Action\New\Virtual Directory (Действие\Создать\Виртуальный каталог).
  4. Откроется окно Virtual Directory Creation Wizard (Мастер виртуальных каталогов). Нажмите на кнопку Next (Далее).
  5. В диалоговом окне Virtual Directory Alias (Псевдоним виртуального каталога) ведите псевдоним – имя виртуального каталога, которое будет отображаться клиентам при их работе с каталогом. Нажмите на кнопку Next (Далее).
  6. В диалоговом окне Web Site Content Directory (Каталог содержимого веб-сайта) введите путь к содержимому сайта либо перейдите к нужному каталогу. При перенаправлении на URL выберите любой путь, который в случае необходимости измените позже. Нажмите на кнопку Next (Далее).
  7. В диалоговом окне Virtual Directory Access Permissions (Разрешения доступа к виртуальному каталогу) выберите необходимый уровень разрешений: Read (Чтение), Run Scripts (Выполнение сценариев), Execute (Выполнение), Write (Запись) и Browse (Обзор). Нажмите на кнопку Next (Далее).
  8. Нажмите на кнопку Finish (Готово) для завершения работы мастера.

Сохранение конфигурации веб-сайта в файле

После настройки веб-сайта сохраните ее в файле метабазы XML конфигурации сайта. На базе сохраненной конфигурации вы сможете создавать аналогичные сайты на других серверах без перенастройки всех параметров. Также сохраните виртуальные каталоги, сайты FTP и пулы приложений.

  1. В консоли IIS MMC выделите сайт, который нужно сохранить.
  2. Выберите команду Action\All Tasks\Save Configuration To A File (Действие\Все задачи\Сохранить конфигурацию в файле).
  3. В диалоговом окне Save Configuration To A File (Сохранение конфигурации в файле) введите имя файла для сохранения настроек.
  4. Введите место расположения (или перейдите к существующему месту расположения с помощью кнопки Browse [Обзор]) для сохранения данной конфигурации.
  5. Укажите необходимость шифрования экспортного файла. Поскольку он является метабазой XML и содержит информацию, доступ к которой других пользователей нежелателен, рекомендуется установить шифрование.
  6. При использовании шифрования выберите пароль для защиты содержимого.
  7. Нажмите на кнопку OK.

Создание нового сайта

На сервере можно создать несколько сайтов, если каждый из них будет уникальным. Для создания нового сайта используйте Web Site Creation Wizard (Мастер создания веб-сайтов) или файл, сохраненный для другого веб-сайта.

Для создания нового сайта с помощью Web Site Creation Wizard (Мастер создания веб-сайтов) выполните следующие действия.

  1. Выделите Web Sites (Веб-узлы) в левой части панели MMC.
  2. Выберите команду Action\New\Web Site (Действие\Создать\Веб-узел).
  3. В окне Web Site Creation Wizard (Мастер создания веб-сайтов) нажмите на кнопку Next (Далее).
  4. Введите описание сайта – дружественное информативное имя, несущее определенную информацию, с помощью которого сайт легко идентифицируется в консоли MMC.
  5. Введите IP-адрес, порт TCP и (необязательно) Host Header Name (Имя заголовка узла). Значение All Unassigned настроит сайт на использование любого IP-адреса, не занятого другим сайтом. На порте протокола TCP может единовременно выполняться только один сайт (All Unassigned).
  6. Нажмите на кнопку Next (Далее).
  7. Введите имя каталога для нового сайта (или перейдите к нему).
  8. Укажите, следует ли разрешить анонимный доступ к сайту. Нажмите на кнопку Next (Далее).
  9. Выберите уровень разрешений для нового сайта: Read (Чтение), Run Scripts (Выполнение сценариев), Execute (Выполнение), Write (Запись) и Browse (Обзор).
  10. Нажмите на кнопку Next (Далее), затем на кнопку Finish (Готово) для завершения работы мастера.

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

Ниже приведены действия по созданию нового сайта с помощью файла.

  1. Выделите Web Sites (Веб-узлы) в левой части панели MMC.
  2. Выберите команду Action\New\Web Site (From File) (Действие\Создать\Веб-узел [из файла]).
  3. В диалоговом окне Import Configuration (Импорт конфигурации) введите имя файла или перейдите к нужному файлу конфигурации.
  4. Нажмите на кнопку Read File (Просмотр) для просмотра конфигурации, находящейся в файле. Ее описание появится в секции Location (Расположение) внизу окна.
  5. В секции Location выделите конфигурацию для импортирования, затем нажмите на кнопку OK.
  6. Если такой сайт уже существует, вам будет предложено либо создать новый сайт, либо заменить существующий.
  7. При создании нового сайта он получит то же самое имя и конфигурацию, но другой идентификатор.
  8. Нажмите на кнопку OK для завершения создания сайта и закрытия окна.

Доступ ко вкладкам конфигурации

Для получения доступа ко вкладкам свойств и настроек глобальных веб-сайтов, веб-сайтов, каталогов или файлов, отображаемых в левой части окна консоли MMC, щелкните правой кнопкой на объекте, затем выберите Properties (Свойства). В окне Properties расположены вкладки конфигурации для каждой иерархической ступени. Ниже приводится их описание. Начнем с уровня веб-сайта, так как здесь содержится больше всего вкладок, и он чаще всего используется.

Вкладки свойств веб-сайта

Для открытия окна Properties (Свойства) отдельного веб-сайта щелкните правой кнопкой мыши на его имени в левой части консоли MMC и выберите Properties. Рассмотрим вкладки с информацией, которые отображаются при доступе к свойствам сайта BeerBrewers (Пивовары).

Вкладка Web Site (Веб-узел)

При открытии окна Properties (Свойства) для любого веб-сайта по умолчанию отображается вкладка Web Site (Веб-узел) (см. рис. 2.2). В ней вводится адрес IP и информация о портах, а также настраивается время простоя соединения и ведение журнала. Во вкладке Web Site необходимо настроить следующие опции.

Рис. 2.2. Вкладка Web Site (Веб-узел)

Создание описания

Информация, введенная в поле Description (Описание), отображается в столбце Description консоли IIS MMC. В этом поле можно определить веб-сайт, указав информативное имя. Это имя скрыто от пользователей веб-сайта.

Настройка адреса для веб-сайта

Каждый веб-сайт должен иметь уникальный адрес для передачи ассоциированного с ним трафика. Выделить веб-сайт среди других можно тремя способами: посредством IP-адреса, TCP-порта и имени заголовка узла. С точки зрения адресации возможно использование любой комбинации этих данных, но хотя бы одна комбинация должна быть уникальной для компьютера, на котором располагается сайт.

IP-адрес (IP-адрес). Позволяет установить главный IP-адрес для веб-сайта. Выберите IP-адрес в ниспадающем меню либо введите его вручную. Выбор варианта (All Unassigned) позволяет настроить веб-сайт на соответствие любому IP-адресу компьютера, не занятому другим веб-сайтом.

Совет. При вводе IP-адреса вручную проверка наличия такого IP-адреса в системе не выполняется. Вы можете ввести произвольный адрес. Проверяется лишь его правильность и тот факт, что он не используется другим веб-сайтом. Помните о том, что возможно возникновение проблем с соединением, если по этому IP-адресу компьютер будет недоступен.

Порт TCP (Порт TCP). Указывается номер порта, на котором сайт будет ожидать приема данных. Задайте любой порт, не используемый другой службой. Если вы укажете уже занятый порт, IIS не посчитает это ошибкой. Однако в дальнейшем вероятно возникновение проблем в работе использующей порт службы.

Например, для веб-сайта указан порт 25, в результате чего возник конфликт со службой Simple Mail Transfer Protocol (SMTP), работающей на том же компьютере и использующей тот же порт. При поступлении к порту 25 данных компьютер не будет знать, какой службе они предназначаются. В большинстве случаев, поскольку служба SMTP устанавливается раньше, веб-запрос отправится к ней и, следовательно, не будет обработан. При выборе номера порта, отличающегося от 80, необходимо убедиться, что он не используется другой службой.

По умолчанию веб-браузер всегда ожидает поступление данных по порту 80, если в поле адреса не указан другой порт. При изменении номера порта клиенты должны добавлять к адресу URL номер порта, чтобы браузер отправлял запросы к веб-серверу по этому порту. Например, при изменении порта ожидания данных на 1500 клиенты должны указать адрес http://www.beerbrewers.com:1500 вместо обычного http://www.beerbrewers.com.

Порт SSL (Порт SSL). Указывается порт, по которому к веб-сайту поступают данные Secure Sockets Layer (Протокол защищенных сокетов). SSL позволяет шифровать и/или аутентифицировать данные при их передаче между клиентом и сервером (см. лекцию 10).

Как и в предыдущем случае, при изменении стандартного номера 443 этого порта клиенты должны добавлять номер порта к адресу URL для открытия веб-сайта. Например, при изменении номера порта на 1543 клиенты для доступа к сайту должны указать адрес https://www.beerbrewers.com:1543 вместо https://www.beerbrewers.com.

Аdvanced (Дополнительно)

При нажатии на кнопку Advanced (Дополнительно) открывается окно Advanced Web Site Configuration (Дополнительная настройка веб-сайта), в котором настраиваются дополнительные адреса и идентификаторы. Дополнительные идентификаторы позволяют пользователям осуществлять доступ к сайту по нескольким адресам. Такой подход применяется, если нужно направить пользователей, вводящих URL одного сайта, на другой сайт этого же компьютера без использования DNS (Системы доменных имен). (Более подробная информация приведена в лекции 8). В окне Advanced Web Site Configuration указываются имена заголовков узла, чтобы нескольких веб-сайтов могли использовать один и тот же IP-адрес и порт.

О заголовках узлов. Заголовки узлов позволяют отделять один адрес веб-сайта от другого. Обычно они служат для настройки разных веб-сайтов на использование одного и того же IP-адреса и порта. Заголовок узла представляет собой полное имя DNS, вводимое в адресной строке браузера для открытия сайта. Заголовки узлов позволяют экономить адресное пространство при наличии одного доступного IP-адреса. При запросе страницы веб-браузером HTTP 1.1 первая часть запроса выглядит следующим образом.

Часть кода после Host является именем заголовка узла – www.mywebsite.com. IIS использует его для отправки сообщения соответствующему веб-сайту.

Имена заголовков узлов впервые появились в протоколе HTTP 1.1, и все браузеры, совместимые с HTTP 1.1, работают с ними. Более старые версии браузеров не передают заголовок узла и для любого IP-адреса всегда выполняют переход к веб-сайту по умолчанию.

Совет. Для поддержки старых версий браузеров можно создать стандартную страницу для IP-адреса со списком веб-сайтов и использовать элементы cookie для направления на эти сайты клиентов. Версии Internet Explorer, начиная с четвертой, и версии Netscape, начиная с 3, поддерживает заголовки узлов, поэтому не будем заострять внимание на этом вопросе. Более полная информация о поддержке старых версий браузеров находится на сайте Microsoft.

Примечание. Имена заголовков узлов являются частью протокола HTTP 1.1, поэтому их нельзя использовать на сайтах FTP, почтовых и новостных сайтах в IIS. При создании несколько сайтов на одном сервере следует получить несколько IP-адресов или использовать различные порты. Заголовки узлов недоступны и в случае работы с протоколом защищенных сокетов (SSL), так как заголовок находится в зашифрованном запросе.

Добавление дополнительного тождественного идентификатора. Одному и тому же веб-сайту можно присвоить несколько адресов. Сайт будет отвечать на запросы, поступающие по каждому отдельному адресу и по всем сразу. Каждый адрес, ассоциированный с веб-сайтом, называется тождественным идентификатором. Для создания дополнительного тождественного идентификатора веб-сайта нажмите на кнопку Add (Добавить) в секции Web Site Identification (Идентификация веб-сайта) во вкладке Web Site (Веб-узел). Откроется диалоговое окно Advanced Web Site Identification (Дополнительная идентификация веб-узла) (см. рис. 2.3).

Рис. 2.3. Диалоговое окно Advanced Web Site Identification (Дополнительная идентификация веб-узла)

Каждый тождественный идентификатор должен быть уникальным и использовать один из трех адресов (IP-адрес, порт TCP или значение заголовка узла). Введите любой правильный IP-адрес, порт или имя заголовка узла. Как и в случае с полем IP Address вкладки Web Site (Веб-узел), система не проверяет наличие этого адреса на компьютере, поэтому вводите любой разрешенный адрес. Не забывайте, что будет мало пользы, если в дальнейшем ваш сайт нельзя будет отыскать по указанному адресу.

Удаление тождественных идентификаторов. Для удаления тождественного идентификатора выделите его и нажмите на кнопку Remove (Удалить). Все тождественные идентификаторы сайта в этом окне удалить нельзя, поэтому кнопка OK будет недоступна.

Редактирование тождественных идентификаторов. Для изменения тождественного идентификатора выделите его и нажмите на кнопку Edit (Изменить).

Присвоение тождественных идентификаторов SSL. Веб-сайту можно присвоить несколько тождественных SSL-идентификаторов. Поскольку в SSL отсутствуют заголовки узлов, изменяется только IP-адрес и номер порта. При отсутствии на сайте установленного сертификата все опции для тождественных SSL-идентификаторов будут отключены.

Добавление тождественных SSL-идентификаторов. Для добавления дополнительного идентификатора SSL веб-сайту нажмите на кнопку Add (Добавить). Можно добавить несколько идентификаторов; просто помните о том, что сертификаты SSL базируются на имени сайта, а не на IP-адресе. Любой указываемый IP-адрес должен обрабатываться через имя DNS. При попытке доступа через IP-адрес сайт будет недоступен.

Удаление тождественных SSL-идентификаторов. Для удаления тождественного идентификатора SSL с веб-сайта выделите его и нажмите на кнопку Remove (Удалить). Нельзя удалить все тождественные SSL-идентификаторы.

Изменение тождественных SSL-идентификаторов. Для изменения тождественного идентификатора SSL веб-сайта выделите его и нажмите на кнопку Edit (Изменить).

Лимит времени соединения

Параметр Connection Timeout (Лимит времени соединения) во вкладке Web Site (Веб-узел) задает промежуток времени в секундах, в течение которого сервер поддерживает для клиента открытое соединение. Как правило, браузер отправляет на сервер запрос, чтобы оставить соединение открытым. Данный процесс называется поддержкой соединения НTTP (keep-alive). Клиент использует открытое соединение для нескольких запросов, причем ни клиенту, ни серверу не нужно повторно устанавливать соединение для каждого запроса. Это сильно повышает производительность, особенно для низкоскоростных соединений. При завершении работы с запросами клиент сообщает серверу о том, что соединение можно закрыть и освободить занимаемые ресурсы.

Предположим, по какой-то причине клиент не закрыл соединение. Оно останется открытым бесконечно долго, если не сообщить серверу о необходимости его закрытия. Значение Connection Timeout (Лимит времени соединения) предназначено как раз для установки этого интервала времени.

Включение функции поддержки соединения HTTP

Опция Enable HTTP Keep-Alives (Включить поддержку соединения HTTP) включена по умолчанию, что позволяет серверу принимать запросы HTTP keep-alive от клиентов. При отключении опции резко снижается производительность и клиента, и сервера.

Включение журнала

По умолчанию на веб-сайтах включено ведение журналов. Стандартным типом журнала является W3C Extended Log File (Расширенный файл журнала W3C). В окне можно отключить ведение журнала или изменить его тип. О ведении журналов подробно рассказывается в лекции 11.

Вкладка Performance (Производительность)

Во вкладке Performance (Производительность) окна Web Site Properties (Свойства веб-узла) (см. рис. 2.4) настраивается управление полосой пропускания и количество подключений сайта.

Рис. 2.4. Вкладка Performance (Производительность)

Управление полосой пропускания

С помощью параметра Bandwidth Throttling (Управление полосой пропускания) настраивается максимальная пропускная способность канала связи (Кб/с). Для настройки параметра требуется программа Windows Packet Scheduler (приложение QOS – Quality Of Service), определяющая возможность отправки пакета по сети. Программа ставит данные в очередь и отправляет по сети с указанной скоростью. IIS автоматически инсталлирует Windows Packet Scheduler после задания максимального значения полосы пропускания и нажатия на кнопку OK.

При настройке данного параметра помните, что пропускная способность канала связи локальной сети имеет значения 10, 100 или 1000 Мб/с, а скорость работы в сети интернет, как правило, намного ниже. Например, полный канал T1 обеспечивает скорость 1,544 Мб/с. Если принятое значение по умолчанию равно 1024 Кб, то оно будет намного больше скорости канала T1.

Примечание. 1 байт равен 8 битам. 1 Килобайт равен 8192 битам.
Подключения веб-сайта

Переключатели Web Site Connections (Подключения веб-сайта) позволяют настроить количество подключений клиентов для данного сайта. Значение по умолчанию – Unlimited (Не ограничено). При выборе Connections Limited To (Ограничить число подключений) укажите любое количество подключений – от 0 до 2 000 000 000.

Вкладка ISAPI Filters (фильтры ISAPI)

Во вкладке ISAPI Filters (Фильтры ISAPI) (см. рис. 2.5) можно добавить фильтры ISAPI для сайта. Весь трафик HTTP, направляемый к сайту, будет передаваться фильтрам ISAPI в установленном здесь порядке. Расширение ISAPI применимо только к тому расширению, с которым оно связано, а фильтр ISAPI применим ко всему трафику сайта. Это может вызвать значительный спад производительности сайта, особенно при неправильном написании фильтра ISAPI, допускающем потерю ресурсов памяти. (Более подробная информация о технологии ISAPI приведена в лекции 5 курса «Программирование в IIS».)

Рис. 2.5. Вкладка ISAPI Filters (Фильтры ISAPI)

Фильтр ISAPI имеет определенное состояние. Направленная вниз красная стрелка означает, что фильтр в данный момент отключен. Направленная вверх зеленая стрелка означает, что фильтр включен.

Добавление фильтра ISAPI

Для добавления фильтра ISAPI нажмите на кнопку Add (Добавить), присвойте фильтру имя, а затем выберите исполняемый файл, с помощью которого будет производитьсяфильтрация трафика. Имя фильтра должно быть дружественным, удобным для использования.

Удаление фильтра ISAPI

Для удаления фильтра ISAPI выделите фильтр и нажмите на кнопку Remove (Удалить).

Изменение фильтра ISAPI

Для изменения фильтра ISAPI выделите фильтр и нажмите на кнопку Edit (Изменить). Имейте в виду, что можно только редактировать исполняемый файл, на который указывает фильтр. Имя фильтра изменять нельзя.

Включение и выключение фильтра ISAPI

Если фильтр в настоящий момент является активным, его можно отключить, выделив имя фильтра и нажав на кнопку Disable (Отключить). Если фильтр в настоящий момент отключен, его можно включить, выделив имя фильтра и нажав на кнопку Enable (Включить). Отключение фильтра позволяет приостановить его работу без удаления из списка фильтров.

Изменение порядка выполнения

При использовании нескольких фильтров ISAPI, как правило, они выполняются в определенном порядке. Этот порядок задается в данном окне. Для повышения приоритета фильтра в списке выделите его имя и нажмите на кнопку Move Up (Вверх). Для понижения приоритета фильтра в списке выделите его имя и нажмите на кнопку Move Down (Вниз).

Вкладка Home Directory (Домашний каталог)

Во вкладке Home Directory (Домашний каталог) (см. рис. 2.6) указывается место расположения данного сайта и то, как он осуществляет обработку данных.

Указание IIS на место расположения содержимого сайта

Для указания IIS на место расположения содержимого сайта выберите соответствующий переключатель.

A Directory Located on This Computer (Каталог на этом компьютере). Выберите данную опцию, затем в поле Local Path (Локальный путь) задайте любой логический диск и каталог, в котором находится содержимое сайта. Кнопка Browse (Обзор) поможет перейти к нужному каталогу или вести путь в поле.

Рис. 2.6. Вкладка Home Directory (Домашний каталог)

A Share Located on Another Computer (Ресурс на другом компьютере). При выборе данной опции изменится текст вкладки Home Directory. Текстовое поле Local Path (Локальный путь) будет называться Network Directory (Сетевая папка), кнопка Browse (Обзор) – Connect As (Подключить как). Введите путь согласно правилам соглашения об универсальном назначении имен (Universal Naming Convention, UNC) в виде \\имя_сервера\имя_расположения. Нажмите на кнопку Connect As и задайте имя пользователя и пароль, используемые IIS для подключения к указанному месту, в диалоговом окне Network Directory Security Credentials (Мандаты безопасности сетевого каталога). Если сервер не зарегистрирован в системе, то у него нет маркера доступа к общим сетевым ресурсам. А введенное имя пользователя и пароль позволят IIS проходить аутентификацию.

IIS может использовать имя пользователя и пароль, указываемые клиентом при аутентификации на сайте. Для этого выберите опцию Always Use The Authenticated User’s Credentials When Validating Access To The Network Directory (Всегда использовать мандаты аутентифицированного пользователя при подтверждении доступа к сетевой папке) в диалоговом окне Network Directory Security Credentials. Если пользователю не разрешен доступ к удаленному сетевому ресурсу, то он не получит доступа и к ресурсам IIS.

Перенаправление на URL. При выборе опции появляется текстовое поле Redirect To (Перенаправлять на). Укажите в нем адрес URL, на который будут переходить клиенты при подключении к данному ресурсу. Отметьте одну из опций.

  • The Exact URL Entered Above (Точный URL, указанный выше). Перенаправляет клиента на адрес URL, указанный в поле Redirect To (Перенаправлять на). В поле должен быть указан полный и достоверный адрес URL.
  • A Directory Below URL Entered (Папка, находящаяся под указанным URL). Перенаправляет клиента в дочернюю папку под родительским каталогом, указанным клиентом в браузере. При выборе этой опции следует просто ввести имя подкаталога с префиксом в виде слеша (/).
  • A Permanent Redirection For This Resource (Постоянное перенаправление на этот ресурс). Используется при перемещении сайта с одного URL на другой. Она передает клиенту сообщение «HTTP 301 Permanent Redirect». Некоторые клиенты после получения этого сообщения автоматически обновляют свои закладки.
Параметры домашнего каталога

При выборе переключателей A Directory Located on This Computer (Каталог на этом компьютере) или A Share Located on Another Computer (Ресурс на другом компьютере) открывается доступ к указанным ниже опциям. Помните о том, что IIS базируется на файловых системах, поэтому при работе с разрешениями аутентифицированный (или анонимный) пользователь должен иметь соответствующие права.

Опция Script Source Access (Доступ к исходным кодам сценариев). При включении опции клиенты получают доступ к исходному коду сценариев (Active Server Pages, ASP) при установке соответствующих разрешений на чтение/запись. Поскольку обработка сценариев происходит на серверной части, не открывайте клиенту доступ к их исходному коду и оставьте опцию отключенной.

Опция Read (Чтение). При включении опции клиенты получают разрешение на чтение файлов. Если на веб-сайте клиенты работают с веб-содержимым, то рекомендуется включить данную опцию. Опция Read отключается в том случае, если клиентам разрешается отгрузка файлов с разрешением на запись и исключается чтение отгруженных файлов (см. соответствующее техническое замечание).

Опция Write (Запись). При включении опции клиентам с браузерами HTTP 1.1, поддерживающими функцию PUT, разрешается отгружать файлы в данный каталог.

Предупреждение. Если пользователям будет разрешено чтение и запись файлов в каталог, любой пользователь сможет отгрузить файл и затем выполнить его. При включении сценариев они выполняются на сервере, поэтому злоумышленник может отгрузить вредоносный ASP-файл, выполнить его и повредить сервер.

Опция Directory Browsing (Просмотр каталогов). При включении опции клиенты получают разрешение на просмотр каталогов, а, следовательно, и всех его файлов. Если существует страница по умолчанию, то она отобразится клиенту. В противном случае клиент увидит перечень всех файлов и каталогов, кроме виртуальных, поскольку их нет в файловой системе. Включение опции представляет угрозу безопасности, так как любой пользователь получает возможность просмотра файловой структуры сайта.

Опция Log Visits (Вести журнал посещений). При включении опции все посещения данного каталога записываются в журнал, если IIS ведет журнал.

Опция Index This Resource (Индексировать этот ресурс). При включении опции каталог будет проиндексирован службой Microsoft Indexing Service (Служба индексации Microsoft), если она установлена и включена.

Параметры приложений

В секции Application Settings (Параметры приложений) настраиваются параметры приложений для определения их границ. При создании приложения можно указать, что оно выполняется в созданном вами пуле приложений. Это позволяет отделить приложения друг от друга и настроить рабочие процессы для работы с проблемными приложениями, сценариями или содержимым, которое следует изолировать.

Application Name (Имя приложения). Задается имя создаваемого приложения. Если текстовое поле затемнено и доступна кнопка Create (Создать), это означает, что приложение еще не создано. Если доступна кнопка Remove (Удалить), то для данного каталога определено приложение, и в текстовом поле Application Name отображается его имя.

Execute Permissions (Разрешения на выполнение). Задается тип содержимого, разрешенного на данном сайте.

  • None (Нет). Значение по умолчанию для IIS 6. Представляет собой значительное изменение в готовой конфигурации IIS. В предыдущих версиях разрешалось выполнение сценариев (таких как ASP) при стандартной установке IIS. Это вызывало проблемы, тем более что IIS устанавливался по умолчанию при инсталляции Windows, и, следовательно, Windows была настроена и на выполнение IIS, и на выполнение его сценариев. Теперь отключение сценариев в стандартной установке обеспечивает наиболее безопасную конфигурацию IIS по умолчанию.
  • Scripts Only (Только сценарии). Разрешает выполнение на сайте сценариев ASP. Опцию следует включать только при необходимости, поскольку она позволяет исполнять любые типы сценариев.
  • Scripts And Executables (Сценарии и исполняемые файлы). Разрешает выполнение на сайте сценариев и исполняемых файлов. Под категорию исполняемых файлов попадают файлы ( .exe ), динамически подсоединяемые библиотеки ( .dll ) и сценарии общего шлюзового интерфейса ( .cgi ). Опцию следует включать только при необходимости, поскольку она открывает доступ к файлам любого типа и позволяет их выполнять.

Предупреждение. Убедитесь, что разрешения Write (Запись) NTFS и Write (Запись) IIS отключены в каталогах, для которых не установлено None (Нет) в разрешениях на выполнение.

Application Pool (Пул приложений). Служит для указания того, в каком пуле приложений будет выполняться содержимое сайта. Этот список заполняется данными из пулов приложений, созданных в IIS MMC. Поле будет затемнено, если для домашнего каталога еще не определено приложение.

Unload (Выгрузить)

С помощью кнопки Unload (Выгрузить) изолированное приложение выгружается из памяти. Если приложение загружено в память, и в конфигурацию вносится изменение, то необходимо его выгрузить для вступления изменения в силу. Если кнопка недоступна, то это значит, что приложение не загружено в память, или вы находитесь не в стартовом каталоге приложения.

Configuration (Настройка)

С помощью кнопки Configuration (Настройка) изменяются параметры конфигурации приложения для каталога. В появившемся окне Application Configuration (Настройка приложения) (см. рис. 2.7) можно настроить некоторые параметры взаимодействия домашнего каталога со сценариями и исполняемым содержимым.

Рис. 2.7. Окно Application Configuration (Настройка приложения)

В окне Application Configuration имеются следующие вкладки.

Вкладка Mappings (Типы файлов). В ней указываются связи расширений файлов с библиотеками DLL ISAPI. По умолчанию указываются все библиотеки ASP ( .asa, .asp,.cdx, .cer ), подключатели к базам данных ( .idc ) и включения серверной части ( .shtm, .shtml, .stm ). При поступлении запроса с помощью этого списка выясняется, какой библиотеке DLL следует передать содержимое в зависимости от расширения запрашиваемого файла.

Если включена опция Cache ISAPI Extensions, то библиотеки ISAPI DLL кэшируются в память, и IIS обрабатывает запросы для ассоциированных расширений без повторной загрузки DLL. Это повышает производительность большинства приложений ISAPI, включая ASP. По умолчанию опция включена, и настоятельно рекомендуется не выключать ее. При отключении опции IIS будет загружать ASP.DLL и создавать объекты состояния приложения и сеанса при каждом запросе страницы ASP. После обработки запроса IIS немедленно выгружает ASP.DLL. Если клиент запросит страницу ASP в процессе выгрузки приложения, то может возникнуть ошибка. Как правило, опция отключается только при тестировании кода ISAPI.DLL, когда каждый раз требуется перезагрузка

Возможно добавление собственных библиотек ISAPI.DLL и назначение для них связей. Для добавления и настройки библиотеки DLL выполните следующие действия.

  1. Нажмите на кнопку Add (Добавить). Появится диалоговое окно Add/Edit Application Extension Mapping (Добавить/Изменить связь расширения с приложением).
  2. Введите имя исполняемого файла (или перейдите к нему), который будет обрабатывать содержимое.
  3. Введите имя расширения. Ставить точку перед расширением не обязательно.
  4. Укажите, следует ли передавать приложению только определенные команды HTTP или же все. Для ограничения набора команд введите разрешенные команды через запятую.
  5. Оставьте отмеченными опции Script Engine (Машина сценариев) и Verify That File Exists (Проверка существования файла), если нет оснований для их отключения. Далее мы расскажем об их назначении.

Limiting HTTP Verbs (Ограничить команды HTTP). HTTP-клиенты используют команды для запросов на действия сервера. Эти команды (методы) определяются в спецификации W3C для HTTP. Наиболее общими являются методы GET, HEAD, POST и TRACE, хотя используются также PUT и DELETE. Рекомендуется ограничить набор команд для уменьшения уязвимости к атакам. Например, связывание с файлами ASP ограничивает набор командами GET, HEAD, POST и TRACE. При наличии ограничения приложению для обработки будут передаваться только команды, находящиеся в списке.

    • Script Engine (Машина сценариев). Опция включена по умолчанию. В этом случае IIS будет обрабатывать содержимое как сценарий, а не исполняемый файл, что исключает включение разрешений выполнения для каталога, поскольку сценарии связаны с интерпретатором.
    • Verify That File Exists (Проверка существования файла). При включенной опции IIS проверяет наличие файла сценария и право пользователя на работу с файлом перед отправкой интерпретатору. Так как каждый сценарий открывается дважды (один раз для проверки и один раз для чтения и отправки машине сценариев), то включение опции приводит к снижению производительности. В IIS 5 опция отключена по умолчанию, и, как и многие другие опции, отключена в IIS 6 в целях безопасности.
Илон Маск рекомендует:  Iis список свойств для ведения журналов
Примечание. Даже при связывании и включении расширений ISAPI они могут не работать, если в разрешениях домашнего каталога не выбрана опция Scripts Only (Только сценарии). В этом случае для успешной обработки содержимого включите разрешение Scripts And Executables (Сценарии и исполняемые файлы).
Для изменения связи приложения с расширением выделите расширение и нажмите на кнопку Edit (Изменить). Появится такое же окно, что и после нажатия на кнопку Add (Добавить), с идентичными опциями.
Для удаления связи приложения с расширением выделите расширение и нажмите на кнопку Remove (Удалить), затем подтвердите удаление.
Групповой символ используется при установке связи приложения ISAPI со всеми файловыми расширениями. Возникает вопрос, почему бы просто не применить фильтр ISAPI. Между фильтром ISAPI и связью приложения с помощью группового символа существуют некоторые различия. На уровне администрирования фильтры ISAPI применяются ко всему веб-сайту в целом, а расширения ISAPI конфигурируются для отдельных каталогов. Подкаталог наследует групповые связи с расширениями от родительского каталога, если не содержит свои собственные (в этом случае родительские связи игнорируются).
Для добавления связи приложения нажмите на кнопку Insert (Добавить). Затем введите имя исполняемого файла (или перейдите к нему) для обработки содержимого. Опция Verify That File Exists (Проверить существование файла) действует так же, как и для связей с расширениями, и является мерой безопасности.
Для изменения связи приложения выделите расширение и нажмите на кнопку Edit (Изменить). Появится окно Add (Добавить) с аналогичными опциями.
Для удаления связи приложения выделите расширение и нажмите на кнопку Remove (Удалить), затем подтвердите удаление.
Кнопки Move Up (Вверх) и Move Down (Вниз) устанавливают приоритет связи приложений ISAPI. Запросы будут передаваться через заданные связи с приложением в установленном здесь порядке.

Вкладка Options (Параметры). Вкладка Options (см. рис. 2.8) служит для настройки конфигурации приложения, машины сценариев, определения способа поддержки сеансов.

Опция Enable Session State (Включить состояние сеанса) настраивает ASP на создание сеанса серверной части для каждого клиентского сеанса на сервере. Такой подход применяется только для обычных сценариев ASP, так как состояние сеанса настраивается в файле web.config для приложений ASP.NET. В сеансе сохраняются данные о пользователе, переходящие на каждую посещаемую им страницу. В программе эти данные хранятся в переменных в объекте сеанса. Сеансовые переменные могут занимать значительный объем памяти, поэтому не рекомендуется использовать их в большом количестве на сайтах с высоким уровнем трафика, чтобы не снижать производительность.

Параметр Session Timeout (Время простоя сеанса) определяет промежуток времени, в течение которого сеанс находится в состоянии бездействия перед закрытием. Укажите любое значение от 1 до 2 000 000 000 минут. Кто знает, возможно сеансовая переменная понадобится вам через 3800 лет.

Рис. 2.8. Вкладка Options (Параметры) окна Application Configuration (Настройка приложения)

Совет. Не торопитесь использовать состояния сеанса, если вы работаете с веб-структурой ASP или применяете рециркуляцию рабочих процессов. В веб-структуре ASP при подключении к веб-сайту пользователь может всякий раз попадать на другой сервер. Поскольку состояние сеанса создается на другом сервере (не там, где в данный момент зарегистрирован пользователь), информация о состоянии сеанса теряется. Это происходит и при рециркуляции рабочего процесса, содержащего информацию о сеансе. Вследствие этого рекомендуем вам либо отказаться от использования состояния сеанса, либо применять ASP.NET.
Отметьте опцию Enable Buffering (Включить буферизацию) для настройки сервера на кэширование всего выходного содержимого сценария ASP перед его отправкой браузеру. Опция отправляет выходные данные единовременно, а не строка за строкой. Однако в случае обработки большого сценария нужно отобразить страницу сразу после обработки содержимого, поэтому данная опция должна быть отключена.
Родительские пути позволяют устанавливать ссылки на каталоги с использованием относительных имен путей в коде ASP. Путь к сценарию в родительском каталогеобозначается двумя точками («..»). Это относится только к динамическому содержимому, такому как файлы включений. К статическому содержимому можно обратиться посредством относительных путей. Опция Enable Parent Paths (Включить родительские пути) отключена по умолчанию в целях безопасности, поскольку динамическое содержимое можно выполнить на этой же странице без указания структуры каталогов для перехода в нужное место.
Примечание. В IIS 6 родительские пути отключены по умолчанию. Если в вашем коде имеются относительные пути, и этот код раньше выполнялся в IIS 5, то нужно или изменить код, или отметить опцию Enable Parent Paths (Включить родительские пути), чтобы динамическое содержимое выполнялось в IIS 6.
Опция Default ASP Language (Язык ASP по умолчанию) определяет язык, обрабатывающий содержимое сценариев. Содержимое сценариев обозначается тегами . С IIS 6 поставляются два языка: Microsoft Visual Basic Scripting Edition (по умолчанию) и Microsoft JScript. Установите любую машину сценариев ActiveX для интерпретации содержимого на сайте.
Опция ASP Script Timeout (Срок выполнения сценария) указывает максимальный промежуток времени для выполнения сценария. Если опция отключена, то неграмотно написанный сценарий может выполняться бесконечно долго и вызовет проблемы на сервере. По окончании заданного времени сценарий останавливается, обработанное содержимое передается браузеру с сообщением об ошибке, в котором говорится о достижении временного предела. Укажите любой интервал от 1 до 2 000 000 000 с (это 63 года!).
Опция Enable S >Вкладка Debugging (Отладка). Вкладка Debugging окна Application Configuration (Настройка приложения) (см. рис. 2.9) помогает в решении проблем при тестировании кода сценариев ASP. При включении опции IIS использует Microsoft Script Debugger (Отладчик сценариев Microsoft) для проверки кода. IIS настраивается на отладку сценариев как серверной, так и клиентской частей. Включение сценариев серверной части отрицательно сказывается на производительности, поэтому пользуйтесь этим только при необходимости. Можно настроить сообщение, передаваемое клиентам при возникновении ошибки в сценарии.

Рис. 2.9. Вкладка Debugging (Отладка)

  • Enable ASP Server-Side Script Debugging (Включить отладку сценариев серверной части). Включение опции настроит IIS на использование отладчика сценариев для проверки кода в процессе обработки.
  • Enable ASP Client-Side Script Debugging (Включить отладку сценариев клиентской части). Включение опции разрешит отладку ASP-страниц с помощью Microsoft ScriptDebugger на клиентской части. При возникновении ошибки клиент получит сообщение с вопросом о том, нужно ли провести отладку ошибки.
  • Send Detailed ASP Error Messages to Client (Отправлять клиенту подробные сообщения об ошибках). Являясь опцией по умолчанию, обеспечивает отправку стандартного сообщения об ошибке с именем файла и относительным путем, особого сообщения об ошибке и номера строки, в которой произошла ошибка. Это дает клиентам доступ к подробной информации о настройках сайта, поэтому в целях безопасности имеет смысл отправлять другие сообщения об ошибках.
  • Send the Following Text Error Message to Client (Отправлять клиенту следующее текстовое сообщение об ошибке). Отметьте эту опцию и введите текст собственного сообщения, отправляемого клиенту при возникновении ошибки в сценарии ASP. Например, введите сообщение с указанием адреса электронной почты, по которому клиент сможет отправить отчет об ошибке.
Создание компоновки соседних версий

Создадим файл-манифест, позволяющий приложению использовать более старую версию библиотеки DLL. Он является ключевым объектом при компоновке соседних версий, поэтому с него и начинаем. В нем содержится информация для IIS о том, какой графический пользовательский интерфейс использовать для загружаемого COM-объекта. Назовем наш файл Myapp.xml ; его нужно разместить в каждом виртуальном каталоге, использующем данную библиотеку DLL.

Теперь нужно дать IIS команду на использование компоновки соседних версий. Во вкладке Options (Параметры) отметьте опцию Enable Side By Side Assemblies (Включить параллельные сборки). После этого введите Myapp.xml в поле Manifest File Name (Имя файла-манифеста). Наш файл-манифест находится в этом же каталоге, поэтому указывается только имя файла.

Вкладка Documents (Документы)

В окне Web Site Properties (Свойства веб-узла) имеется еще одна вкладка – Documents (Документы) (см. рис. 2.10). В ней настраиваются стандартные страницы веб-сайта, а также нижний колонтитул, размещаемый на каждой странице.

Рис. 2.10. Вкладка Documents (Документы)

Enable Default Content Page (Включить страницу с содержимым по умолчанию)

Эта опция указывает страницу по умолчанию, которая отображается в том случае, если в строке адреса URL запроса не указано имя документа. Например, при вводе клиентом адреса http://www.microsoft.com веб-сервер IIS проверяет наличие документа по умолчанию. При включенной опции этот документ отображается. Такой подход не требует от клиента указания имени документа для каждого посещаемого сайта. Если документ по умолчанию не определен, и клиент не указал имя документа, то дальнейшее развитие событий зависит от того, включен или выключен просмотр каталогов.

  • Просмотр каталогов включен. Сервер отправляет список содержимого каталога.
  • Просмотр каталогов отключен. Сервер отправляет сообщение об ошибке: «Просмотр содержимого данного виртуального каталога запрещен».
Добавление и удаление страниц с содержимым по умолчанию

IIS производит поиск имен заданных страниц, если в запросе не определена конкретная страница. Имя файла должно полностью соответствовать имени страницы, поэтому не забудьте указать расширение, причем сделайте это правильно ( Default.htm не то же самое, что Default.html ). Для добавления в список имени файла нажмите на кнопку Add (Добавить) и введите имя страницы. Для удаления имени файла из списка выделите его и нажмите на кнопку Remove (Удалить). Подтверждение на удаление не запрашивается.

Установка порядка страниц по умолчанию

При поиске страницы по умолчанию IIS проверяет список в порядке, установленном в данном окне. IIS использует первую страницу, имя которой соответствует критерию поиска. Для изменения порядка элементов списка выделите имя страницы и с помощью кнопок Move Up (Вверх) и Move Down (Вниз) переместите ее в нужное место.

Enable Document Footer (Включить нижний колонтитул документа)

Отметьте эту опцию для включения нижнего колонтитула документа. Нижний колонтитул представляет собой документ HTML, отображаемый внизу каждой страницы. Он используется, если на всех страницах сайта нужно разместить некоторую информацию, например, об авторских правах, не вводя код (или файл) в каждую страницу. Документ HTML содержит только конкретный код для отображения без открывающего тега . Используются теги, форматирующие текст нижнего колонтитула. К сожалению, нижние колонтитулы можно разместить только на страницах со статическим содержимым (HTML).

После включения данной опции нажмите на кнопку Browse (Обзор) для выбора документа, используемого в качестве нижнего колонтитула. Код в документе должен быть HTML-совместимым (не должен содержать сценарии), при этом не обязательно использовать файл с расширением .HTM.

Вкладка Directory Security (Безопасность каталога)

Вкладка Directory Security (Безопасность каталога) (см. рис. 2.11) служит для настройки параметров безопасности сайта: настройки аутентификации клиентов IIS, указания клиентов, которые могут подключаться к серверу, установки защиты соединения между клиентом и сервером.

Рис. 2.11. Вкладка Directory Security (Безопасность каталога)

Изменение параметров аутентификации и контроля доступа

В этой секции выбирается тип аутентификации сайта для обеспечения его безопасности. Не забывайте о взаимодействии между защитой NTFS и мерами безопасности IIS, об их воздействии на пользователей, проходящих процедуру аутентификации на веб-странице. Для изменения параметра Authentication and Access Control (Аутентификация и контроль доступа) нажмите на кнопку Edit (Изменить). Откроется диалоговое окно Authentication Methods (Методы аутентификации) (см. рис. 2.12).

Рис. 2.12. Диалоговое окно Authentication Methods (Методы аутентификации)

Опция Enable Anonymous Access (Включить анонимный доступ). При включении опции пользователи подключаются к веб-странице без ввода аутентификационных данных. Вконтексте безопасности используется учетная запись Guest (Гость) – гостевая учетная запись интернета. Она создается при установке IIS и ей присваивается имяIUSR_ . Опция позволяет настроить меры безопасности для всех анонимных пользователей, посещающих сайт с помощью этой учетной записи. Можно отказаться от гостевой учетной записи интернета, а вместо нее использовать другую учетную запись (локальную или расположенную на доверенном домене).

Совет. Любая учетная запись, используемая для доступа к веб-страницам, должна иметь разрешение на доступ к файлам на уровне NTFS. Более подробная информация об установке этих разрешений приведена в лекции 6.

Для выбора учетной записи анонимного доступа выполните следующие действия.

  1. Введите имя учетной записи в диалоговом окне Authentication Methods (Методы аутентификации). Для учетной записи домена используйте формат имени имя_домена\имя_пользователя.
  2. Для поиска нужного имени нажмите на кнопку Browse (Обзор). Появится стандартное окно выбора объекта Windows 2003.
  3. В этом окне выберите имя учетной записи пользователя и ее место расположения. Поиск можно произвести нажатием на кнопку Advanced (Дополнительно).
  4. После выбора учетной записи нажмите на кнопку OK.
  5. Введите пароль учетной записи в текстовом поле Password (Пароль). После нажатия на кнопку OK появится окно подтверждения пароля.


При указании имени пользователя и пароля IIS не проверяет правильность этой информации. Если данные введены неправильно, IIS будет работать с отключенным анонимным доступом к сайту. Обнаружить это довольно сложно, так как Internet Explorer автоматически будет использовать другие методы аутентификации, например, входные данные зарегистрированного в системе пользователя. Как администратор вы получите доступ к ресурсам, а вот как пользователь-гость – нет. Выяснить аутентифицируемого в данный момент пользователя можно при помощи файла журнала сайта, в котором фиксируется этот процесс. При использовании учетной записи, не имеющей доступа к указанному ресурсу, появится окно для ввода аутентификационных данных.

Аутентифицированный доступ. Секция Authenticated Access окна Authentication Methods (Методы аутентификации) отображает типы аутентификации, включенные на сайте. Если гостевая учетная запись IIS не имеет доступа к ресурсу, IIS проверяет доступные типы аутентификации.

    Интегрированная аутентификация Windows. Наиболее безопасный способ аутентификации, прекрасно подходит для любых версий браузера Internet Explorer в отсутствие HTTP-proxy. Он встраивается во все браузеры IE, начиная с версии 2.0. Браузеры типа Netscape не поддерживают данный метод аутентификации. Интегрированная аутентификация Windows использует на сервере принцип NT запрос/ответ или протокол Kerberos. При поддержке клиентом и сервером Kerberos и в случае доступности доверенного центра распространения ключей Key Distribution Center (KDC) используется протокол Kerberos; в противном случае – принцип NT запрос/ответ.

Аналитическая аутентификация для серверов доменов Windows. Аналитическая аутентификация доступна при использовании учетных записей Active Directory. Данный метод, хотя и связан с некоторыми опасностями, все же более безопасен, чем базовая аутентификация. Наряду с Active Directory требуется также наличие протокола HTTP 1.1, поэтому аналитическая аутентификация работает только с новыми версиями браузеров, поддерживающими этот протокол. Нужно также, чтобы контроллер домена содержал открытую копию каждого пароля для проверки паролей на наличие случайной информации, отправляемой клиентом. В этом и заключается угроза безопасности. Сохранение паролей в открытом виде на диске представляет собой очевидный риск, поэтому убедитесь, что контроллер домена надежно защищен от вторжений, в противном случае злоумышленник может выяснить необходимые ему пароли. Преимуществом аналитической аутентификации является то, что пароль не передается через сеть в открытом виде, как в базовой аутентификации.

Аналитическая аутентификация представляет собой простой хэш и поэтому работает через сетевые экраны и прокси-серверы. Она доступна и для каталогов Web-based Distributed Authoring and Versioning (WebDAV). Поскольку для аналитической аутентификации нужен домен, при ее выборе становится доступным поле Realm (Область). Если аналитическая (или базовая) аутентификация не включена, поле Realm (Область) недоступно. В этом поле указывается база данных учетных записей пользователей, используемая при аутентификации. Введите в поле имя области с клавиатуры или с помощью кнопки Select (Выбор) выберите нужное имя из списка областей.

Ограничение доступа по IP-адресу или имени домена

IIS позволяет ограничить доступ к сайту пользователей без указания имени пользователя и пароля. С помощью ограничения по IP-адресам указывается конкретная группа пользователей, которой предоставляется или запрещается доступ к сайту. Это используется в следующих случаях.

  • Необходимо обеспечить доступ к сайту определенной группе пользователей.
  • Известны все IP-адреса пользователей, которым предоставляется доступ.
  • Нужно запретить другим пользователям доступ к сайту.
  • Нет необходимости в аутентификации как в средстве контроля доступа, либо нужно использовать еще одно ограничение.

Если вы решили ограничить доступ по IP-адресам, то эти ограничения необходимо настроить. Нажмите на кнопку Edit (Изменить) в области IP Address And Domain Name Restrictions (Ограничения по IP-адресу и доменному имени) во вкладке Directory Security (Безопасность каталога). После нажатия на кнопку Edit (Изменить) откроется диалоговое окно IP Address And Domain Name Restrictions (Ограничения по IP-адресу и доменному имени) (см. рис. 2.13). Необходимо выбрать способ установки ограничения: запретить доступ всем пользователям, кроме отдельных конкретных лиц, либо разрешить доступ всем и наложить запрет на доступ к сайту определенным пользователям. При выборе опции Granted Access (Открыть доступ) подход к ограничению будет лояльным; при выборе опции Denied Access (Запретить доступ) претворится в жизнь принцип «запретить доступ всем, за некоторым исключением».

Рис. 2.13. Диалоговое окно IP Address And Domain Name Restrictions (Ограничения по IP-адресу и доменному имени)

Изменение ограничений по IP-адресу. Для добавления в список IP-адреса нажмите на кнопку Add (Добавить). Появится окно Grant Access (Предоставить доступ) или Deny Access (Запретить доступ) в зависимости от того, какая опция выбрана.

Выбор предоставления или запрета доступа является глобальным решением. Нельзя отказать в доступе некоторым IP-адресам и разрешить доступ другим. Здесь нужно действовать по принципу «все или ничего». Выберите необходимый тип доступа.

  • Один компьютер. Позволяет ввести IP-адрес в список доступа. Таким способом можно последовательно указать несколько компьютеров. Если IP-адрес компьютера неизвестен, нажмите на кнопку DNS Lookup (Поиск по DNS) для определения IP-адреса по имени.
  • Группа компьютеров. Позволяет ввести идентификатор сети и маску подсети для добавления компьютеров в список. С помощью масок подсети переменной длины можно довольно точно определить IP-адреса в списке.
  • Доменное имя. Позволяет ввести имя домена для запрета с него доступа к сайту. Будьте внимательны при использовании этой опции, так как при ее работе выполняется обратный поиск по отношению к каждому клиенту, подключающемуся к серверу, и выяснение того, не является ли он членом запретного домена. Это отрицательно сказывается на производительности и вызывает задержки при аутентификации клиентов. Операции обратного поиска, как правило, требуют большого количества времени для выполнения.

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

Для удаления выделите запись и нажмите на кнопку Remove (Удалить). Для изменения выделите запись и нажмите на кнопку Edit (Изменить).

Безопасность соединения

Область Secure Communications (Безопасность соединения) во вкладке Directory Security (Безопасность каталога) служит для настройки сертификатов при аутентификации и шифровании. Она позволяет создать запросы сертификатов, присваивать, экспортировать, импортировать и резервировать сертификаты, настроить взаимодействие сервера с сертификатами клиентов.

Для настройки сертификата на данном сервере нажмите на кнопку Server Certificate (Сертификат сервера). Отобразится окно Web Server Certificate Wizard (Мастер сертификатов веб-сервера). Нажмите на кнопку Next (Далее) для изменения параметров присвоения сертификата.

Create A New Certificate (Создать новый сертификат). Позволяет настроить запрос для отправки в бюро сертификатов (CA) (см. лекцию 10). Запрос направляется либо в онлайновое бюро сертификатов, либо сохраняется в файле, и затем файл направляется в бюро сертификатов через процедуру регистрации. Для отправки запроса онлайновому бюро сертификатов установите на сервере Certificate Services (Службы сертификатов).

Совет. Корпоративные бюро сертификатов (CA) располагаются в Active Directory и имеют записи SRV в DNS, поэтому вы сможете их найти. Более подробная информация о записях SRV и DNS приведена в лекции 8. При наличии отдельного бюро сертификатов, установленного на данном компьютере, IIS не сможет его распознать. Но это не такая большая проблема, поскольку можно вручную утвердить и установить сертификат (см. лекцию 7 курса «Программирование в IIS»). Рекомендуем вам расположить CA в защищенном месте; уязвимый веб-сервер для этой цели не подходит.

При создании запроса для отправки в бюро сертификатов выполните следующие шаги.

  1. Выберите опцию Create A New Certificate (Создать новый сертификат), затем нажмите на кнопку Next.
  2. Выберите опцию Prepare The Request Now, But Send It Later (Подготовить запрос сейчас, но отправить его позже), затем нажмите на кнопку Next
  3. Введите желаемое имя для сертификата – можете указать любое имя.
  4. Укажите длину сертификата в битах. Можете выбрать значение 512, 1024, 2048, 4096, 8192 или 16384 бита для создания сложного хэша.
  5. Если требуется выбрать поставщика криптографических услуг (CSP) для генерирования данного сертификата, отметьте соответствующую опцию. CSP представляет собой алгоритм, используемый для генерирования сертификатов.
  6. Введите имя вашей организации и укажите подразделение организации. Помните, что при использовании услуг коммерческого бюро сертификатов нужно указать ваше официальное деловое имя. Нажмите на кнопку Next.
  7. Введите общее имя сайта. Оно должно соответствовать имени DNS или NetBIOS, используемому для сайта. Поскольку каждый сертификат соответствует определенному имени, он пригоден только для одного имени. При использовании другого имени DNS или NetBIOS нужно получать новый сертификат. Нажмите на кнопку Next.
  8. Введите данные в полях City (Город), State (Штат) и Country (Страна). Не допускайте сокращений. Нажмите на кнопку Next.
  9. Введите имя и место расположения файла для размещения запроса. Помните об этом файле, поскольку он будет использоваться в запросе на сертификат. Нажмите на кнопку Next.
  10. Следующее окно представляет собой окно отчета. Убедитесь в правильности введенной информации. Нажмите на кнопку Next.
  11. Нажмите на кнопку Finish (Готово) для завершения работы мастера.

Copy Or Move A Certificate From A Remote Server Site To This Site (Копировать или переместить сертификат с удаленного сервера на этот сайт). Возможно получение сертификатов с другого веб-сайта. Данная опция не позволяет выполнить экспортирование сертификата в файл, представляющее собой угрозу безопасности. Для копирования или перемещения сертификата с удаленного веб-сервера выполните следующие действия.

  1. В окне IIS Certificate Wizard (Мастер сертификатов IIS) выберите опцию Copy Or Move A Certificate From A Remote Server Site To This Site (Копировать или переместить сертификат с удаленного сервера на данный сайт), затем нажмите на кнопку Next (Далее).
  2. В диалоговом окне Copy/Move Certificate (Копировать/Переместить сертификат) выберите нужное действие.
  3. Укажите, нужно ли экспортировать сертификат с данного веб-сайта. Нажмите на кнопку Next.
  4. Введите имя компьютера (или перейдите к нему), с которого импортируется сертификат.
  5. Введите аутентификационные данные пользователя, имеющего достаточные разрешения для доступа к сертификату, затем нажмите на кнопку Next.
  6. Укажите расположение сайта, из которого импортируется сертификат. С помощью кнопки Browse (Обзор) выберите это место из списка. Нажмите на кнопку Next.
  7. Проверьте данные в результирующем окне и убедитесь, что импортирован правильный сертификат.
  8. Нажмите на кнопку Next, затем нажмите на кнопку Finish (Готово).

Обработка сертификата. После получения ответа от бюро сертификатов обработайте ожидающий подтверждения запрос на сертификат. Для этого выполните следующие действия.

  1. Запустите Web Server Certificate Wizard (Мастер сертификатов веб-сервера) еще раз, нажав на кнопку Server Certificate (Сертификат сервера) во вкладке Directory Security (Безопасность каталога).
  2. В диалоговом окне Server Certificate (Сертификат сервера) выберите опцию Process The Pending Request (Обработать ожидающий сертификат) и установите сертификат. Нажмите на кнопку Next.
  3. Введите имя файла ответа (или перейдите к его месту расположения), полученного от бюро сертификатов, затем нажмите на кнопку Next.
  4. Введите номер порта SSL, который будет использоваться сайтом. Нажмите на кнопку Next.
  5. Просмотрите окно с отчетом и убедитесь в правильности указанной информации.
  6. Нажмите на кнопку Next, затем нажмите на кнопку Finish (Готово).

Теперь у вашего сайта имеется правильный сертификат, и его можно использовать для порта, указанного при установке файла ответа на запрос сертификата. В случае отсутствия ответа нужно удалить ожидающий запрос. Для этого выполните следующие шаги.

  1. В окне Web Server Certificate Wizard (Мастер сертификатов веб-сервера) выберите опцию Delete The Pending Request (Удалить ожидающий запрос). В следующем диалоговом окне появится сообщение о том, что при продолжении работы мастера станет невозможной обработка ответов на этот запрос, а также предложение отказаться от продолжения.
  2. Нажмите на кнопку Next (Далее) для удаления запроса.
  3. Нажмите на кнопку Finish (Готово) для завершения работы мастера.

Просмотр деталей установленного сертификата. При наличии установленного сертификата просмотрите информацию о нем, нажав на кнопку View Certificate (Просмотр сертификата) во вкладке Directory Security (Безопасность каталога).

  • Вкладка General (Общие). Содержит информацию о сертификате: назначение сертификата, выпустившее его лицо, заказчик сертификата, срок действия сертификата.
  • Вкладка Details (Детали). Содержит очень важные сведения о сертификате. В ней можно просмотреть все свойства сертификата, запустить Certificate Export Wizard (Мастер экспорта сертификатов), включить и отключить цели данного сертификата и указать несколько мест для загрузки из различных бюро сертификатов.
  • Вкладка Certification Path (Путь сертификата). Позволяет просмотреть иерархию сертификатов CA для данного сертификата. Отображает данные о том, является ли сертификат действительным.

Изменение безопасных соединений. С помощью кнопки Edit (Изменить) можно изменить связи сертификата и списки доверия (см. рис. 2.14). Возможна настройка принудительного использования SSL.

Рис. 2.14. Окно Secure Communications (Безопасность соединений)

Опция Require Secure Channel (Требовать безопасный канал) обеспечивает принудительное использование SSL на сайте. Любому браузеру, который не использует протокол SSL, доступ к сайту будет запрещен.

Опция Require 128-Bit Encryption (Требовать 128-битное шифрование) позволяет в принудительном порядке использовать мощное шифрование. Это позволяет предотвратить доступ к сайту браузеров с более слабым шифрованием. На сайте Microsoft доступны обновления для Internet Explorer, реализующие 128-битное шифрование (http://www.microsoft.com/ie). Их может загрузить любой пользователь страны, не входящей в ряд государств, на которые США наложило информационное эмбарго (так как Microsoft является государственной корпорацией США).

Использование клиентских сертификатов реализует на сайте идентификацию подключающихся пользователей. Клиентские сертификаты являются способом контроля доступа. Можно указать следующие настройки.

  • Ignore (Игнорировать). Опция по умолчанию. Любой представленный сертификат клиента не принимается.
  • Accept (Принять). Принимает сертификат. Позволяет настроить связи сертификатов, что не является обязательным. Любой браузер без сертификата клиента получит доступ к сайту.
  • Require (Требовать). Требует использование сертификатов. Любому клиенту без сертификата доступ к сайту запрещен. Для выбора этой опции нужно также отметить опцию Require Secure Channel (Требовать безопасный канал).

Установка связей сертификатов предназначена для аутентификации компьютера клиента посредством учетной записи Windows. Существуют два типа связей: «один к одному» и «много к одному».

  • Связь «один к одному». Используется в случае, если учетная запись пользователя имеет свой собственный сертификат. С учетной записью пользователя могут быть связаны несколько сертификатов, но для реализации данной возможности необходим хотя бы один уникальный сертификат. Сертификат импортируется и связывается с учетной записью, после чего используется для аутентификации пользователя.
  • Связь «много к одному». Используется в случае, если с учетной записью пользователя связано несколько сертификатов. Указывается групповой критерий сертификата клиента с данными о сертификате, например, названием подразделения или организации. Если эти данные совпадают, используется указанная учетная запись.

Вкладка HTTP Headers (Заголовки HTTP)

Во вкладке HTTP Headers (Заголовки HTTP) окна Properties (Свойства) (см. рис. 2.15) настраивается срок действия содержимого, оценка содержимого и типы MIME, добавляются заголовки HTTP.

Рис. 2.15. Вкладка HTTP Headers (Заголовки HTTP)

Установка срока действия содержимого

Опция устанавливает срок действия файлов на веб-сайте и используется для остановки кэширования содержимого по истечении установленного срока. Срок действия при запросе передается вместе с содержимым. Используется объект RESPONSE со свойством CACHECONTROL или EXPIRES для установки срока кэширования и периода действия на страницах ASP, однако при работе с графикой он не работает. Опция выполняет указанные функции с помощью следующих параметров.

Expire Immediately (Немедленное истечение срока действия). Предотвращает кэширование данных запрашивающей стороной. Желательно использовать ее на тестовом сайте или сайте разработки при внесении в код изменений, чтобы старые версии не кэшировались в папках IE. Опция работает и для страниц с динамически изменяемым содержимым, когда пользователь каждый раз получает новый результат, чтобы данные этой страницы не кэшировались в автономных папках.

Expire After (Истечение срока действия после). Устанавливает промежуток времени в минутах, часах или днях. Указывается любое значение в интервале от 1 минуты до 32 767 дней (это всего лишь 90 лет).

Expire On (Истечение срока действия в). Устанавливает срок завершения действия содержимого в определенное время. Нельзя указывать дату окончания действия более раннюю, чем текущая дата. Указывается любая дата, вплоть до 31 декабря 2035 года. Поскольку эта дата обрабатывается клиентом, она контролируется его временной зоной, поэтому возможны некоторые отклонения в сроках завершения действия содержимого в зависимости от зоны.

Особые заголовки HTTP

В этой секции можно создавать особый HTTP-заголовок для отправки клиенту, дополняющий обычный заголовок, получаемый клиентом от сервера. Особый заголовок содержит дополнительные данные, полезные для клиента. Он также поддерживает новый HTTP-стандарт, изначально не поддерживаемый IIS 6.

Для добавления особого заголовка выполните следующие действия.

  1. Нажмите на кнопку Add (Добавить). Появится диалоговое окно Add/Edit Custom HTTP Header (Добавить/Изменить особый заголовок HTTP).
  2. Введите имя особого заголовка в соответствующем поле.
  3. Введите значение особого заголовка в соответствующем поле.
  4. Нажмите на кнопку OK.

Заголовок изменяется посредством кнопки Edit (Изменить) и удаляется с помощью кнопки Delete (Remove). При удалении особого заголовка подтверждение удаления не запрашивается.

Оценка содержимого

Существует возможность оценки содержимого сайта. Это добровольная система, разработанная Ассоциацией оценки содержимого интернета (Internet Content Rating Association, ICRA). ICRA представляет собой некоммерческую, независимую организацию, которая дает родителям возможность принимать объективное решение о том, что их дети могут просматривать в интернете. Данная система состоит из двух частей: сначала сайт оценивается веб-мастером (ICRA не производит оценку), затем конечный пользователь устанавливает параметры браузера для блокировки определенных сайтов по их содержимому.

Используются два стандарта оценки содержимого: старый стандарт RSACi и более новая система ICRA. IIS 6 поддерживает систему RSACi, осуществляющую оценку содержимого по четырем категориям.

После оценки системы веб-мастер предоставляет адрес электронной почты человека, оценившего содержимое, для осуществления обратной связи и обсуждения оценок. Можно устанавливать для оценок срок действия, по истечении которого они прекращают функционирование.

Включение оценки содержимого сайта. Выполните следующие действия.

  1. Откройте диалоговое окно Content Ratings (Оценка содержимого), нажав на кнопку Edit Ratings (Изменить оценку) во вкладке HTTP Headers (Заголовки HTTP).
  2. В окне Content Ratings отметьте опцию Enable Ratings For This Content (Включить оценку данного содержимого).
  3. Выберите ту оценку, которую нужно установить.
  4. Используйте ползунок для установки уровня от 0 до 4.
  5. Установите одну оценки или все вместе (при необходимости).
  6. Введите адрес электронной почты в соответствующем поле. Как правило, здесь указывается адрес, отражающий характерную учетную запись (например,webmaster@thisdomain.com ).
  7. Укажите срок действия. Дата должна быть больше текущей. Укажите любую дату до 31 декабря 2035 года.
  8. Нажмите на кнопку OK.
Типы MIME

Многоцелевые расширения почты интернета (MIME) определяют типы файлов, работу клиентов с которыми обслуживает IIS. IIS 6 обслуживает только файлы, связанные со сценариями или соответствующие определенному типу MIME. При обнаружении IIS расширения, для которого отсутствует связь MIME, клиент получает ошибку 404 «Not Found», и сервер фиксирует код подсостояния, равный трем.

Примечание. В правиле MIME есть одно исключение: текстовые файлы с расширением .txt, не являющиеся файлами типа MIME или связанными со сценарием, обслуживаются IIS.

Типы MIME настраиваются на глобальном уровне, на уровне веб-сайта или каталога, причем наследуются в порядке уменьшения уровней. Рассмотрим пример добавления связи MIME.

Предположим, что в интернете нужно опубликовать каталог с файлами журналов. Они имеют расширение .log и формат обычного текста. IIS не поддерживает по умолчанию связи MIME для файлов .log, поэтому придется добавить соответствующую связь.

  1. Нажмите на кнопку MIME Types (Типы MIME) во вкладке HTTP Headers (Заголовки HTTP) на нужном уровне (глобальном, для сайта или каталога, в зависимости от выбранного параметра в MMC).
  2. Нажмите на кнопку New (Создать).
  3. В диалоговом окне MIME Type (Тип MIME) введите расширение файла в поле Extension (Расширение). В данном случае укажите расширение .log.
  4. Введите тип MIME в соответствующем поле. Поскольку файл имеет формат обычного текста, подходящим типом MIME будет text/plain.
  5. Нажмите на кнопку OK. Новое расширение добавится в список.
  6. Нажмите на кнопку OK, затем еще раз.

Теперь ваш каталог (сервер, сайт) настроен на обслуживание файлов .log. Клиенты, выбирающие файл в этом каталоге, будут видеть его в своих браузерах. В данном окне можно изменять и удалять связи с типами MIME.

При неправильной настройке типа MIME IIS будет обслуживать файл, однако система не будет знать, какие действия выполнять с файлом. Пользователям IE придется выбирать программу для открытия данного файла из предлагаемого списка.

Примечание. Как выяснить соответствие типа MIME рассматриваемому файлу? Документы RFC2045 и RFC2046 определяют поля для типов MIME, а также порядок присвоения и просмотра типов агентством IANA (Агентство по выделению имен и уникальных параметров протоколов интернета). Это та же самая организация, которая назначает IP-адреса. Полный перечень типов расположен на сайте организации по адресу http://www.iana.org.

Вкладка Custom Errors (Особые ошибки)

Вкладка Custom Errors (Особые ошибки) (см. рис. 2.16) служит для изменения стандартных сообщений об ошибках, отправляемых IIS. В ней отображается связь каждой ошибки HTTP с кодом подсостояния. Во вкладке можно создать особые сообщения об ошибках и задать сценарии, выполняющиеся при возникновении ошибок.

Рис. 2.16. Вкладка Custom Errors (Особые ошибки)

Особые сообщения об ошибках используются для составления отчетов об ошибках, они помогают в устранении проблем. Например, создан тип сообщения, который соответствует сценарию ASP для уведомления веб-мастера. Сценарий записывает данные об инциденте в журнал, отображает на экране сообщение о возникновении неполадки конечному пользователю и перенаправляет его на страницу по умолчанию. При использовании сценариев сообщения об ошибках становятся полезными в диагностировании проблем, возникающие на веб-сайте.

Для выбора доступны три типа сообщений.

  • Default (По умолчанию). Ошибка по умолчанию, запрограммированная в IIS. Позволяет восстановить исходное состояние, если особая ошибка больше не нужна.
  • File (Файл). Позволяет выбрать файл, используя его полное имя (например, C:\windows\help\errors\iiserror404.asp ).
  • URL. Позволяет направить клиента на страницу сайта по абсолютному пути URL (начиная с верхнего уровня сайта). Следовательно, страницы ошибок HTTP должны находиться на том же сайте, хотя они и могут располагаться в виртуальном каталоге. При вводе URL в неправильном формате отобразится сообщение об ошибке.
Изменение свойств особых ошибок

Для изменения свойств особых ошибок выполните следующие действия.

  1. Выделите ошибку HTTP, затем нажмите на кнопку Edit (Изменить). Появится окно Edit Custom Error Properties (Изменение свойств особой ошибки).
  2. В ниспадающем меню выберите тип сообщения для данной ошибки.
  3. При использовании файла укажите путь к этому файлу или перейдите в его место расположения.
  4. При использовании URL введите абсолютное имя файла.
  5. При выборе опции Default (По умолчанию) ничего указывать не нужно.
  6. После выбора и настройки опции нажмите на кнопку OK.
  7. Нажмите на кнопку OK.

Некоторые сообщения об ошибках нельзя связать с URL

Некоторые сообщения об ошибках нельзя связать с URL. Ниже приведен список таких сообщений.

  • 401.1 Unauthorized: Access is denied due to invalid credentials (Доступ запрещен по причине неверного имени пользователя и пароля).
  • 401.2 Unauthorized: Access is denied due to server configuration favoring an alternate authentication method (Доступ запрещен по причине того, что в конфигурации сервера указан другой метод аутентификации).
  • 401.3 Unauthorized: Access is denied due to an ACL set on the requested resource (Доступ запрещен по той причине, что на запрашиваемом ресурсе расположен список ACL).
  • 401.4 Unauthorized: Authorization failed by a filter installed on the web server (Авторизация не проведена из-за фильтра, установленного на веб-сервере).
  • 401.5 Unauthorized: Authorization failed by an ISAPI/CGI application (Авторизация отменена приложением ISAPI/CGI).
  • 407: Proxy Authentication Required (Требуется аутентификация прокси).
  • 502: Bad Gateway (Ошибка шлюза).

Вкладка BITS Server Extension (Серверное расширение BITS)

Служба интеллектуальной фоновой передачи (Background Intelligent Transfer Service, BITS) позволяет осуществлять медленную передачу большого количества информации в течение длительного времени. Передача данных выполняется в то время, когда сеть не используется, что не сказывается на производительности сети. Вкладка BITS Server Extension (Серверное расширение BITS) доступна, если установлен соответствующий компонент. (Опция установки компонента находится в папке Add/Remove Windows Components [Установка и удаление компонентов Windows]. Дополнительную информацию см. в лекции 1.) IIS использует серверные расширения BITS для получения отгружаемых клиентами в виртуальный каталог файлов. Клиент должен иметь программное обеспечение, позволяющее отгружать файлы при помощи технологии BITS; IIS лишь настраивает сервер на прием файлов, передаваемых посредством BITS. При инициализации передачи BITS управляет ею до тех пор, пока существует сетевое подключение. Если сетевое соединение прерывается, BITS приостанавливает передачу и возобновляет ее с места приостановки после восстановления соединения. Данные передаются независимо от отключений и перезагрузки компьютеров. BITS отслеживает использование сети на компьютере-клиенте и осуществляет передачу при наличии достаточной части полосы пропускания канала.

Рис. 2.17. Вкладка BITS Server Extensions (Серверные расширения BITS)

Allow Clients to Transfer Data to This Virtual Directory (Разрешить клиентам передавать данные в этот виртуальный каталог)

Опция настраивает виртуальный каталог на прием файлов, передаваемых через BITS. При выборе опции Use Default Settings (Использовать настройки по умолчанию) в данной вкладке нельзя настроить какие-либо опции. Опция Customize Settings (Изменить настройки) позволяет внести изменения в параметры. Параметры устанавливаются на уровне веб-сайта в виртуальных каталогах, предназначенных для приема данных посредством технологии BITS. Виртуальный подкаталог наследует параметры родительского виртуального каталога.

Особые настройки

В области Custom Settings (Особые настройки) настраивается максимальный размер файла, передаваемого с помощью BITS, с помощью опции Maximum File Size (Максимальный размер файла). Подразумевается максимальный размер одного файла. Укажите значение от 1 байта до 16 777 215 терабайт. (Искренне желаю вам дожить до момента выпуска новых ПЗУ объемом 16 экзабайт.) Настраивается период действия незавершенных передач файлов до их удаления процессом очистки. Выберите любой интервал времени от 1 с (в этом случае любая незавершенная передача удаляется при запуске очистки диска) до 49 710 дней, по прошествии которых жесткие диски объемом 16 экзабайт будут уже давно пройденным этапом.

Включение поддержки набора серверов

Набор серверов BITS представляет собой группу серверов, на которые клиент может отгружать файлы. Хранилище файлов настраивается на работу с набором серверов двумя способами.

  • Серверы используют одно сетевое место расположения для виртуального каталога.
  • Серверы используют свое собственное локальное хранилище в качестве каталога отгрузки.

При выборе второй опции откроется доступ к опциям поддержки набора серверов.

  • Reconnect To IP Address (Повторное подключение к IP-адресу). Позволяет клиенту узнать IP-адрес для повторного подключения при возобновлении передачи файлов. При использовании серверами локального хранилища клиенту, скорее всего, потребуется повторное подключение к тому же серверу для продолжения передачи файла, а не создание нового подключения к другому серверу. Здесь можно указывать имя DNS, если для этого имени присутствует одна запись A (циклический DNS направит клиента на несколько серверов, и повторное подключение потеряет смысл).
  • Use Original IP Address After (Использовать исходный IP-адрес после). Настраивает интервал времени для повторного подключения. Этот параметр обычно синхронизируется с периодом, установленным в настройках очистки жесткого диска. В случае удаления незавершенной передачи файла повторное подключение к этому же серверу не имеет смысла. Клиенту потребуется повторное подключение с использованием исходного URL по прошествии указанного срока. Укажите любой интервал – от 1 секунды до 49 710 дней.
Разрешение уведомлений

Параметр включает уведомления для данного виртуального каталога, позволяющие передавать приложению сообщение о завершении передачи. Доступны следующие параметры.

  • Notification Type (Тип уведомления). При выборе отправки имени файла сервер передает полный путь файла по URL уведомления. При выборе отправки данных файл передается сервером по URL уведомления с использованием метода HTTP POST.
  • Notification URL (URL уведомления). Указывает URL, используемый для отправки уведомлений. Укажите полный URL или относительный URL.
Удаление незавершенных файлов

В некоторых случаях клиент не возобновляет незавершенную передачу файла. IIS периодически проводит «очистку» каталогов, чтобы не заполнять дисковое пространство этими незавершенными файлами. Трудность состоит в обеспечении достаточно большого промежуток времени для завершения передачи файлов клиентами, редко подключающимися к серверу, но и, в то же время, достаточно короткого, чтобы жесткий диск не заполнялся незавершенными файлами, загрузка которых не будет закончена.

  • Schedule Cleanup (Назначение очистки). Назначает периодически выполняемую задачу для проверки наличия незавершенных файлов. При нахождении незавершенного файла его дата сопоставляется со значением срока удаления в поле Delete Incomplete Jobs After (Удалять незавершенные задания после). Если файл старше этого значения, он удаляется, и задание отменяется.
  • Run Cleanup Now (Выполнить очистку сейчас). Немедленно запускает процесс очистки. В противном случае очистка выполняется так же, как и при выборе опции Schedule Cleanup.

Вкладка Server Extensions 2002 (Серверные расширения 2002)

Вкладка (см. рис. 2.18) доступна только на уровне сайта, если установлены серверные расширения FrontPage 2002 Server Extensions. По умолчанию при открытии вкладки появляется сообщение о том, что серверные расширения для данного веб-сайта не включены.

Рис. 2.18. Вкладка Server Extensions (Серверные расширения)

  1. В консоли IIS MMC выберите команду Action\All Tasks\Configure Server Extensions 2002 (Действие\Все задачи\Настройка Server Extensions 2002).
  2. Появится окно Internet Explorer с запросом входных данных. Введите аутентификационные данные с правами администратора.
  3. Откроется веб-сайт, для которого необходимо включить серверные расширения FrontPage Server Extensions 2002.
  4. Убедитесь, что в поле Administrator (Администратор) отображается нужная учетная запись, затем нажмите на кнопку Submit (Отправить).
  5. На веб-сайте Server Administration, открывшемся в окне браузера, настраиваются серверные расширения FrontPage Server Extensions.

После включения серверных расширений во вкладке отобразится кнопка Settings (Параметры), с помощью которой открывается веб-сайт Server Administration (Администрирование сервера).

Веб-сайт Server Administration (Администрирование сервера)

На веб-сайте Server Administration (Администрирование сервера) настраиваются серверные расширения FrontPage. При открытии вкладки Server Extensions 2002 (см. рис. 2.18) вы увидите кнопку Settings (Параметры); в консоли IIS MMC будут недоступны параметры конфигурации. Нажмите на кнопку Settings для перехода на сайт FrontPage Server Administration (Администрирование сервера FrontPage) (см. рис. 2.19). Сначала отобразится страница Change Configuration Settings (Изменить параметры конфигурации). В верхней части страницы расположены гиперссылки администрирования, с помощью которых осуществляется переход на страницу администрирования сайта и к справке.

Рис. 2.19. Страница Change Configuration Settings (Изменение параметров конфигурации) сайта FrontPage Server Administration (Администрирование сервера FrontPage)

Страница изменения параметров конфигурации

На странице Change Configuration Settings (Изменение параметров конфигурации) вы можете настроить общие параметры сайтов данного сервера. Для этого нужно быть членом локальной группы Administrators (Администраторы).

Enable Authoring (Включить авторизацию). Включенная опция указывает на использование клиентами FrontPage для отгрузки содержимого на свои веб-сайты. По умолчанию при установке Server Extensions 2002 данная опция включена. Ее отключение запретит авторам сайтов публиковать новое содержимое. Администратор может воспользоваться этой возможностью при управлении или обновлении содержимого, если на это время нужно запретить публикацию. С точки зрения безопасности опцию не следует включать для работающего сайта, за исключением времени, когда производится отгрузка содержимого на сайт.

Mail Settings (Параметры почты). Используется для настройки использования программой FrontPage служб электронной почты сервера. При настройке параметров SMTP указывается имя сервера SMTP или его IP-адрес. Нельзя указывать имя пользователя и пароль, поэтому убедитесь, что сервер принимает сообщения без запроса этих данных. С помощью опции настраиваются адреса From (От) и Reply (Ответ), кодировка сообщений и набор символов, если сервер электронной почты имеет другие настройки.

Performance Tuning (Настройка производительности). Серверные расширения FrontPage позволяют настраивать кэширование веб-сайтов. При большом количестве страниц и документов кэширование сокращает среднее время отклика сайта. Измените один из параметров для настройки размера кэша:

    Web-наборы. Позволяют распределять запросы по нескольким рабочим процессам в данном пуле приложений, достигая большего уровня производительности и надежности, поскольку приложение будет использовать несколько рабочих процессов, и ошибка в одном из них не повлияет на работу остальных. Параметр Maximum Number Of Worker Processes (Максимальное число рабочих процессов) устанавливает количество рабочих процессов в данном пуле приложений. Укажите любое значение от 1 до 4 000 000.

Илон Маск рекомендует:  Как я могу скрыть или показать окно
Предупреждение. Установка слишком большого числа рабочих процессов отрицательно скажется на производительности системы, поскольку каждый процесс занимает около 5 Мб памяти только при запуске. Имейте это в виду при указании максимального количества выполняемых на сервере рабочих процессов.
Вкладка Health (Состояние)

Во вкладке Health (Состояние) (см. рис. 2.25) настраиваются параметры, поддерживающие рабочее состояние данного пула приложений, и параметры обнаружения проблем.

Рис. 2.25. Вкладка Health (Состояние)

  • Enable Pinging (Включить пинг-запросы). Настраивает систему на периодическую отправку пинг-запросов рабочим процессам. Отсутствие ответа от рабочего процесс означает наличие в нем проблемы; IIS уничтожает данный процесс и вместо него создает новый. Укажите любое значение от 1 до 4 000 000 с.
  • Rap >Ниже приведено описание работы рассматриваемого процесса.
  1. В рабочем процессе возникает ошибка.
  2. IIS записывает событие о неожиданном завершении работы процесса в журнал приложений, указывает идентификационный номер процесса и код выхода.
  3. IIS перезапускает рабочий процесс автоматически при поступлении другого процесса.
  4. Действия повторяются до достижения порогового значения.
  5. По достижении порогового значения IIS записывает в журнал приложений событие об автоматическом отключении пула приложений из-за многократного возникновения ошибок.
  6. Все клиенты, использующие данный пул приложений, получат сообщение об ошибке 503 «Service Unavailable» («Служба недоступна»).
  7. Действия повторяются до тех пор, пока пул приложений не будет остановлен и перезагружен.

Временные пределы запуска и отключения. Рабочие процессы не уничтожаются сразу после остановки, им требуется какое-то время и для загрузки. Для остановки рабочего процесса ему отправляется запрос на аннулирование, затем отводится время для завершения текущих операций и выхода из очереди, и только потом процесс аннулируется. При рециркуляции созданный новый процесс готов приступить к работе еще до завершения старого процесса, чтобы не прерывать работу службы. Иногда рабочий процесс останавливается не до конца, или возникают проблемы при его запуске. Временные пределы используются для настройки периода времени, в течение которого IIS ожидает возникновения проблемы.

  • Startup Time Limit (Предел времени загрузки). Служит для настройки промежутка времени, в течение которого IIS ожидает запуск рабочего процесса. Укажите любой интервал времени от 1 до 4 000 000 с.
  • Shutdown Time Limit (Предел времени отключения). Служит для настройки промежутка времени, в течение которого IIS ожидает запланированное завершение рабочего процесса. Укажите любой интервал времени от 1 до 4 000 000 с.
Вкладка >Во вкладке Identity (Идентификация) (см. рис. 2.26) указывается учетная запись безопасности, используемая рабочим процессом в пуле приложений. По умолчанию рабочие процессы выполняются как сетевые службы (включена опция Network Service [Сетевая служба]) c ограниченными правами в операционной системе.

Рис. 2.26. Вкладка Identity (Идентификация)

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

  • Network Service (Сетевая служба). Параметр по умолчанию, являющийся наиболее безопасным и рекомендуемый для выполнения рабочих процессов. В этом случае невозможен непосредственный доступ рабочих процессов к операционной системе и управление ею.
  • Local Service (Локальная служба). Обеспечивает более широкий набор прав в операционной системе, чем предыдущая опция. Предоставляет право доступа к операционной системе, но запрещается доступ к объектам за пределами сервера. Запрещается и взаимодействие с рабочим столом.
  • Local System (Локальная система). Обеспечивает более широкий набор прав, чем Local Service (Локальная служба). На самом деле опция предоставляет права полного доступа ко всей системе.

Все три учетные записи входят в группу IIS_WPG, находящуюся в локальной системе, права на доступ к которой присваиваются процессам. Если рабочему процессу требуется больше прав, чем он имеет в настоящий момент, включите эти права для группы IIS_WPG. При настройке учетной записи для рабочего процесса убедитесь в том, что эта учетная запись является членом группы IIS_WPG.

  • Configurable (Настраиваемая). Указывает учетную запись, под которой будут выполняться рабочие процессы. Введите имя учетной записи или нажмите на кнопку Browse (Обзор) и выберите учетную запись в появившемся окне.

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

IIS 7.0: краткая инструкция для системного администратора. Часть 1 – установка.

Как я и обещал в посте несколько дней назад, начинаю писать серию постов типа инструкций шаг за шагом «как это установить и настроить» для тех админов, у которых действительно мало времени «на найти и разобраться», да еще если все это на английском языке. Кстати, кому таки не лениво – вот здесь очень хорошая подборка англоязычных документов под общим названием «Windows Server 2008 Step-by-Step Guides» — очень полезно в работе. Надеюсь, найдутся время и ресурсы, чтобы их тоже «отфильтровать» и сделать на их базе русские версии.

Если вам не интересны мои мысли «почему я пишу про IIS 7.0», можете смело пропустить пару абзацев.

В ближайший месяц я буду писать о веб-платформе от Microsoft, и в основном это будет касаться администрирования Internet Information Services 7.0 (IIS 7.0), входящего в состав Windows Server 2008. Это не значит, что я не буду писать ни о чем другом – конечно буду, у меня масса планов и тем с барселонского TechEd IT Forum 2008, в основном по направлению Windows Server 2008 R2, просто про администрирование IIS7 буду писать в этот месяц намного чаще и более последовательно, чем я это делал ранее. Поэтому даже те, для кого тема IIS7 не интересна, смогут как минимум раз в неделю находить у меня на блоге что-то интересное по другим тематикам.

Почему именно IIS 7.0? Здесь несколько причин. Во-первых, в уже упомянутом сборнике документов «шаг за шагом» «Windows Server 2008 Step-by-Step Guides» по странному стечению обстоятельств документа по IIS 7.0 почему-то нет. Во-вторых, как показывает опыт семинаров TechNet в Украине – знания, и даже можно сказать – представления многих админов о технологиях Microsoft для веб базируются на «сказках-страшилках» конца прошлого века, и хотелось бы показать всем желающим простой путь попробовать все технологии самостоятельно, без каких-то предрассудков и прочих ОБС. В-третьих – мне самому, человеку, который достаточно долгий период своей жизни занимался вебом вообще и IIS в частности – а я помню и IIS 2.0, и 3.0, и 4.0 и, конечно же, 5.0 – эта тема близка и интересна, и могу сказать, что за 10 лет в этом направлении Microsoft сделал существенные, даже можно сказать – эпохальные шаги вперед. Потому хотелось бы поделиться и опытом, и знаниями в этой прогрессирующей области с коллегами. В-четвертых – небольшой сюрприз в рамках проводимой в Украине акции для тех, кто разворачивает и управляет веб-серверами под управлением продуктов Microsoft – украинский офис Microsoft проводит акцию, по которой вы можете получить лицензионный Windows Server 2008 Web Edition (коробочная версия) бесплатно для хостинга ваших проектов и сайтов в Интернете. Так что торопитесь получить такой легальный продукт – пишите через блог на почту. И, наконец, в-пятых – в Киеве проводится полигон по веб-технологиям Microsoft, в том числе и IIS 7.0, так что мои статьи послужат хорошим фоном для такого мероприятия.

Ну, вроде это вcе наиболее веские причины писать в ближайший месяц о IIS 7.0. Кроме одной – зачем вообще админу знание IIS 7.0, который, в принципе, больше является платформой для разработчиков, на которой они делают свои веб-проекты? Проблема в том, что, как показывает опыт, разработчики не очень «напрягаются» созданием архитектуры и проработкой деталей веб-проекта, таких, как безопасность, администрирование, масштабирование и т.п. будущего работаеющего решения. И все это становится головной болью админа. Другая головная боль – это работодатели, которые часто под словом «компьютерщик» понимают, что человек может и спаять сгоревшую плату, и сетку настроить, и программку бухгалтерскую написать. И конечно же – веб сайт родной фирмы «Рога и Ко» сделать – как же без него. А то, что в ИТ отрасли есть глубокая специализация – никого не волнует. И вот потом и пишет мне в Live Messenger такой админ – «Игорь, а что делать?! За что хвататься?!», или если такого «Игоря», который бы подсказал, нет рядом – начинается такое.

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

Часть 1. Установка IIS 7.0

Первый вопрос, который мне задают – что такое веб сервер под Windows, что нужно установить? Ответ – вебсервер под Windows – это служба IIS 7.0. Следующий вопрос – где взять IIS 7.0, откуда скачать? Ответ очень простой – IIS 7.0 (как и предыдущие версии, начиная с IIS 5.0) интегрирован в саму серверную ОС Microsoft Windows Server 2008 (а предыдущие версии IIS – соответственно в Windows Server 2003 и Windows 2000) и устанавливается как роль Windows Server. Тогда более тривиальный вопрос – где взять «настоящий» Windows Server 2008? Пробную версию Windows Server 2008 для всех экспериментов и тестирования рекомендую брать только с сайта Microsoft http://www.microsoft.com/windowsserver2008 — проверенная и гарантированно правильная версия (только не забудьте установить все обновления). Серийный номер для Windows Server 2008 не требуется – вы просто при установке в мастере установки оставляете его пустым и на вопрос, хотите ли вы все же его заполнить – гордо отвечаете НЕТ. Фактически, если вы при установке или в ходе эксплуатации таки введете настоящий продуктовый номер – вы получите «настоящую» версию. Версия без введенного серийного номера работает 60 дней, после чего требует активации. Мало кто любит читать иструкции при загрузке файлов, особенно те, которые написаны мелким шрифтом – на самом деле, на странице загрузке есть ссылка на инструкцию, какой скрипт надо запустить, чтобы сбросить счетчик активации Windows снова на 60 дней. Такую операцию надо не забыть сделать до истечения 60дневного срока (например, на 59й день эксплуатации). Всего вы можете посторить операцию сброса счетчика 3 раза – т.е. пробную версию можно эксплуатировать 240 дней, что вполне достаточно с тем, чтобы распробовать плюсы и минусы системы. Ну а для желающих уже сейчас эксплуатировать лицензионный Windows Server 2008 для своих веб-проектов – напоминаю про акцию, пишите.

Теперь о выборе редакции, которых доступно аж 4 – Datacenter, Enterprise, Standard, Web Edition. Пожалуйста, подходите более ответственно к их выбору. Зачем, ну зачем использовать Enterprise для запуска веб-сайтов – «шоб було?». Для таких задач есть оптимизированная редакция Web Edition. Сравнение возможностей разных редакций можно найти там же, на официальном сайте http://www.microsoft.com/windowsserver2008. Кроме того, некоторые соображения по использованию лицензионных соглашений и виртуализации в разных редакциях я написал на этом блоге ранее.

После установки экземпляра Windows Server 2008 и его конфигурации (если это также вызывает затруднения – смотрим видео с семинара по Windows Server 2008) переходим непосредственно к установке IIS 7.0. Что нового в IIS 7.0, какие модули включены в него и т.д. – я рассматривать не буду, все теоретические выкладки можно найти в электронной версии журнала TechNet Magazine, которая выходит в том числе и на русском. IIS 7.0 были посвящены 2 статьи в мартовском и июльском номерах журнала. Рекомендую ознакомиться с ними перед практическим применение – знание теории, пусть даже в сжатой форме весьма полезно.

Основным нововведением в направлении установки различных компонент и служб в Windows Server 2008 является понятие «роли». Роль представляет из себя набор всех необходимых компонент, настроек системы, безопасности и т.п., которые необходимы для выполнения определенной задачи. Кроме того, имеется также информация о взаимодействии ролей между собой – одна роль может работать как подмножество другой и, наоборот – роли могут конфликтовать между собой – об этом администратор будет уведомлен при установке такой роли поверх уже существующих. Установку и конфигурацию всего необходимого система выполняет автоматически при выборе конкретной роли. Такой подход гарантирует, что даже в случае ошибки администратора, связанной с установкой той или иной роли, не требуемой в текущий момент – система будет функционировать нормально и это не затронет работоспособность других ролей. Как впрочем, это также существенно упрощает и сам подход к управлению системой Windows Server 2008 в целом.

Управление ролями осуществляется через стандартную оснастку управления Windows Server 2008 – Server Manager или в процессе начальной конфигурации сервера через Initial Configuration Tasks.

IIS 7.0 устанавливается как роль Windows Server 2008. Для этого требуется:

1. Запустить оснастку Server Manager из меню Start или из панели Quick Launch. Server Manager по умолчанию стартует автоматически при входе администратора в систему. Server Manager является основным инструментом управления сервером Windows Server 2008.

2. В оснастке на стартовой странице убедиться, что сервер сконфигурирован правильно. Желательно проверить наличие статического IP адреса. Если он не установлен, его можно поменять тут же, из консоли Server Manager, открыв в правой панели по линку «View Network Connections» сетевые интерфейсы.

3. Выбираем в левой панели Server Manager пункт Roles, в правой панели видим список текущих ролей. В зависимости от редакции ОС и установленных ролей список может варьироваться. В данном примере ни одна роль не установлена.

4. Для установки новой роли используем в правой панели в разделе «Roles Summary» линк «Add Roles».

5. Запускается мастер установки ролей «Add Roles Wizard», пропускаем первую страницу «Before You Begin» мастера, нажав кнопку «Next >»

6. На странице «Select Server Roles» в списке ролей выбираем роль «Web Server (IIS)». Список ролей может отличаться в зависимости от редакции. Данный список соответствует редакции Windows Server 2008 Enterprise Edition x64.

7. При выборе роли «Web Server (IIS)» мастер автоматически предлагает установить сервисы, которые требуются для функционирования веб сервера. Это службы активации процессов, фактически, они обеспечивают среду исполнения процессов, обслуживающих вебсайты. Соглашаемся с установкой данных служб путем нажатия кнопки «Add Required Features» и нажимаем кнопку «Next >» в мастере.

8. На странице «Select Role Services» отображается список всех доступных модулей (сервисов), входящих в состав IIS 7.0, представляющих 3 большие группы – Web, Management и FTP – и внутри сгруппированых по назначению – общие модули для поддержки HTTP Common HTTP Features, модули для исполнения сценариев и приложений Application Development, модули управления журналированием и диагностикой Health and Diagnostics, модули обеспечения безопасности Security, производительности Performance, модули управления и совместимости с предыдущей версией IIS 6.0 Management Tools, и, наконец, модули FTP. По умолчанию роль веб сервера IIS 7.0 устанавливается и конфигурируется в минимальном наборе из 9 модулей:

a. только для работы со статическим HTML контентом (модули из Common HTTP Features),

b. только с подключением анонимных пользователей и с фильтрацией вредоносных запросов (Security),

c. с базовыми модулями для журналирования запросов к вебсайтам на сервере и просмотра очереди запросов (Health and Diagnostics),

d. с модулем сжатия статического контента при передаче страниц клиенту HTTP (Performance),

e. и консоли администрирования в режиме локального подключения к веб серверу IIS Management Console.

9. На этом шаге можно добавить дополнительные модули в конфигурацию согласно задачам будущих вебсайтов, которые будут работать на данном вебсервере. Не рекомендуется «просто так» добавлять модули, особенно, если вы не знаете их назначение. Краткое описание каждого модуля можно найти прямо на странице (в правом верхнем углу), которое отображается, когда вы выбираете модуль в списке. Не стоит торопиться (или, наоборот, переставлять всю систему, если установили лишнее) – вы всегда можете доустановить модули к уже установленной роли, или удалить уже установленные модули. Функции, выполняемые наиболее важными модулями, а также их настройку, мы рассмотрим отдельно.

10. При отметке отдельного модуля для добавления, также, как и при выборе роли, мастер автоматически проводит проверку всех связей и зависимостей и предлагает установить дополнительные модули, без которых функционирование выбраного невозможно. В данном примере для установки выбран модуль ASP.NET и мастер автоматически запрашивает разрешение на установку других модулей и служб, необходимых для его работы. Соглашаемся с установкой данных служб и модулей путем нажатия кнопки «Add Required Role Services». По окончанию выбора всех модулей нажимаем кнопку «Next >» в мастере.

11. На странице «Confirm Installation Selection» отображается для подтверждения информация о всех выбранных модулях, которые будут установлены. Также отображаются служебные и информационные сообщения рекомендательного характера. Например, рекомендация после установки роли IIS 7.0 выполнить обновления ОС или установить Windows System Resource Manager (WSRM), который позволяет обеспечить распределение ресурсов системы при выполнении веб-приложений. Нажатие кнопки «Next >» на этой странице устанавливает весь указанный перечень модулей.

12. По окончании процесса установки мастер отображает станицу с результатами установки, на которой, в зависимости от предыдущих настроек системы и выбранных модулей, может потребоваться перезагрузка сервера.

13. После закрытия окна мастера установки роли в левой панели консоли Server Manager в разделе «Roles» среди других ролей появляется подраздел «Web Server (IIS)». В правой панели отображается информация о состоянии всех установленных ролей.

14. Выбираем подраздел «Web Server (IIS)» в левой панели Server Manager, в правой панели отображается информация о работе роли веб сервера. Здесь представлены:

a. Events: агрегированный список записей из всех журналов событий ОС за последние 24 часа, имеющих отношение к работе веб служб,

b. System Services: список всех системных сервисов, обеспечивающих функционирование данной роли и с возможностями по управлению ими и мониторингу их состояний,

c. Role Services: в данном случае – список всех модулей IIS 7.0 с указанием установлен данный модуль или нет и с возможностями старта мастера установки/удаления модулей данной роли (о котором мы говорили выше),

d. Resources and Support: наиболее интересный раздел информации о каждой роли, который содержит в себе базу знаний с рекомендациями по дополнительной более тонкой настройке той или иной роли для отдельных сценариев использования. Рекомендуется к широкому использованию.

Таким образом, если в п.14 вы видите, что ваша роль работает без ошибок в журналах, все требуемые сервисы работаю (не отображается информация о их аварийной остановке), все необходимые для ваших задач модули отображаются в списке как установленные – первый шаг к использованию веб сервера под управлением IIS 7.0 вы сделали – вы его установили.

8. Атаки против IIS 5

Атаки против IIS 5

По возрастающей популярности с атаками на протоколы NetBIOS или 8MB могут сравниться лишь многочисленные методологии атак на US (Internet Information Server), поскольку это единственная служба, обязательно присутствующая в подключенных к Internet системах под управлением NT/2000. Эта служба встроена в операционные системы семейства Windows 2000. По умолчанию сервер IIS 5.0 и службы Web доступны во всех серверных версиях. И хотя вопросы, связанные с хакингом в Web, будут более подробно рассмотрены в главе 15, мы не можем обойти своим вниманием атаку на Internet Information Server, широко обсуждаемую компьютерной общественностью перед самым выходом в свет этой книги.

Проблема US «Translate: f»

Проблема, связанная со вскрытием кода (showcode) не нова: она была свойственна и более ранним версиям Internet Information Server. Она получила название Translate: f и была описана Даниелем Дочкалом (Daniel Docekal) в бюллетене Bugtraq. Эта проблема является хорошим примером ситуации, когда взломщик направляет Web-серверу неожиданные данные и тем самым заставляет его выполнять неприемлемые в обычных условиях действия. Это классический вид атаки против протоколов обработки документов типа HTTP.
Атака Translate: f состоит в отправке искаженного запроса GET протокола HTTP на выполнение серверного сценария или обработку другого файла аналогичного типа (например, файлов с расширением .ASP (Active Server Pages) или global.asa). Эти файлы предназначены для выполнения на сервере, а не на клиентском компьютере. Видоизменение запроса приводит к тому, что Internet Information Server направляет содержимое файла удаленному клиенту, а не выполняет его с использованием соответствующего механизма обработки сценариев. Ключевым свойством искаженного запроса GET для протокола HTTP является наличие специального заголовка, завершающегося выражением Translate: f, и использование адреса URL, завершающегося символом обратной косой \. Ниже приводится пример такого запроса (строка [CRLF] означает символ возврата каретки/перевода строки, который в шестнадцатеричной системе счисления имеет код ODOA). Обратите внимание на обратную косую после имени файла global .asa и заголовок Translate: f.

GET/global.asa\ HTTP/1.0
Host: 192.168.20.10
User-Agent: SensePostData
Content-Type: application/x-www-form-urlencoded
Translate: f
[CRLF]
[CRLF]

Если путем конвейерной обработки текстовый файл с этой информацией направить (с помощью утилиты netcat) на уязвимый сервер IIS, то в командной строке отобразится содержимое файла /global, as a:

D:\ type trans.txtI nc -nw 192.168.234.41 80
(UNKNOWN) [192.168.234.41] 80 (?) open
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Wed, 23 Aug 2000 06:06:58 GMT
Content-Type: application/octet-stream
Content-Length: 2790
Etag: «0448299fcd6bf1:bea»
Last-Modified: Thu, 15 Jun 2000 19:04:30 GMT
Accept-Ranges: bytes
Cache-Control: no-cache

PROG x/object>
(«ConnectionText») = «
DSN=Phone;U > («ConnectionText») = «
DSN=Backend;U > («LDAPServer») = «LDAP://Idap.bigco.com:389»
(«LDAPUserlD») = «cn=Admin»
(«LDAPPwd») = «password»

Мы слегка модифицировали содержимое файла global.asa, чтобы продемонстрировать наиболее характерную информацию, которую может извлечь из него взлом-шик. К сожалению, на многие узлах до сих пор встраивают пароли приложений в ASP и ASA-файлы, повышая тем самым вероятность последующего проникновения хакеров в свои пенаты. Как видно из этого примера, взломщик, вскрывший содержимое файла global.asa, получает в свое распоряжение пароли многих серверов нижнего уровня, включая систему LDAP.
Готовые сценарии взлома на языке Perl, упрощающие описанную выше процедуру использования команды netcat, можно найти в Internet (авторы этой книги пользовались сценариями tarans.pl Ройлофа Темминга (Roelof Temmingh) и srcgrab.pl Смайлера (Smiler)).

Корни проблемы Translate: f — протокол WebDAV и канонизация

При первом выявлении этой проблемы вокруг ее причин разгорелись бурные споры. Официальная позиция компании Microsoft сводилась к тому, что причиной является некорректное поведение внутреннего обработчика файлов в ядре US (что в прошлом действительно приводило к некоторым проблемам). Эта позиция была обнародована в разделе MSOO-58, посвященном вопросам безопасности по адресу http: //www.microsoft.com/technet/security/bulletin/fq00-058.asp.
Однако Даниель Дочкал (Daniel Docekal) считает, что причиной проблемы является протокол WebDAV (Web Distributed Authoring and Versioning) — протокол обеспечения стандартов Internet, поддерживаемый преимущественно компанией Microsoft и позволяющий удаленным авторам создавать, удалять, перемещать, находить и изменять атрибуты файлов и каталогов на Web-серверах (чувствуете, с какими проблемами это может быть сопряжено?). Протокол WebDAV Web-сервером IIS 5 поддерживается по умолчанию. И хотя заголовок HTTP Translate: не описан в спецификации протокола WebDAV (RFC 2518) или других известных авторам документах, Даниель Дочкал утверждает, что встречал ссылку на него в библиотеке сети MSDN компании Microsoft. По его словам, там рассказывалось об использовании этого заголовка для получения файлового потока путем указания значения F (false) в поле заголовка Translate.
В процессе обсуждения этого вопроса с группой обеспечения безопасности продуктов Microsoft выяснилось, что это действительно так. По их словам протокол WebDAV реализован в динамической библиотеке httpext.dll в виде фильтра ISAPI, интерпретирующего Web-запросы до их передачи ядру IIS. Заголовок Translate: f предполагает обработку этого запроса, а обратная косая вводит фильтр в заблуждение, и он направляет этот запрос непосредственно операционной системе. Система Win 2000 благополучно возвращает этот файл системе злоумышленника, а не выполняет его на сервере (как положено по всем правилам).
Здесь мы вплотную подошли к вопросу канонизации (canonicalization). Это понятие описано специалистами компании Microsoft в разделе MSOO-57 по адресу http://www.microsoft.com/technet/security/bulletin/fq00-057.asp . Там говорится следующее: «Канонизация — это процесс приведения различных эквивалентных форм имени к единому стандартному имени, называемому каноническим именем (canonical name) . Например, на данном компьютере имена c:\dir\test.dat и . . \. . \test.dat могут ссылаться на один и тот же файл. Канонизация — это процесс приведения таких имен к виду c:\dir\test.dat.»
Использование одной из различных эквивалентных форм канонического имени файла может привести к обработке запроса другими средствами IIS или операционной системы. Хорошим примером проблемы канонизации является вскрытие исходного кода с помощью выражения : :$DATA. Если к некоторому файлу обратиться по специальному имени, то файл будет возвращен броузеру в некорректном виде (Более подробная информация об этом содержится в главе 15).
Подобным образом работает и заголовок Translate: f. Значение f вводит службу WebDAV в заблуждение, в результате чего файловый поток возвращается броузеру.

Контрмеры: решение для проблемы Translate: f

Чтобы уменьшить риск, связанный с проблемой Translate: f и другими попытками вскрытия кода, достаточно просто иметь в виду, что любые исполняемые на сервере файлы могут быть видимы пользователям Internet и никогда не хранить в них секретную информацию. Неизвестно, связано ли это с участившимися попытками вскрытия кода, но компания Microsoft предлагает такой подход в качестве «обычной рекомендации по безопасности» в разделе FAQ MS00-58, уже упомянутом ранее.
Еще один способ решения этой проблемы сводится к установке сервисного пакета Service Pack 1 к системе Win 2000, упомянутого в том же разделе FAQ. При его установке IIS будет интерпретировать серверные исполняемые сценарии и схожие типы файлов с помощью соответствующего механизма обработки сценариев на сервере независимо от типа заголовка.
Как указывает Расе Купер (Russ Cooper) (бюллетень NTBugtraq), проблема Translate: f существенно связана с версией сервера IIS. Например, модуль обновления для 1IS4 успешно решает эту проблему. Таким образом, решение указанной проблемы сводится к следующему.
1. Аналогичная проблема для IIS4.0/IIS5.0, а также проблема размещения виртуальных каталогов на совместно используемых дисках с именами UNC, решается с помощью MSOO-019. Таким образом, после установки сервисного пакета системы с сервером IIS 4 становятся неуязвимыми для таких атак.
2. Системы на базе IIS 5.0 (с применением MSOO-019 или без) необходимо обновить с помощью сервисного пакета SP1 или MS00058.
Заметим также, что если для виртуального каталога IIS, содержащего нужный файл, установлено разрешение, отличное от Read, то при атаке Translate: f будет возвращена ошибка «HTTP 403 Forbidden» (даже если установлен режим Show Source Code). Если же для виртуального каталога, содержащего указанные файлы установлено разрешение Read, то эти файлы могут быть доступны взломщику.
Надеемся, этот экскурс в страну 1IS будет полезен читателю и поможет осознать один из способов проникновения в операционную систему. Более подробная информация об атаках на IIS содержится в главе 15.

Удалённое исполнение кода в IIS под Windows через HTTP-запрос

Xakep #246. Учиться, учиться, учиться!

В сетевом стеке HTTP.sys для серверных Windows обнаружена критичная уязвимость, из-за которой HTTP.sys неправильно обрабатывает специальным образом составленные HTTP-запросы, вызывая DoS или удалённое исполнение кода.

Microsoft выпустила справочный бюллетень MS15-034, в котором присвоила уязвимости самый высокий уровень опасности и перечисляет подверженные ей операционные системы: Windows 7, Windows Server 2008 R2, Windows 8 и Windows 8.1, Windows Server 2012 и Windows Server 2012 R2,

Для всех указанных систем выпущены обновления безопасности. В качестве альтернативного решения можно отключить кэширования ядра IIS, хотя Microsoft признаёт, что это приведёт к проблемам с производительностью.

При получении такого запроса Windows выводит сообщение об ошибке, а компьютер прекращает работу со странным сообщением.

Независимые исследователи приводят код эксплоита. Он осуществляет сканирование системы, чтобы вызвать переполнение буфера и проверить, уязвима система или нет.

Это можно заменить командой curl.

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

Уязвимости присвоен классификатор CVE-2015-1635.

Основы архитектуры IIS, или запросопровод для ASP.NET

В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.

1. Общий план
2. Крупный план
2.1. HTTP.SYS
2.2. World Wide Web Publishing Service (W3SVC)
2.3. Windows Process Activation Service (WAS)
2.4. Пул приложений
2.5. Домен приложения, приложение
3. Что дальше?
Источники

1. Общий план

Итак, начнём с конца, а потом рассмотрим отдельные аспекты чуть более пристально.
В англоязычной литературе процесс обработки запроса в IIS называется «request processing pipeline» — что-то вроде «конвейера обработки запроса». В общих чертах он представлен на рисунке ниже для http-запроса.

Рис. 1. HTTP request processing pipeline (IIS 7.x).

Таким образом, http-запрос проходит по «сборочной ленте конвейера» через следующее:

1. Браузер обращается к веб-серверу по определённому URL, на стороне сервера запрос перехватывает драйвер HTTP.SYS.
2. HTTP.SYS стучится к WAS для получения информации из хранилища конфигурации.
3. Служба WAS запрашивает конфигурацию из хранилища — из файла в папке IIS (applicationHost.config).
4. Поскольку данный запрос получен по протоколу HTTP конфигурационную информацию получает служба W3SVC (она же WWW Service на картинке), эта информация содержит в себе данные о пуле приложений (application pool) и прочих параметрах сайта.
5. Служба W3SVC использует эту информацию для кофигурации HTTP.SYS.
6. Служба WAS запускает процесс W3WP.exe для пула приложений, если он ещё не был запущен.
7. В процессе W3WP.exe работает приложение веб-сайта, которое, собственно, формирует и возвращает ответ драйверу HTTP.SYS.
8. HTTP.SYS отправляет ответ браузеру.

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

2. Крупный план

2.1. HTTP.SYS

На транспортном уровне IIS использует прослушивателей протоколов (protocol listeners), которые располагаются поверх стека TCP/IP. Наиболее интересный нам такой компонент – это системный драйвер HTTP.sys, который встроен в ядро ОС и работает с протоколами HTTP и HTTPS, регистрирующийся самостоятельно на прослушку всех портов, на которые будут приходить запросы к сайтам в IIS.

Встроенный в ядро HTTP.sys стал нововведением в IIS 6, заместив собой Windows Socket API – компонент перехвата HTTP- и HTTPS-запросов на пользовательском уровне в IIS более ранних версий. Вероятно, интеграция драйвера в ядро является той самой причиной, по которой версия IIS жёстко привязана к версии Windows.

Драйвер принимает все входящие запросы и перенаправляет их в нужный пул приложений. Если по какой-то причине рабочий процесс, в коем хостится требуемый пул, остановлен (сбой, таймаут простоя, смена конфигурации и т.п.) или ещё запускается, то HTTP.sys сохраняет входящие запросы в специально отведённой для каждого пула очереди. Таким образом, запросы пользователей никуда не пропадают, и они вообще не замечают каких-то перебоев в работе сайтов под управлением IIS.

Ещё HTTP.sys умеет кешировать ответы (более подробно — Instances in which HTTP.sys does not cache content), поэтому некоторые запросы обрабатываются без передачи на уровень приложения, а также проводит первичный разбор URI запроса и его валидацию в соответствии с RFC 2396 (кое-что можно почерпнуть отсюда — Use of special characters like ‘%’ ‘.’ and ‘:’ in an IIS URL) и журналирование запросов/ответов.

Некоторые настройки HTTP.sys вынесены в системный реестр Windows (более подробно — Http.sys registry settings for Windows). Кстати, там же – в реестре – можно подсмотреть обычное место прописки нашего гражданина: %SystemRoot%\system32\drivers\http.sys.

Признаться, в процессе написания данной статьи я сам открыл для себя некоторые детали. Например, кэширование ответов на уровне драйвера HTTP.sys. Это помогло мне объяснить один случай странного, как мне тогда казалось, феномена в поведении IIS. Маркетологи выложили на сайт swf-открытку перед очередным праздником, но потом им что-то не понравилось в названии файла и они его переименовали. Однако сайт продолжал выдавать открытку по старому URL и даже очистка браузерного кэша не помогала. Тут уже подключился я, но ни перезапуск веб-сайта и всего пула приложений, ни обращение к сайту в обход корпоративного прокси-сервера не дали ожидаемого результата. Но теперь-то мы знаем, кто виноват.

2.2. World Wide Web Publishing Service (W3SVC)

Данная служба (сокращённо именуемя в спецификациях WWW service) была представлена в IIS 6 в качестве отдельного компонента для работы с протоколами HTTP/HTTPS и управления рабочими процессами приложений и выполняла следующие функции:

  • Администрирование драйвера HTTP.sys.
  • Управление рабочими процессами.
  • Мониторинг показателей производительности веб-сайтов.

Эта служба функционирует в Windows Server 2003 в контексте процесса Svchost.exe (настройки можно посмотреть в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Svc) в отличие от всех остальных служб IIS, которые исполняются в контексте процесса Inetinfo.exe, и реализована в Iisw3adm.dll.


В IIS 7.x функция управления процессами была вынесена в отдельную службу – WAS (см. п.2.3) в целях универсализации архитектуры. Теперь WWW-служба стала по своей сути одним из адаптеров, специализируясь на протоколах HTTP/HTTPS – работа поверх драйвера HTTP.sys. Однако WWW-служба остаётся краеугольным компонентом IIS, поэтому её настройка отличается от настройки адаптеров к другим протоколам (чуть подобнее здесь); она функционирует в том же рабочем процессе, что и WAS, и реализована в той же самой библиотеке (рис. 2).

Рис.2. Рабочий процесс со службами W3SVC и WAS.

Раз уж зашла речь об адаптерах к прослушивателям протоколов (protocol listener adpater), то давайте чуть задержимся и посмотрим, какие они бывают. В принципе IIS 7.x можно настроить для обработки запросов по любым протоколам помимо типовых HTTP и FTP, например, POP3, SMTP, Gopher. Вы даже вольны придумать свой протокол для своей веб- или WCF-службы и реализовать для него все нужные компоненты, если не жалко своего времени. Скорее всего, адаптеры и прослушиватели для наиболее распространённых протоколов доступны для свободного и коммерческого скачивания – этого я не проверял. Но прежде всего стоить обратить внимание на стандартные службы (рис. 3), поставляемые с .NET Framework и интегрированные с IIS:

  • NetTcpActivator для протокола TCP;
  • NetPipeActivator для Named Pipes;
  • NetMsmqActivator для Message Queuing (ака MSMQ).

Рис. 3. Перечень стандартных не-HTTP-адаптеров в оснастке Служб Windows.

Но всё-таки наиболее важным для нас адаптером является именно WWW-служба, т.ч. остановимся чуть подробнее на двух оставшихся от IIS 6 функциях.

Администрирование и конфигурирование HTTP(S). В момент обновления конфигурации веб-сайтов, служба WAS передаёт эту информацию WWW-службе, а та уже, в свою очередь, настраивает HTTP.sys на прослушку конкретных портов, разбор IP и заголовка запрашиваемого сайта и, возможно, других параметров драйвера. В обратную сторону W3SVC обращается к WAS, когда в очередь запросов в HTTP.sys поступает новый, – для получения рабочего процесса-обработчика данного запроса.

Отслеживание показателей производительности. WWW-служба ведёт счётчики производительности, используя для этого драйвер HTTP.sys, и предоставляет их показатели веб-сайтами и кэшу IIS. Более подробной информации по этому вопросу мне найти не удалось.

2.3. Windows Process Activation Service (WAS)

Итак, WWW-служба в IIS 7.x, как и в IIS 6, продолжает выполнять задачи по администрированию HTTP.sys и управлению показателями производительности веб-сайтов. А вот задача управления рабочими процессами вынесена в отдельную службу – WAS. Она запускается системой в единственном экземпляре, считывает конфигурацию из файла %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config и настраивает через соответствующие адаптеры прослушивателей протоколов в соответствии с указанной в нём информации. Напомним, что для протоколов HTTP/HTTPS адаптером является служба W3SVC, а прослушивателем – драйвер HTTP.sys. При перехвате прослушивателем запроса он через свой адаптер обращается к службе WAS для получения рабочего процесса приложения, которому будет передан запрос для обработки и формирования ответа клиенту.

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

  • Адаптеры прослушивателей (Listener adapters) – специальные службы Windows, работающие с конкретным протоколом и взаимодействующие с WAS для направления запросов к правильному рабочему процессу.
  • Собственно WAS. Она ответственна за создание рабочих процессов и управление их временем жизни.
  • Исполняемый файл w3wp.exe – шаблон рабочего процесса.
  • Менеджер приложений управляет созданием и утилизацией доменов приложений (application domains), которые хостятся внутри рабочего процесса.
  • Обработчики протоколов – протоколозависимые компоненты внутри рабочего процесса, ответственные за обмен данными между конкретным адаптером и рабочим процессом. Есть 2 типа обработчиков протоколов: у процесса (process protocol handler — PPH) и у домена приложения (AppDomain protocol handlers — ADPH).

Ниже на рисунке представлен пример схемы компонентов внутри некоего экземпляра рабочего процесса приложения. Когда служба WAS запускает рабочий процесс, она загружает в него согласно конфигурации приложения требуемые обработчики протоколов процессов (PPH) и посредством менеджера приложений создаёт внутри рабочего процесса домен приложения, в котором будет хоститься приложение. Менеджер приложений загружает код приложения в домен приложения и требуемые обработчики протоколов уровня приложения (ADPH) для обработки сообщений по соответствующим сетевым протоколам.

Рис. 4. Компоненты w3wp.exe для взаимодействия с внешними компонентами.

Как отмечалось выше, .NET Framework несёт в себе реализацию компонент для протоколов HTTP/HTTPS (наш любимый ASP.NET), net.tcp, net.pipe и MSMQ. Стеки протоколов HTTP/HTTPS и FTP всё-таки более тесно интегрированы в IIS и ОС, поэтому настройку для нового протокола лучше продемонстрировать на примере менее популярных дотнетовских протоколов. Итак, после установки фреймворка в файле конфигурации IIS ApplicationHost.config появляется записи:

А соответствующие компоненты PPH и ADPH настраиваются в дотнетовском machine.config:

В конфигурационном файле веб-сервера ApplicationHost.config вместе с настройками приложений хранятся связки (bindings), определяющие параметры входящих запросов, которые будут направляться данному приложению. Такими параметрами являются название сетевого протокола, IP-адрес сервера, доменное имя и порт сайта. Эти параметры должны быть уникальными среди работающих приложений для однозначной идентификации целевого приложения. Служба WAS отслеживает это ограничение и не даст вам запустить сайт, у которого это условие не соблюдено, либо предложит остановить сайт с такой же связкой.

Обратите внимание, что в стандартном режиме эксплуатации IIS служба WAS, служба-адаптер для каждого прослушивателя протокола (в т.ч. W3SVC) и сами драйверы/прослушиватели каждого из протоколов (в т.ч. HTTP.sys) запущены в ОС в единственном экземпляре. Но отдельные запросы могут направляться разным приложениям в разных рабочих процессах. С другой стороны, отдельно взятому приложению могут направляться запросы по разным протоколам через соответствующие адаптеры. Видимо, для корректной реализации такого поведения и была придумана архитектурная связка драйвер протокола – адаптер драйвера протокола – служба активации (своеобразный регулировщик, точнее — маршрутизатор) – рабочий процесс.

2.4. Пул приложений

При конфигурации веб-приложения помимо привязок (binding) к параметрам запросов и прочих настроек указывается принадлежность к пулу приложений. Пул приложений стал нововведением в IIS 6 и был призван обеспечить изоляцию веб-приложений друг от друго и тем самым повысить стабильность работы веб-сервера в целом. Суть заключается в том, что код приложения выполняется внутри специального процесса Windows – w3wp.exe. Поэтому исключение внутри веб-приложения приведёт к краху только этого процесса и никак не повлияет на доступность веб-приложений в других пулах и работу служб IIS. Более того, служба WAS попытается заново запустить упавший сайт, и внешние клиенты могут даже не заметить проблем в работе сервера.

Для управления некоторыми параметрами отдельно взятого рабочего процесса w3wp.exe в IIS используется пул приложений. Наиболее часто используемыми из них являются учётная запись, под которой будет запущен процесс, ограничения для очереди запросов, различные таймеры и счетчики для автоматического перезапуска процесса, архитектура x86/x64 (в IIS 7.x) и некоторые другие (рис. 5), о чём любопытный читатель может с лёгкостью прочесть в MSDN и любимом поисковике. Т.о. можно говорить (с определёнными оговорками, см. тж. последний абзац в 2.5) о тождественности процесса w3wp.exe и пула приложений.

Рис. 5 Дополнительные настройки пула приложений

Ключевым нововведением в концепции пулов приложений в IIS 7.x стал новый параметр – модель управления контейнером, который может принимать 2 значения: классическая (Classic mode) и встраиваемая модель (Integrated mode).
Чтобы объяснить разницу между этими режимами работы, потребуется знакомство с понятием «модуль» (Module) в IIS 6/7.x и событийной моделью обработки запросов в связке IIS + ASP.NET. Тема эта достойна отдельной статьи, но меня на неё уже, увы, не хватит, судя по всему. Здесь же представлю вашему вниманию лишь общие, ключевые моменты.

Итак, IIS при обработке запроса пропускает его внутри рабочего процесса через последовательность специальных компонент – модулей. Например фильтрация, перенаправление, кэширование, аутентификация, авторизация. Каждый такой модуль ассоциируется с определённым событием, а их последовательность составляют событийную модель обработки запросов. Модули делятся на нативные (Native) и управляемые (Managed). Нативные модули поставляются вместе с IIS, а управляемые – в составе .NET Framework (ASP.NET). В общем-то, вы можете управлять ими в определённой степени на уровне конфигурации веб-приложения, но взаимодействовать из кода своего ASP.NET-сайта вы можете только с управляемыми модулями.

Рис. 6. Идеология модулей в IIS.

Классическая модель управления контейнером обеспечивает обратную совместимость с режимом изоляции рабочих процессов в IIS 6 – запросы к ASP.NET-сайту сначала проходят через нативные модули, а затем передаются в Aspnet_isapi.dll для обработки модулями в управляемой среде. Такое разделение между IIS и ASP.NET приводит к дублированию некоторых функций, например, аутентификации и авторизации. И вы не имеете возможности управлять программно поведением нативных модулей (пример хоть и не самый животрепещущий, но всё же – раздел «Убираем заголовок Server» в этой статье).

Встраиваемая модель предполагает более тесное взаимодействие между IIS и ASP.NET. Запрос в такой архитектуре обработки пропускается через установленную последовательность событий, в каждом из которых запрос пропускается через нативный и управляемые модули. В таком режиме модели обработки запросов IIS и ASP.NET объединены в единую модель, что позволяет избежать дублирования функций и получить больший контроль над обработкой запроса.

На практике самое важное, что необходимо учитывать при разработке и развёртывании веб-приложений, – это частичная несовместимость этих двух режимов. Т.е. при переводе сайта (точнее пула приложений, в котором работает сайт) из классической модели во встраиваемую практически всегда потребуется корректировка кода (хоть, возможно, и не значительная), а также тщательное тестирование.

2.5. Домен приложения, приложение

Непосредственными контейнерами веб-приложения являются приложение и домен приложения (Application Domain, AppDomain). Зачастую эти два понятия отождествляются, но всё-таки это немного разные вещи. Приложение – это понятие IIS, а домен приложения – из ASP.NET. Причём в общем случае в приложении может быть несколько доменов. Приложением вы можете управлять из консоли IIS, а доменом приложения – в основном программно. Так, например, перезапускается приложение из консоли. А когда мы пересохраняем web.config, то перезагружается именно домен приложения, не трогая IIS-приложение.

Более важным с практической точки зрения является то, что приложение/домен приложения является sandbox-ом для кода вашего ASP.NET-сайта (не с такой надёжной изоляцией, как в случае с пулом, но всё же). Приведу один из моих любимых вопросов, которые я задавал соискателям на собеседованиях. Пусть имеются веб-сайт-1 и веб-сайт-2, а также некая библиотека MyLib.dll, в которой определён класс My >
Рис. 7. Рисунок для задачки.

Ещё один важный момент, который хотелось бы здесь отметить. По умолчанию каждый отдельный рабочий процесс может использовать все имеющиеся на сервере процессоры/ядра, а пул приложений работает на одном рабочем процессе и, следовательно, веб-приложение работает внутри одного IIS-приложения. Тем не менее, вы можете настроить web garden, увеличив кол-во рабочих процессов на пул и, следовательно, число IIS-приложений на одно веб-приложение. Вы без труда сможете найти на просторах интернета информацию о web garden, поэтому опускаю здесь подробности. Единственное, хотелось бы предупредить, что данное средство не является инструментом увеличения производительности, т.к. по умолчанию и так используются все вычислительные мощности сервера. Наоборот, на синхронизацию работы 2+ рабочих процессов уходил «лишнее» время CPU. Делается это в основном для увеличения доступности веб-приложения. Нельзя здесь также не упомянуть о веб-ферме (web farm), как о простейшем средстве балансировки нагрузки в IIS – об этом тоже достаточно статей в Сети. Это другой пример распределённого веб-приложения. Впрочем, с тем же nginx встроенная балансировка нагрузки в IIS конкуренции не выдерживает, и в реальных высоконагрузочных системах вам придётся изобретать свой велосипед или задействовать продукты сторонних производителей.

3. Что дальше?

Дальше нужно разбираться в работе модулей (в терминах IIS) и событийной модели, в которых уже происходит собственно обработка запроса, о чем упоминалось в разделе 2.4. Вообще говоря, эта тема заслуживает отдельной статьи, на которую, боюсь, меня уже не хватит. Но без этого нельзя сказать, что мы рассмотрели весь конвейер обработки запросов. Поэтому кратко пройдёмся здесь по основным моментам, которые любопытствующий читатель может проработать самостоятельно.

Как отмечалось выше в разделе 2.4 модули IIS содержатся внутри рабочего процесса. Через них последовательно пропускается запрос (в отличие от HttpHandler-ов). Их набор и порядок определяется конфигурацией сервера и/или конкретного веб-приложения. Модули предназначены для отдельных, узконаправленных задач, таких как авторизация, кэширование, кастомное логгирование, сжатие, возврат статического контента и, конечно же, формирование HTML-страниц по заданному URL.

Cервер приложений Internet Information Services (IIS)

Администраторам и разработчикам Web-приложений необходим надежный, легкоуправляемый, высокопроизводительный и защищенный Web-сервер. В Internet Information Services (IIS) 6.0 и Microsoft ® Windows ® Server 2003 появилось много новых возможностей, обеспечивающих надежность, доступность, управляемость, масштабируемость и безопасность сервера Web- приложений.

IIS 6.0 — ключевой компонент платформы приложений Windows Server 2003 — представляет собой интегрированный набор сервисов и средств, обеспечивающих разработку и развертывание высокопроизводительных Web-сайтов, Web-приложений и Web-сервисов.

Роль сервера приложений в семействе продуктов Windows Server 2003 сочетает в себе следующие серверные технологии:

1. Internet Information Services (IIS) 6.0 Информационные службы Интернета (IIS) 6.0. Они являются полноценным веб-сервером, оптимизированным для запуска веб-приложений и служб на узле.

2. Microsoft .NET Framework;

Это компьютерная платформа, разработанная для упрощения разработки приложений в распределенной среде Интернета. Microsoft .NET Framework предоставляет среду для объектно-ориентированного программирования, гарантирующую безопасное выполнение кода, и исключает затруднения, связанные с обеспечением быстродействия сценариев. В Microsoft .NET Framework входят два основных компонента:

· общая языковая среда выполнения

· библиотека классов Microsoft .NET Framework.

ASP.NET использует общую языковую среду выполнения для предоставления таких базовых служб, как управление памятью, управления потоками и удаленный доступ, совмещенный со строгой системой защиты и другими формами, обеспечивающими безопасность и устойчивость кода. Основным назначением этой среды является управление кодом. Код, предназначенный для работы в ней, называется управляемым, а код, не предназначенный для работы в ней — неуправляемым.

Библиотека классов Microsoft .NET Framework — собрание повторно используемых объектов, которые можно применять при создании приложений ASP.NET.

3. ASP.NET это часть Microsoft .NET Framework. ASP.NET представляет собой откомпилированную среду, основанную на технологии .NET. Имеется возможность создавать приложения на любом совместимом с .NET языке, в том числе на Visual Basic .NET, C# и JScript .NET. Кроме того, возможности среды .NET Framework, в том числе управляемая общая языковая среда времени выполнения, безопасность типов и наследование, доступны любому приложению ASP.NET

4. ASP; Active Server Pages (ASP) — активные серверные страницы. Страницы ASP являются средой создания серверных сценариев для разработки динамических интерактивных приложений веб-серверов. Они позволяют разработчикам объединять нужным образом страницы в формате HTML, команды сценариев и компоненты COM для создания мощных и гибких веб-приложений.

5. UDDI-сервисы; UDDI (Universal Description, Discovery and Integration) — это промышленный стандарт публикации и поиска сведений о веб-службах. В некоторые продукты семейства Windows Server 2003 включаются службы UDDI, веб-службы, обеспечивающие использование возможностей UDDI на предприятиях или в организациях. Службы UDDI являются стандартной веб-службой XML. Они позволяют разработчикам предприятия эффективно изучать, открывать совместный доступ и повторно использовать веб-службы непосредственно через средства разработки. Они не включены в Windows Server 2003, Web Edition. Кроме того, Windows Server 2003, Standard Edition поддерживает только изолированную установку служб UDDI. Поддержка распределенной установки доступна в Windows Server 2003, Enterprise Edition и Windows Server 2003, Datacenter Edition. При изолированной установке служб UDDI компоненты веб-сервера UDDI и баз данных UDDI устанавливаются на один компьютер. При распределенной установке компоненты UDDI распределены по нескольким серверам.

6. COM+; расширение модели объектных компонентов (COM). COM+ основано на интегрированных службах и свойствах COM, облегчая разработчикам создание и использование компонентов программного обеспечения на любом языке и используя любые средства.

7. Microsoft Message Queuing (MSMQ). Сервер очередей сообщений Microsoft. Очередь сообщений создается для взаимодействия приложений в распределенной среде (на разных компьютерах). Особенность MSMQ в том, что компьютеры не обязательно должны быть одновременно в сети. То есть можно отправить сообщение, можно получить, а за всем этим следит сервер MSMQ.

Таким образом, сервер приложений позволяет разработчикам Web-приложений и администраторам осуществлять хостинг динамических приложений, например для управления базой данных приложений Microsoft ASP.NET, не надо устанавливать на сервере дополнительное программное обеспечение.

В Windows Server 2003 сервер приложений можно настроить двумя способами: через мастер Configure Your Server или из приложения Add/Remove Components.

Архитектура обработки запросов в IIS 6.0

Сложность кода Web-сайтов и приложений постоянно возрастает.

Динамические Web-сайты и приложения могут содержать неидеальный код, приводящий к утечкам памяти или вызывающий ошибки нарушения доступа к памяти.

Таким образом, Web-сервер должен выполнять роль активного диспетчера среды выполнения приложения, автоматически определяя ошибки приложения и реагируя на них.

Сервер должен быть устойчивым к ошибкам в приложении и способным перезапустить сбойное приложение, продолжая накапливать в очереди запросы к нему и не препятствуя работе конечного пользователя.

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

Также кардинально повышена надежность и масштабируемость благодаря применению модели изоляции процесса (называемую моделью изоляции рабочего процесса ).

В дополнение увеличена производительность за счет поддержки кэширования и очередей запросов в режиме ядра.

В IIS 6.0 заложены две новые концепции

1. пулы приложений (application pools)

2. рабочие процессы (worker processes).

Пулы приложений применяются для управления набором Web-сайтов и приложений. Каждый пул приложения соответствует одной очереди запросов в HTTP.sys и одному или более Windows-процессам, обрабатывающим эти запросы.

IIS 6.0 поддерживает до 2 000 пулов приложений.

Одновременно могут работать несколько таких пулов. Например, сервер может выполнять приложение для учета кадров в одном пуле и бухгалтерское приложение — в другом.

То есть Интернет-провайдер (Internet Service Provider, ISP) может запускать Web-сайты и приложения одного клиента в одном пуле приложений, а Web-сайты второго клиента — в другом.

Пулы приложений отделяются друг от друга границами процессов в Windows Server 2003. Таким образом, приложения в одном пуле не влияют на приложения в другом; кроме того, запросы к приложениям нельзя перенаправлять из одного пула в другой.

Рабочий процесс обслуживает запросы к Web-сайтам и приложениям в пуле. Вся обработка Web-приложений, аутентификация и авторизация, выполняется новой библиотекой DLL Web – сервиса, которая загружается в один или несколько рабочих хост-процессов. Исполняемый файл рабочего процесса называется W3wp.exe.

В предыдущей версии IIS (IIS 5.0) один процесс, Inetinfo.exe, выполнял функции главного процесса Web-сервера. Он перенаправлял запросы к «внепроцессным» приложениям, размещенным в процессах DLLHost.exe.

IIS 6.0, напротив, состоит из двух новых компонентов:

1. Компонент WWW Service Administration and MonitoringДиспетчер пользовательского режима, управляющий работой сервера и следящий за выполнением кода приложения. Этот компонент не загружает и не исполняет код приложения. Другими словами компонент пользовательского режима, предназначенного для администрирования и мониторинга.

2. Стек HTTP режима ядра (HTTP.sys), который помещает в очередь и разбирает входящие HTTP-запросы, а также кэширует и возвращает контент сайта и приложения. HTTP.sys не загружает код приложения — он просто анализирует и перенаправляет запросы.

Таким образом, HTTP.sys в IIS принимает запросы и помещает их в очереди.

Каждая очередь запросов соответствует одному пулу приложений.

Так как HTTP.sys не выполняет код приложений, на него не влияют ошибки в коде пользовательского режима, обычно нарушающие нормальную работу Web-сервера.

В случае ошибки в приложении HTTP.sys продолжает принимать и помещать в очередь новые запросы до одного из следующих событий:

1. перезапуска процесса, который начнет принимать запросы,

2. исчерпания очередей,

3. отсутствия места в очередях

4. остановки администратором самого Web-сервиса.

После того как сервис WWW обнаруживает ошибку в приложении, он запускает новый рабочий процесс при наличии запросов, ожидающих обслуживания в пуле приложений рабочего процесса. То есть, хотя временная задержка в обработке запросов пользовательского режима вполне возможна, конечный пользователь не замечает ее, так как запросы по-прежнему принимаются и помещаются в очередь.

Такая архитектура позволяет IIS 6.0 отделять операции Web-сервера от выполнения кода Web-сайта и приложения без ухудшения производительности.

Настройка сервера и управление рабочим процессом

При инициализации часть сервиса WWW, отвечающая за конфигурирование, использует хранящуюся в памяти конфигурационную метабазу для инициализации таблицы маршрутизации (routing table) пространства имен HTTP.sys.

Каждая запись в этой таблице содержит информацию, необходимую для перенаправления входящих URL пулу приложений, где находится сопоставленное с данным адресом приложение.

Эти предварительные действия уведомляют HTTP.sys о наличии пула приложений, отвечающего на запросы к конкретной части пространства имен, и о том, что HTTP.sys может потребовать запуска рабочего процесса для пула приложений при поступлении запроса.

Все предварительные действия выполняются до того, как HTTP.sys приступает к перенаправлению запросов индивидуальным процессам.

По мере добавления новых приложений и их пулов Web-сервис настраивает HTTP.sys на прием новых адресов, создает новые очереди запросов для новых пулов приложений и указывает, куда перенаправлять новые URL. Для динамического изменения информации о маршрутизации перезапуск сервиса не требуется.

В роли управляющего рабочим процессом компонент WWW Service Administration и Monitoring отвечает за управление жизненным циклом рабочего процесса, обрабатывающего запросы.

Это подразумевает принятие решений о запуске, использовании и перезапуске рабочего процесса в случае, если он не может обслуживать дальнейшие запросы (заблокирован). Кроме того, он ведет мониторинг рабочего процесса и способен обнаружить его неожиданное завершение.

Режим изоляции рабочего процесса

IIS 6.0 предоставляет новый режим изоляции приложения для управления обработкой Web-сайтов и приложений — режим изоляции рабочего процесса.

В этом режиме все приложения выполняются в изолированной среде, причем такая изоляция не приводит к ухудшению производительности.

Приложения можно полностью изолировать друг от друга, в этом случае ошибка в одном приложении не влияет на другое приложение в ином процессе.

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

Первым делом HTTP.sys отправляет запросы, адресованные к Web-сайтам и приложениям, соответствующим очередям пулов приложений.

Затем рабочий процесс, обслуживающий пул приложений, извлекает запросы напрямую из очереди приложений в HTTP.sys. Такая модель позволяет избавиться от лишних переключений процессов, возникающих при отправке запросов внепроцессному DLLHost.exe и обратно (как в IIS 4.0 и 5.0), что увеличивает производительность.

Важно отметить, что в IIS 6.0 нет понятия внутрипроцессного приложения. Все необходимые приложению сервисы периода выполнения в равной степени доступны в любом пуле приложений.

Подобная архитектура не дает сбойному Web-сайту или приложению нарушить работу другого Web-приложения или самого сервера. В IIS 6.0 теперь можно выгрузить внутрипроцессный компонент, не останавливая Web-сервис.

Рабочий хост-процесс можно временно остановить, не затрагивая остальные рабочие процессы, обрабатывающие контент.

Дополнительное преимущество — возможность задействовать другие сервисы операционной системы, доступные на уровне процесса [например управление распределением процессорного времени (CPU throttling)] для пулов приложений. Кроме того, архитектура Windows Server 2003 поддерживает гораздо больше параллельных процессов, чем в предыдущих операционных системах.

Режим изоляции рабочего процесса не дает одному приложению или сайту остановить другие приложения.

Помимо этого, разделение приложений или сайтов на отдельные рабочие процессы упрощает многие задачи управления, например:

включение/выключение сайта или приложения (независимо от остальных работающих сайтов или приложений),

· изменение используемого приложением компонента,

· наблюдение за счетчиками производительности,

· регулирование ресурсов, выделяемых приложению.

Режим изоляции рабочего процесса в IIS 6.0 имеет следующие особенности.

1. Кэширование в режиме ядра.. В IIS 6.0 кэширование в режиме ядра осуществляется как в режиме изоляции рабочего процесса, так и в режиме изоляции IIS 5.0 (см. ниже). В качестве единой точки приема всех входящих (серверных) HTTP-запросов HTTP.sys создает высокопроизводительный канал связи для серверных HTTP-приложений и обеспечивает общее управление соединениями, регулирование полосы пропускания и протоколирование на стороне Web-сервера. IIS 6.0 основан на HTTP.sys и специально настроен на увеличение производительности Web-сервера. Кроме того, в некоторых случаях HTTP.sys напрямую обрабатывает запросы в ядре. Как статический, так и динамический контент Web-сайтов и приложений может помещаться в кэш HTTP.sys для уменьшения времени ответа.

2. Четкое разделение между пользовательским кодом и сервером.Весь пользовательский код обрабатывается рабочими процессами, полностью изолированными от ядра Web-сервера. Это важное усовершенствование по сравнению с IIS 5.0, так как ISAPI зачастую выполняются внутрипроцессно в ядре Web-сервера. Если ISAPI, загруженный в рабочий процесс, вызывает сбой или нарушение доступа к памяти, останавливается лишь рабочий процесс, выполняющий ISAPI. Тем временем сервис WWW создает новый рабочий процесс, заменяющий рухнувший. На остальные рабочие процессы это не оказывает никакого влияния.

3. Множественные пулы приложений.В IIS 5.0 приложения можно объединять во внепроцессный пул, но только в один, который выполняется в среде DLLHost.exe. Когда IIS 6.0 работает в режиме изоляции процессов, администраторы могут создать до 2 000 пулов приложений, причем каждый из них можно конфигурировать раздельно.

4. Улучшенная поддержка распределителей нагрузки. Благодаря пулам приложений IIS 6.0 поддерживает физическое разделение приложений. IIS 6.0 способен автоматически взаимодействовать с распределителями нагрузки (load balancers) или с коммутаторами для блокирования трафика к проблемному приложению, параллельно продолжая принимать запросы к другим приложениям. В IIS 6.0 также встроена модель расширения, позволяющая генерировать события и команды при обнаружении сбоя в конкретном приложении. Такая конфигурация позволят распределителям нагрузки и коммутаторам автоматически блокировать трафик к проблемным приложениям, не препятствуя запросам к работающим.

5. Web-сады (Web gardens).На обслуживание запросов, адресованных одному пулу приложений, можно настроить несколько рабочих процессов. По умолчанию каждому пулу соответствует один рабочий процесс. Однако пул можно настроить так, чтобы ему соответствовал набор из N эквивалентных рабочих процессов, разделяющих нагрузку. Такая конфигурация называется Web-садом. HTTP.sys распределяет запросы между рабочими процессами в группе. Распределение запросов основано на принципе карусели. Преимущества Web-садов в том, что, если один рабочий процесс замедляется, например, когда подсистема выполнения сценариев перестает отвечать, прием и обработка запросов продолжается остальными рабочими процессами.

6. Слежение за состоянием. Компонент WWW Service Administration and Monitoring следит за состоянием приложений, периодически проводя тестовый опрос рабочих процессов, чтобы выяснить, не заблокированы ли они. В случае блокировки рабочего процесса сервис WWW завершает рабочий процесс и создает вместо него новый. Сервис WWW поддерживает коммуникационный канал с каждым рабочим процессом и всегда в состоянии определить сбой в рабочем процессе по обрыву канала.

7. Привязка к процессорам (processor affinity). Рабочие процессы можно привязать к конкретным процессорам, чтобы увеличить частоту попаданий в кэш процессора (уровня L1 или L2). Реализация привязки к процессорам приводит к тому, что рабочие процессы IIS 6.0 выполняются на конкретных процессорах, и эта привязка распространяется на все рабочие процессы, обслуживающие Web-сайты и приложения в каком-либо пуле. Привязку к процессорам можно использовать в сочетании с Web-садами, выполняемым на многопроцессорных компьютерах, где под конкретные пулы приложений выделены кластеры процессоров.

8. Сопоставление сайтов и приложений с пулами приложений. В IIS 6.0, как и в IIS 5.0, приложения определяются как пространства. Сайты по умолчанию считаются простыми приложениями, в которых пространство имен сконфигурировано как приложение. Пул приложений можно настроить на обслуживание от одного Web-приложения до множества приложений и сайтов. Чтобы поместить приложение в пул, следует использовать IIS Manager или напрямую модифицировать метабазу.

9. Запуск по требованию. Пулы приложений позволяют запускать процессы, обслуживающие группу пространства имен по требованию, т. е. при первом запросе к URL, который является частью этого пространства имен. Компонент WWW Service Administration and Monitoring выполняет запуск процесса по требованию и в целом контролирует жизненный цикл рабочих процессов.

10. Время ожидания в простое. Пул приложений можно настроить на остановку собственных рабочих процессов, если они простаивают в течение определенного периода. Это нужно для освобождения неиспользуемых ресурсов. При необходимости для данного пула приложений запускаются дополнительные рабочие процессы (см. далее «Запуск по требованию»).

11. Быстрая защита от сбоев. При сбое рабочий процесс обрывает коммуникационный канал с компонентом WWW Service Administration and Monitoring. Последний обнаруживает это и принимает меры, обычно включающие запись события в журнал и перезапуск рабочего процесса. Кроме того, IIS 6.0 можно настроить на автоматическую блокировку рабочего процесса, если в пуле приложений возникает определенное число сбоев за заданный период. Такое поведение называется быстрой защитой от сбоев (rapid-fail protection). Быстрая защита от сбоев переводит пул приложений в состояние «не обслуживается», и HTTP.sys немедленно возвращает сообщение 503 (Service Unavailable) на любые запросы к частям этого пространства имен, в том числе на запросы, уже помещенные в очередь этого пула приложений.

12. Отбрасывание (orphaning) рабочих процессов.Режим изоляции рабочего процесса можно настроить на отбрасывание рабочих процессов, которые считаются зависшими. Например, если рабочий процесс не отвечает на тестовые опросы в течении определенного периода, сервис WWW обычно завершает его и запускает новый. А если включено отбрасывание, он оставляет зависший процесс в памяти и запускает новый. Кроме того, сервис WWW можно настроить на выполнение команды над рабочим процессом (например на подключение отладчика) при его отбрасывании.

13. Повторное использование рабочих процессов.Сейчас многие организации страдают от проблем, связанных с тем, что Web-приложения вызывают утечки памяти, плохо написаны или содержат непонятные ошибки. Это вынуждает администраторов периодически перезапускать Web-серверы. В предыдущих версиях IIS способа перезапустить Web-сайт, не прерывая работу всего сервера, не было. Режим изоляции рабочего процесса можно настроить на периодический перезапуск рабочих процессов в пуле приложения для борьбы со сбойными приложениями. Рабочие процессы можно настроить на перезапуск в соответствии со следующими критериями: истекшим временем, количеством обслуженных запросов, временем суток, использованием виртуальной и физической памяти, а также по требованию. Когда рабочий процесс считает необходимым выполнить перезапуск, он уведомляет WWW-сервис, который в свою очередь дает команду на завершение существующим рабочим процессам и выделяет заданное время на обработку оставшихся запросов. Одновременно сервис WWW создает замещающий рабочий процесс для той же группы пространства имен, и новый рабочий процесс запускается до завершения работы старого. Это предотвращает перебои в обслуживании. Старый рабочий процесс поддерживает связь с HTTP.sys для завершения обработки своих запросов, а затем либо нормально завершает работу, либо его работа завершается извне, если он не остановился по истечении заданного периода.

14. Режим изоляции IIS 5.0 Некоторые приложения не совместимы с режимом изоляции рабочего процесса IIS 6.0, например приложения-фильтры, читающие необработанные данные, или приложения, полагающиеся на выполнение в Inetinfo.exe или DLLHost.exe. Поэтому IIS 6.0 способен работать в другом режиме изоляции, который называется режимом изоляции IIS 5.0 и обеспечивает совместимость. Использование этого режима напоминает работу с самим IIS 5.0, так как в нем присутствуют те же основные процессы пользовательского режима. В частности, есть те же методы изоляции приложений (низкий, средний в пуле и высокий), а Inetinfo.exe — по-прежнему главный процесс, через который проходят все запросы.

Система безопасности IIS

Система безопасности IIS использует преимущества стандартов безопасности Интернет, поддерживаемых Windows.

Fortezza(американский правительственный стандарт безопасности). Он удовлетворяет архитектуре безопасности, поддерживая механизм шифрования, обеспечивающий конфиденциальность, целостность и подлинность сообщений, аутентификацию, контроль доступа к сообщениям, компонентам и системам. Эти функции реализуются как при помощи ПО сервера и браузера, так и при помощи аппаратных средств.

Secure Sockets Layer (SSL). Протоколы безопасности SSL широко используются Web-браузерами и серверами для аутентификации, конфиденциальности и целостности сообщений. При помощи функций безопасности SSL можно проверить целостность содержания Web-сервера, реквизиты пользователей и шифровать передаваемые по сети сообщения.

Transport Layer Security (TLS). TLS основан на SSL. Он помогает выполнять безопасную аутентификацию пользователей, а независимым программистам позволяет создавать поддерживающий TLS код, способный обмениваться зашифрованной информацией с другим процессом без ознакомления с кодом, созданным другим программистом. Кроме того, TLS является каркасом для построения новых методов шифрования с открытым ключом и шифрования больших объемов данных. TLS служит и для повышения производительности, уменьшая сетевой трафик и предлагая схему кэширования сессий, позволяющую сократить количество соединений, устанавливаемых «с нуля».

PKCS #7. Этот протокол описывает формат зашифрованных данных, например цифровых подписей или цифровых конвертов.

PKCS #10. Этот протокол описывает формат посылаемых сертификационным центрам (Certificate Authority, CA) запросов на получение сертификата.

Обычная проверка подлинности. Обычная аутентификация — стандартный метод сбора информации об именах пользователей и паролях. Она посылает пароли по сети в формате Base64 Encoded. К ее достоинствам можно отнести то, что она является частью спецификации HTTP 1.0 и поэтому поддерживается большинством браузеров. Однако обычная аутентификация имеет существенный минус — использующие ее Web-браузеры пересылают пароли в незашифрованном виде.

Краткая проверка подлинности. Она обладает теми же возможностями, что и обычная но передает аутентификационные сведения иначе.

Они проходят через одношаговый процесс — хеширование (hashing). Результат этого процесса называется хешем (hash), или выборкой сообщения (message digest). Исходный текст не может быть расшифрован из хеша. Перед хешированием к паролю добавляется дополнительная информация генерируемая сервером, поэтому никто не сможет перехватить хеш пароля и с его помощью выдавать себя за истинного клиента. Краткая аутентификация основана на методологии общего секретного пароля. Она структурирована для использования несколькими прокси-серверами. Краткая аутентификация поддерживается не всеми обозревателями. Если не поддерживающий краткую аутентификацию браузер пошлет запрос на сервер, требующий именно этот способ аутентификации, сервер не будет обрабатывать запрос и сообщит клиенту об ошибке.

Путем проверки подлинности можно удостовериться в личности каждого клиента, запрашивающего доступ к Web-узлам.

IIS поддерживает для служб HTTP и FTP:

1. анонимную проверку подлинности HTTP и FTP;

2. обычную проверку подлинностиHTTP и FTP;

3. краткую проверку подлинности для доменов Windows 2000 и браузеров, поддерживаю щих этот способ аутентификации, реализованныйв HTTP I.I;

4. интегрированную проверку подлинности Windows (толькоHTTP).

Что такое код iis безопасность

Эту статью не стоит рассматривать как полноценное руководство по безопасности при настройке Internet Information Services версии 7.x — для того уже существует несколько талмудов, которые описывают предмет нашего разговора во всей его красе. Но не у всякого администратора имеется возможность досконально изучить эти книги, а конфигурировать веб-сервер надо уже сейчас. Поэтому хочется опубликовать краткий обзор мер безопасности, которые необходимо иметь в виду, работая с IIS , некий чек- лист что ли, по которому можно быстро пробежаться, сравнить с требованиями своего проекта и корпоративными гайдами по информационной безопасности.

Обозначение 7.x означает, что здесь собран материал для обеих версий продукта: IIS 7 , поставляемый с Windows Server 2008 и Windows Vista , и IIS 7.5 , который Вы можете найти в «коробке» от Windows Server 2008 R2 и Windows 7 .

Все меры, представленные в данной подборке, ни в коем случае не являются ОБЯЗАТЕЛЬНЫМИ. Более того, они могут даже противоречить системным требованиям Ваших веб-приложений. Решение о принятии той или иной меры все таки необходимо выносить в условиях конкретной ситуации. Здесь меры будут носить лишь ОПИСАТЕЛЬНЫЙ характер, чтобы администратор знал — вот здесь еще можно подкрутить ;)

Все ответы

Основы безопасности IIS

Административные меры безопасности IIS

Максимальное усиление безопасности IIS

Кратко об Internet Information Services 7.x

Internet Information Services 7.x — компонент веб-сервиса компании Microsoft для операционной системы Windows Server 2008 (R2) .

На момент написания данного материала IIS 7.5 является последним в длинной линейке версий IIS . Начиная с версии 6.0, Microsoft в цикле разработки данного продукта решила сосредоточить особое внимание на безопасности и непрерывно следует этому подходу до сих пор. В результате IIS 7.x поставляется с большим количеством изменений по сравнению со своим предшественником и имеет огромное количество новых возможностей, которыми только надо умело пользоваться. IIS 7.x был полностью переработан и сейчас базируется на новой модульной архитектуре. Это означает, что вместо монолитного «черного ящика», который устанавливается по умолчанию и имеет лишь пару дополнительных возможностей, IIS 7.x теперь имеет около 40 отдельных компонентов — так называемых модулей. По умолчанию устанавливаются только самые основные модули; дополнительные же могут быть легко добавлены в случае необходимости. Это помогает значительно уменьшить площадь атаки на сервер, просто потому, что ненужные средства отсутствуют в системе. Модульная архитектура имеет множество преимуществ, и в части безопасности, и в администрировании, и в производительности веб-сервера. Кроме того, IIS 7.x не ограничивает Вас набором предразработанных модулей — пишите свои, если хотите заменить существующие, или есть требование расширить функциональность веб-сервера.

Коды состояния служб IIS

Аннотация

При обращении пользователей к серверу, на котором запущены информационные службы Интернета (Internet Information Services, IIS), по протоколу HTTP или FTP (File Transfer Protocol), сервер возвращает число, показывающее состояние выполнения запроса. Данное число называется кодом состояния и сохраняется в журнале служб IIS, а также может отображаться веб-обозревателем или клиентом FTP. Код состояния показывает, выполнен ли запрос, а также может сообщать о причинах сбоя при выполнении запроса.

Дополнительная информация

Местонахождение файла журнала
По умолчанию файлы журналов служб IIS находятся в папке %WIN DIR\System32 \Logfiles. Данная папка содержит отдельные подкаталоги для каждого узла WWW (World Wide Web) и FTP. По умолчанию новый файл журнала создается ежедневно. Имя данного файла формируется, исходя из текущей даты (например exГГММДД.log). HTTP

1xx — Информационные коды

Перечисленные ниже коды состояния представляют собой предварительные ответы. Перед получением окончательного ответа клиент может получить один или несколько ответов с кодами состояния 1xx.

  • 100 — Следует продолжать работу.
  • 101 — Смена протоколов.

2xx — Запрос принят

Нижеперечисленные коды показывают, что сервер успешно принял запрос клиента.

  • 200 — ОК. Запрос выполнен успешно.
  • 201 — Создан ресурс.
  • 202 — Запрос принят.
  • 203 — Неавторизованные сведения.
  • 204 — Содержимое отсутствует.
  • 205 — Сброс содержимого.
  • 206 — Частичный ответ.

3xx — Перенаправление

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

  • 302 — Объект перемещен.
  • 304 — Объект не изменялся.
  • 307 — Временное перенаправление.

4xx — Ошибка на стороне клиента

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

  • 400 — Неверный запрос.
  • 401 — Отсутствуют необходимые права доступа. Если возникает ошибка с кодом 401, то службы IIS возвращают расширенный код, указывающий причину ошибки. Это коды отображаются на экране веб-обозревателя, но не регистрируются в журнале служб IIS.
  • 401.1 — Вход в систему не выполнен.
  • 401.2 — Вход не выполнен из-за настройки сервера.
  • 401.3 — Доступ запрещен таблицей управления доступом (ТУД) к ресурсу.
  • 401.4 — Доступ запрещен фильтром.
  • 401.5 — Доступ запрещен приложением ISAPI/CGI.
  • 401.7 — Доступ запрещен политикой авторизации URL веб-сервера. Данный код поддерживается только службами IIS 6.0.
  • 403 — Запрет доступа. Если возникает ошибка с кодом 403, то службы IIS возвращают расширенный код, указывающий причину ошибки.
  • 403.1 — Нет доступа на выполнение.
  • 403.2 — Нет доступа на чтение.
  • 403.3 — Нет доступа на запись.
  • 403.4 — Требуется протокол SSL.
  • 403.5 — Требуется протокол SSL 128.
  • 403.6 — IP-адрес отклонен.
  • 403.7 — Требуется сертификат для клиента.
  • 403.8 — Отказ в доступе к узлу.
  • 403.9 — Подключено слишком много пользователей.
  • 403.10 — Недопусти мая конфигурация.
  • 403.11 — Необходим другой пароль.
  • 403.12 — Отказ доступа от программы сопоставления.
  • 403.13 — Клиентский сертификат отозван.
  • 403.14 — Просмотр каталога запрещен.
  • 403.15 — Достигнуто максимальное число разрешенных одновременных подключений.
  • 403.16 — Клиентский сертификат недействителен или не вызывает доверия.
  • 403.17 — Срок действия клиентского сертификата уже истек или еще не начался.
  • 403.18 — Не удается выполнить запрошенный адрес URL в текущем пуле приложения. Данный код поддерживается только с лужбами IIS 6.0.
  • 403.19 — Не возможно выполнять прило жения CGI для этого клиента в данном пуле приложений. Данный код поддерживается только службами IIS 6.0.
  • 403,20 — Вход систему с помощью служб Passport не выполнен. Данный код поддерживается только службами IIS 6.0.
  • 404 — Объект не найден.
  • 404.0 — (отсутствует) — Файл или каталог не найден.
  • 404.1 — Веб-узел не доступен по запрошенному порту.
  • 404.2 — Запрос отклонен политикой закрытия расширений веб-служб.
  • 404.3 — Запрос отклонен политикой сопоставления MIME.
  • 405 — Для доступа к странице используется недопустимый метод HTTP (недопустимый метод).
  • 406 — Веб-обозреватель клиента на поддерживает тип MIME запрошенной страницы.
  • 407 — Требуется проверка подлинности через прокси-сервер.
  • 412 — Отказ после проверки предварительного условия.
  • 413 — Размер запроса слишком велик.
  • 414 — Слишком длинный запрос URI.
  • 415 — Неподдерживаемый тип носителя.
  • 416 — Значение за пределами диапазона.
  • 417 — Ошибка при выполнении.
  • 423 — Ошибка блокировки.
  • 5xx — Ошибки сервера

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

    • 500 — Внутренняя ошибка сервера.
    • 500.12 — Приложение в процессе перезапуска.
    • 500.13 — Сервер перегружен.
    • 500.15 — Запросы на файл Global.asa недопустимы.
    • 500.16 — Учетные данные не позволяют выполнить проверку подлинности при подключении к адресу UNC. Данный код поддерживается только службами IIS 6.0.
    • 500.18 — Не удается открыть хранилище данных авторизации URL. Данный код поддерживается только службами IIS 6.0.
    • 500.100 — Внутренняя ошибка ASP.
  • 501 — Значения, указанные в заголовке, требуют нереализованную возможность.
  • 502 — Выполняя роль шлюза или прокси, веб-сервер получил ошибочный ответ.
  • 502.1 — Превышен интервал ожидания ответа от приложения CGI.
  • 502.2 — Ошибка в приложении CGI.
  • 503 — Служба недоступна. Данный код поддерживается только службами IIS 6.0.
  • 504 — Превышен интервал ожидания ответа от шлюза.
  • 505 — Неподдерживаемая версия HTTP.
  • Основные коды состояния HTTP и их описание

    • 200 — Запрос выполнен успешно. Данный код показывает, что сервер IIS успешно обработал запрос.
    • 304 — Объект не изменялся. Клиент запросил документ, который имеется в кэше клиента и не изменялся после кэширования. Вместо загрузки документа с сервера клиент использует кэшированную копию данно го документ а.
    • 401.1 — Вход в систему не выполнен. При входе в системе произошел сбой (как правило, вследствие указания ошибочного имени пользователя или пароля).
    • 401.3 — Доступ запрещен списком управления доступом (ACL) к ресурсу. Появление данного кода свидетельствует о проблеме с разрешениями NTFS. Эта ошибка может возникать, даже если для запрашиваемого файла разрешения установлены правильно. Например, данная ошибка появляется, если для учетной записи IUSR отсутствуют права доступа к папке C:\Winnt\System32\Inetsrv. Дополнительные сведения об устранении данной ошибки см. в следующей статье базы знаний Майкрософт: 187506 (http://support.microsoft.com/kb/187506/) Разрешения NTFS и права пользователей, необходимые для работы сервера IIS 4.0
    • 403.1 — Нет доступа на выполнение. Как правило, данная ошибка возникает по следующим причинам.
    • Отсутствует право на выполнение. Например, данная ошибка может возникать при обращении к странице ASP, находящейся в папке, для которой отсутствуют разрешения на выполнение, или при запуске сценария CGI из папки, для которой установлены разрешения «Только сценарии». Чтобы добавить право выполнения, в соответствующей консоли MMC щелкните нужную папку правой кнопкой мыши, выберите пункт Свойства, перейдите на вкладку Каталог и убедитесь, что для требуемых объектов разрешения Разрешен запуск установлены должным образом.
      Используемый метод (например GET или POST) отсутствует в сопоставлении сценариев для требуемого типа файлов. Чтобы проверить, присутствует ли требуемый метод, в соответствующей консоли MMC щелкните нужную папку правой кнопкой мыши, выберите пункт Свойства, перейдите на вкладку Каталог, щелкните команду Конфигурация и убедитесь, ч то в сопоставлении сценариев для требуемого типа файлов разрешено использование соответствующего метода.
    • 403.2 — Нет доступа на чтение. Убедитесь, что в конфигурации служб IIS разрешено чтение из данной папки. Кроме того, если используется документ по умолчанию, убедитесь, что данный документ существует. Дополнительные сведения об устранении данной проблемы см. в следующей статье базы знаний Майкрософт: 247677 (http://support.microsoft.com/kb/247677/) Появление сообщения об ошибке «403.2 Запрет доступа. Нет доступа на чтение.»
    • 403.3 — Нет доступа на запись. Убедитесь, что существующие разрешения IIS и разрешения NTFS позволяют выполнять запись в нужную папку.Дополнительные сведения об устранении данной проблемы см. в следующей статье базы знаний Ма й крософт: 248072 (http://support.microsoft.com/kb/248072/) Появление сообщения об ошибке «403.3 Запрет доступа. Нет доступа на запись.»
    • 403.4 — Требуется протокол SSL. Отключите параметр Требует ся безопасный канал или используйте для доступа к данной странице протокол HTTPS, а не HTTP. Если эта ошибка появляется при обращении к веб-узлу, для которого не установлен сертификат, обратитесь к следующей статье базы знаний Майкрософт: 224389 (http://support.microsoft.com/kb/224389/) Появление сообщений об ошибках 403, 403.4, 403.5 «Запрет доступа. Требуется протокол SSL.»
    • 403.5 — Требуется протокол SSL 128. Отключите параметр Требуется 12 8 -и разрядное шифрование или используйте для просмотра данной страницы веб-обозреватель, поддерживающий 128-разрядное шифрование. Если эта ошибка появляется при обращении к веб-узлу, для которого не установлен сертификат, обратитесь к следующей статье базы знаний Майкрософт: 224389 (http://support.microsoft.com/kb/224389/) Появление сообщений об ошибках 403, 403.4, 403.5 «Запрет доступа. Требуется протокол SSL.»
    • 403.6 — IP-адрес отклонен. Конфигурация веб-сервера запрещает доступ с да нн ого IP-адреса. Дополните льные сведения об устранении данной проблемы см. в следующей статье базы знаний Майкрософт: 248043 (http://support.microsoft.com/kb/248043/) При подключении к веб-серверу появляется сообщение об ошибке: «Ошибка HTTP 403.6 — Запрет доступа: IP-адрес отклонен»
    • 403.7 — Требуется сертификат для клиента. Конфигурация веб-сервера требует наличие сертификата для выполнения проверки подлинности клиента, однако серт ификат для клиента не установлен. Дополнительные сведения см. в следующих статьях базы знаний Майкрософт. 190004 (http://support.microsoft.com/kb/190004/) Появление сообщения об ошибках 403.7 или «Не удается установить соединение с сервером» 186812 (http://support.microsoft.com/kb/186812/) PRB: Появление сообщения об ошибке «403.7 Запрет доступа. Требуется сертификат для клиента.»
    • 403.8 — Отказ в доступе к узлу. Существующие ограничения на доменное имя запрещают доступ к веб-узлу из текущего домена.Дополнительные сведения об устранении данной проблемы см. в следующей статье базы знаний Майкрософт: 248032 (http://support.microsoft.c om/kb/248032/) Появление сообщения об ошибке «403.8 Запрет доступа. Отказ в доступе к узлу.»
    • 403.9 — Подключено слишком много пользователей. Число пользователей, подключенных к веб-узлу, превысило максимально допустимое число подключений, указанное в конфигурации. Дополнительные сведения об изменении данного значения см. в следующей с тать е базы знаний Майк ро софт: 248074 (http://support.microsoft.com/kb/248074/) Ошибка HTTP 403.9 — Запрет доступа: подключено слишком много пользователей Примечание. Microsoft Windows 2000 Professional и Microsoft Windows XP Professional допускают одновременное подключение к службам IIS десяти пользователей. Это значение изменить нельзя.
    • 403.12 — Отказ доступа от программы сопоставления. Для доступа к запрошенной странице необходим сертификат клиента, однако пользователь, сопоставленный используемому клиентскому сертификату, не имеет прав доступа к данному файлу. Дополнительные сведения см. в следующей статье базы знаний Майкрософт: 248075 (http://support.microsoft.com/kb/248075/) Появление сообщения об ошибке «403.12 Запрет доступа. Отказ до с тупа от программы сопоставления.»
    • 404 — Объект не найден. Данная ошибка может возникать, если запрошенный файл был удален или перемещен. Кроме того, указанное сообщение об ошибке появляется, если после установки средства URLScan был ограничен доступ к файлам с запрошенным расширением. В этом случае в файле журнала для данного запроса будет добавлена строка «Rejected by URLScan».
    • 500 — Внутренняя ошибка сервера. Данное сообщение об ошибке может появляться вследствие различных причин. Дополнительные сведения о причинах подобных ошибок могут помещаться в журнал событий. Кроме того, для получения полного описания ошибки можно отключить вывод подробных сообщений об ошибках HTTP. Дополнительные сведения об отключении вывода подробных сообщений об ошибках HTTP см. в следующей статье базы знаний Майкрософт: 294 807 (http://support.microsoft.com/kb/294807/) Отключение параметра «Выводить подробные сообщения об ошибках http» в обозревателях Internet Explorer 5.x и 6.x на стороне сервера
    • 500.12 — Приложение в процессе перезапуска. Данное сообщение появляется при попытке загрузить страницу ASP в то время, когда сервер IIS перезапускает приложение. После обновления страницы данное сообщение должно исчезнуть. Если после обновления страницы указа нно е сообщение остается, то это может быть вызвано работой антивирусной программы, которая проверяет файл Global.asa. Дополнительные сведения см. в следующей статье базы знаний Майкрософт: 248013 (http://support.microsoft.com/kb/248013/) Сообщение «Ошибка HTTP 500-12 Перезапуск приложения» при подключении к Microsoft Internet Information Services 5. 0
    • 500-100.ASP — Внутренняя ошибка ASP. Данное сообщение об ошибке появляется при загрузке страницы ASP, содержащей ошибки. Чтобы получить более полную информацию о данной ошибке, отключите вывод подробных сообщений об ошибках HTTP. По умолчанию данная ошибка может появляться только на веб-узле по умолчанию.Дополнительные сведения о том, как увидеть данную ошибку на веб-узлах, не являющихся узлами по умолчанию, см. в следующей статье базы знаний Майкрософт: 261200 (http://support.microsoft .com/kb/261200/) Вместо сообщения об ошибке из файла 500-100.asp отображается сообщение об ошибке HTTP с кодом 500
    • 502 — Неправильный шлюз. Данное сообщение об ошибке появляется при запуске сценария CGI, не возвращающего соответствующий набор заголовков HTTP.

    1xx — Положительный предварительный ответ

    Данный код состояния говорит о том, что выполнение действия началось успешно, но перед переходом к новой команде клиент должен дождаться следующего ответа.

    • 110 Значение маркера повторного запуска.
    • 120 Служба будет готова через ххх минут.
    • 125 Соединение для передачи данных уже уст ановл ено; передача данных начата.
    • 150 Состояние файла проверено. Сервер готов к установке соединения для передачи данных.

    2xx — Оповещение о выполнении команды

    Действие завершилось успешно. Клиент может выполнять следующую команду.

    • 200 Команда выполнена успешно.
    • 202 Команда не реализована. На данном узле к о манда не тре буется.
    • 211 Состояние системы или справка по системе.
    • 212 Состояние каталога.
    • 213 Состояние файла.
    • 214 Справочное сообщение.
    • 215 ИМЯ тип системы, где ИМЯ — официальное имя системы в соответствии с документом о присвое нии номеров.
    • 220 Система готова обслуживать нового пользователя.
    • 221 Служба разрывает управляющее соединение. Если необходимо, будет произведен выход из системы.
    • 225 Соединение для передачи данных установлено; передача не выполняется.
    • 226 Соединение для передачи данных разрывается. Требуемое действие выполнено (например пере да ча или прекращение переда чи файла).
    • 227 Выполняется вход в пассивный режим (h1,h2,h3,h4,p1,p2).
    • 230 Пользователь вошел в систему. Производится обработка.
    • 250 Требуемое действие завершено успешно.
    • 257 Создана папка «ПУТЬ».

    3xx — Положительные промежуточные ответы

    Данные коды состояния говорят о том, что команда выполнена успешно, но для завершения выполнения запроса клиент должен передать серверу дополнительные сведения.

    • 331 Имя пользователя получено. Необходимо ввести пароль.
    • 332 Необходима учетная запись для входа в систему.
    • 350 Для выполнения запрашиваемого действия требуются дополнительные данные.

    4xx — Промежуто ч ные отрицательные ответы

    При выполнении команды возникла временная ошибка. Если клиент повторит команду, она может выполниться успешно.

    • 421 Служба недоступна. Управляющее соединение разрывается. Данное сообщение может отправляться в ответ на какую-либо команду, если служба должна завершить работу.
    • 425 Не удается установить соединение для передачи данных.
    • 426 Соединение разорвано; передача прекращена.
    • 450 Требуемое действие не выполнено. Файл недоступен (например, файл может быть занят).
    • 451 Выполнение требуемого действия прервано: при выполнении возникла ошибка.
    • 452 Требуемое действие не выполнено. Системе не хватает места на диске.

    5xx — Окончательные отрицательные ответы

    При выполнении команды возникла ошибка. Данная ошибка носит постоянный характер. Если клиент повто рит команду, при ее выполнении возникнет такая же ошибка.

    • 500 Синтаксическая ошибка. Команда не распознана. Одной из причин возникновения этой ошибки является использование слишком длинных команд.
    • 501 Синтаксическая ошибка в аргументах или параметрах.
    • 502 Команда не реализована.
    • 503 Ошибочная последовательность команд.
    • 504 Для данного параметра команда не реализована.
    • 530 Не выполнен вход в систему.
    • 532 Необходима учетная запись для сохранения файлов.
    • 550 Требуемое действие не вы п олнено. Файл недоступен (например, файл не найден или нет доступа к файлу).
    • 551 Выпо лнение требуемого действия прервано. Неизвестный тип страницы.
    • 552 Выполнение требуемого действия прервано. Превышен максимально допустимый объем места на диске (в текущей папке или в наборе данных).
    • 553 Требуемое действие не выполнено. Недопустимое имя файла.

    Основные коды состояния FTP и их описание

    • 150 — Протокол FTP использует два порта: порт 21 для передачи команд и порт 20 для передачи данных. Код состояния 150 показывает, что сервер собирается установить новое соединение на порту 20 для передачи данных.
    • 226 — Команда устанавливает подключение к порту 20, чтобы выполнить какие-либо действия (например передать файл). Данное действие было завершено успешно. Соединени е разорвано.
    • 230 — Сообщение с этим кодом появляется после отправки клиентом правильного пароля. Данный код состояния показывает, что пользователь вошел в систему.
    • 331 — Сообщение с этим кодом появляется после отправки клиентом имени пользователя. Это сообщение появляется независимо от того, присутствует ли в системе указанное имя пользователя.
    • 426 — Команда устанавливает подключение к порту 20, чтобы выполнить какие-либо действия, однако выполнение действия было отменено и соединение было разорвано.
    • 530 — Данный код состояния показывает, что пользователь не может войти в систему, поскольку введена ошибочная комбинация имени пользователя и пароля. Если для входа в систему используется учетная запись пользователя, то данное сообщение может появляться, если имя пользо вателя или пароль введены н еправильно или если в систем у могут входить только анонимные пользователи. Если для входа в систему используется анонимная учетная запись, то данное сообщение может появляться, если сервер IIS не поддерживает вход анонимных пользователей.
    • 550 — Команда не выполнена, поскольку требуемый файл недоступен. Данное сообщение может появляться при попытке получить отсутствующий файл с помощью команды GET, при использовании команды PUT для сохранения файла в папке, для которой отсутствует право записи, а также в некоторых других случаях.
    Илон Маск рекомендует:  HTML МЕТА-тег ROBOTS
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL