АДМИНИСТРИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ И СЕТЕЙ Лекция 11. Веб-службы и сервисы Службы Microsoft IIS Понятие веб-службы • Веб-служба (web service) — программная система, идентифицируемая строкой URI (Uniform Resource Identifier), чьи общедоступные интерфейсы определены на языке XML. • Программные модули ИС могут взаимодействовать с веб-службой посредством сообщений, основанных на XML, и передаваемых с помощью интернетпротоколов. Основные понятия • URI (Uniform Resource Identifier) — унифицированный идентификатор ресурса. URI — это короткая последовательность символов, идентифицирующая абстрактный или физический ресурс. • Единый указатель ресурсов (URL — Uniform Resource Locator) — единообразный локатор (определитель местонахождения) ресурса. Структура URL • <схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь> • схема - схема обращения к ресурсу, в большинстве случаев имеется • • • • в виду сетевой протокол логин - имя пользователя, используемое для доступа к ресурсу пароль - пароль, ассоциированный с указанным именем пользователя хост полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста в форме четырёх десятичных чисел, разделённых точками. порт - порт хоста для подключения URL‐путь уточняющая информация о месте нахождения ресурса (зависит от протокола) Используемые стандарты XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных; SOAP: Протокол обмена сообщениями на базе XML; WSDL: Язык описания внешних интерфейсов веб-службы на базе XML; UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description, and Integration). Достоинства веб-служб Веб-службы обеспечивают взаимодействие программных систем независимо от платформы; Веб-службы основаны на базе открытых стандартов и протоколов. • Использованию XML обеспечивает простоту разработки и отладки веб-служб; • Использование интернет-протокола HTTP обеспечивает взаимодействие программных систем через межсетевой экран. Службы ИНТЕРНЕТ в Windows Информационные службы Интернета (IIS) обеспечивают комплексные, надежные, масштабируемые, безопасные и регулируемые возможности веб-сервера при работе с внутренними и внешними сетями, а также с Интернетом. IIS является инструментом для создания коммуникационных платформ динамических сетевых приложений. IIS используется для поддержки и управления веб-страниц в Интернете или во внутренней сети, для поддержки и управления FTP-узлами, для маршрутизации новостей и почты, которые используют протоколы NNTP и SMTP. Возможности служб IIS IIS 7.0 поддерживает основные вебстандарты, такие как Microsoft ASP.NET, XML и протокол SOAP, для разработки, реализации и управления вебприложениями. IIS 7.0 включает возможности для достижения высокой производительности, надежности, масштабируемости и безопасности большого числа веб-узлов на одном или нескольких серверах IIS. Обеспечение надежности служб IIS 7.0 IIS 7.0 обладает повышенной надежностью по сравнению с предыдущими версиями благодаря новой архитектуре обработки запросов, которая обеспечивает изолированную среду для выполнения приложений. • Это позволяет отдельным вебприложениям работать независимо друг от друга в виде независимых рабочих процессов. Режимы работы IIS 7.0 работает в режиме изоляции рабочих процессов, в котором любой процесс запускается в изолированной среде. • В режиме изоляции рабочих процессов можно изолировать любой объект или процесс — от отдельного веб-приложения до нескольких узлов, обеспечив их работу в виде самостоятельного независимого рабочего процесса службы вебпубликации. • Это позволит исключить возможность сбоя в работе одного приложения или узла из-за сбоя другого. Изоляция приложений или узлов в отдельные процессы упрощает ряд задач по управлению. Группы (пулы) приложений Режим изоляции рабочих процессов позволяет клиентам создавать несколько групп приложений, где каждая группа приложений может иметь уникальную конфигурацию. • Группа приложений может быть настроена в режиме изоляции рабочих процессов для обслуживания любых объектов — от одного веб-приложения до нескольких веб-приложений и узлов. • Назначение приложения группе приложений позволяет изолировать приложения. • Узлы по умолчанию считаются обычным приложением, где корневое пространство имен "/" настраивается в качестве приложения. Обеспечение безопасности IIS 7.0 предоставляет набор средств и технологий обеспечения безопасности, гарантирующих согласованность содержимого веби FTP-узлов, а также передаваемых через эти узлы данных. Функции обеспечения безопасности IIS решают следующие связанные с безопасностью задачи: • • • • • проверка подлинности клиента и сервера, управление доступом, шифрование потока данных, использование цифровых сертификатов, аудит. Проверка подлинности Метод Уровень безопасности Способ отправки паролей Использование с прокси-серверами и брандмауэрами Требования к клиенту Анонимная проверка подлинности Отсутствует Не применяется Доступно Любой обозреватель Обычная проверка подлинности Низкий Открытый текст в кодировке Base64 Доступно, но отправка пароля незащищенным текстом через проксисервер или брандмауэр рискованна, поскольку кодировка Base64 не зашифрована и легко декодируется Большинство обозревателей Краткая проверка подлинности Средний Хешированная Доступно Internet Explorer 5 или более поздней версии Расширенная краткая проверка подлинности Средний Хешированная Доступно Internet Explorer 5 или более поздней версии Встроенная проверка подлинности Windows Высокий Хешированная при использовании NTLM. Билет Kerberos при использовании Kerberos Недоступно, за исключением использования через подключение PPTP Internet Explorer 2.0 или более поздние версии для NTLM; Windows 2000 или более поздние версии с Internet Explorer 5 или более поздними версиями для Kerberos Проверка подлинности сертификатов Высокий Отсутствует Доступно при использовании подключения SSL Internet Explorer и Netscape Проверка подлинности .NET Passport Высокий Зашифрована Доступно при использовании подключения SSL Internet Explorer и Netscape Управление доступом Правильное управление доступом к содержимому веб- и FTPузлов является основным элементом организации защищенного веб-сервера. Управление доступом к содержимому веб- и FTP-узлов может быть организовано на нескольких уровнях, от всего веб- или FTP-узла до отдельных файлов. Каждой учетной записи предоставляются права пользователя и разрешения. • Права пользователя являются правами на выполнение определенных действий на компьютере или в сети. • Разрешения представляют правила, связанные с объектом, таким как файл или папка, которые определяют, какие учетные записи могут получить доступ к объекту. Схема управление доступом Схема управление доступом • Клиент запрашивает ресурс на сервере. • IP-адрес клиента проверяется на ограничения IP-адресов, заложенные в IIS. Если IP-адресу отказано в доступе, запрос отклоняется и пользователю возвращается сообщение «403 Доступ запрещен». • Сервер, если это задано в настройке, запрашивает у клиента информацию для проверки подлинности. Обозреватель либо приглашает пользователя указать имя и пароль, либо предоставляет эту информацию автоматически. • IIS проверяет допустимость учетной записи пользователя. Если учетная запись пользователя не является допустимой, запрос отклоняется и пользователю возвращается сообщение «401 Отказано в доступе». • IIS проверяет наличие у пользователя веб-разрешений для запрашиваемого ресурса. Если таких разрешений нет, запрос отклоняется и пользователю возвращается сообщение «403 Доступ запрещен». • Добавляются любые модули безопасности, например, проверка в Microsoft ASP.NET. • IIS проверяет для ресурса разрешения NTFS на статические файлы, ASPстраницы и CGI-файлы. Если у пользователя нет разрешений NTFS, запрос отклоняется и пользователю возвращается сообщение «401 Отказано в доступе». • Если у пользователя имеются разрешения NTFS, запрос выполняется. Шифрование соединений (SSL/TLS) Шифрованием называют преобразование элементов информации с помощью математической функции, после которого восстановление исходной информации становится исключительно трудным для всех, кроме лица, которому адресована информация. Основой этого процесса является математическое значение, которое называют ключом, используемое функцией для однозначного сложного преобразования информации. После установления защищенной связи специальный ключ сеанса используется и вебсервером, и веб-обозревателем пользователя как для шифрования, так и для расшифровки информации. Например, когда правомочный пользователь пытается загрузить файл с веб-узла, для которого требуется безопасный канал связи, веб-сервер использует ключ сеанса для шифрования файла и относящихся к нему заголовков HTTP. После получения зашифрованного файла веб-обозреватель использует копию того же ключа сеанса для восстановления файла. Этот метод шифрования, несмотря на защиту, имеет существенный недостаток: при создании защищенного канала по незащищенной сети может передаваться копия ключа сеанса. Это означает, что компьютерному взломщику, желающему нарушить систему безопасности подключения, достаточно перехватить ключ сеанса. Для предотвращения таких ситуаций на веб-сервере применяется дополнительный способ шифрования. Шифрование с открытым ключом Средство безопасности веб-сервера, работающее по протоколу SSL, использует метод шифрования, известный под именем шифрования с открытым ключом для защиты ключа сеанса от перехвата при передаче. Шифрование с открытым ключом, в котором используются два дополнительных ключа, закрытый и общий, выполняется следующим образом: • Веб-обозреватель пользователя устанавливает защищенную связь (https://) с веб-сервером. • Веб-обозреватель пользователя и сервер вступают в диалог, чтобы определить уровень шифрования, который должен использоваться для защиты подключений. • Веб-сервер отправляет обозревателю его открытый ключ. • Веб-обозреватель шифрует сведения, используемые при создании ключа сеанса, с помощью открытого ключа и отправляет их на сервер. • С помощью закрытого ключа сервер расшифровывает сообщение, создает ключ сеанса, шифрует его с помощью открытого ключа и отправляет обозревателю. • Ключ сеанса используется как сервером, так и веб-обозревателем для шифрования и расшифровывания передаваемых данных. Сертификаты Сертификаты содержат сведения, используемые для проверки подлинности пользователей сети. Как и обычные формы установления подлинности, сертификаты позволяют веб-серверам и пользователям проверить подлинность друг друга перед установлением соединения. Сертификаты содержат также значения для шифрования, или ключи, которые используются для установления соединения по протоколу SSL между клиентом и сервером. При использовании соединения SSL такие данные, как номера банковских карт, передаются по сети в зашифрованном виде, поэтому не могут быть перехвачены и использованы неавторизованными лицами. Типы сертификатов Существуют два типа сертификатов, используемых протоколом SSL, — серверные и клиентские сертификаты. Каждый из них имеет свой формат и назначение. • Серверные сертификаты содержат сведения о сервере, что позволяет клиенту однозначно идентифицировать сервер до передачи важной информации. • Клиентские сертификаты содержат личные данные клиентов, запрашивающих доступ к узлу, и позволяют идентифицировать пользователей перед предоставлением доступа к ресурсам узла. Функции аудита Для отслеживания действий пользователей и обнаружения попыток несанкционированного доступа к каталогам и файлам в системе NTFS можно использовать средства аудита. В журнал аудита могут быть записаны следующие события: • успешные и неуспешные попытки входа пользователей в систему; • попытки доступа пользователей к запрещенным учетным записям; • попытки выполнения пользователями запрещенных команд. Новая архитектура IIS • Основные изменения IIS 7.0 относятся к архитектуре, обработке запросов, поддержке платформы приложений PHP и хранилищу настроек. • В IIS 6.0 функции по большей части носили характер «все или ничего». Необходимо было установить все функции, а настройка IIS осуществлялась только с помощью интерфейса ISAPI. Модульная архитектура IIS IIS 7.0 предоставляет стандартные блоки для создания собственного пользовательского веб-сервера. • Это ведет к снижению административных расходов благодаря уменьшению количества возможных направлений атак на сервер и устранению необходимости обновления неиспользуемых компонентов. • Ключевым моментом этого нового подхода является модульная архитектура IIS 7.0. Модули IIS 7.0 Типы модулей Native Modules • dll – библиотеки, созданные на основе IIS Native Server API • Устанавливаются на уровне сервера, включаются для конкретных приложений Managed Modules • Сборки .NET, создаются на любом управляемом языке .NET • Регистрируются для веб-приложения не требуют установки Интеграция двух типов моделей обеспечивает унифицированную модель безопасности Установка по умолчанию Ниже приведены функциональные возможности, включенные в установку по умолчанию: • Основные функции HTTP, включая статическое содержимое, документ по умолчанию, обзор каталога и ошибки HTTP • Функции работоспособности и диагностики, такие как ведение журнала HTTP и монитор запросов • Функции безопасности, такие как фильтрация запросов • Функции повышения производительности, такие как сжатие статического содержимого • Средства управления, в том числе консоль управления IIS • Служба активации процессов Windows Основные термины Web Server (IIS Server) Web Site Application Virtual Directory Application Pool Administration Tools • IIS Manager • Appcmd.exe Внешний вид Диспетчера IIS 7.0 Создание нового веб-сайта Имя сайта – идентификатор для IIS Каталог с контентом сайта Параметры привязки Тип протокола IP-адрес Порт Имя узла Архитектура IIS Application Pool worker process (w3wp.exe) Начало обработки svchost.exe Windows Process Activation Services (WAS) Файлы конфигурации Аутентификация Авторизация Обновление кэша World Wide Web Publishing Services (W3SVC) Протоколирование Завершение HTTP.SYS Драйвер HTTP.SYS • Проверка и прием HTTP- и HTTPS- запросов • Обработка SSL в режиме ядра • Поддержка очередей для пулов приложений • Сбой приложения не приводит к прерыванию сервиса • Кэширование ответов приложений • Сокращение количества переключений контекста • Отсутствие кода приложения • Сбой приложений не влияет на ядро системы НТТР.SYS Кэш ответов Очередь пула приложений Очередь пула приложений Очередь пула приложений Службы W3SVC и WAS • World Wide Web Publishing Services • Настройка драйвера HTTP.SYS • Информация о привязке сайта (порт, адрес, заголовок) • Настройки приложений и пулов приложений • Изменения в конфигурации • Предоставление счетчиков производительности svchost.exe WAS W3SVC Мониторинг производительности Управление HTTP.SYS Управление процессами Управление конфигурацией Интерфейс слушателей Конвейер обработки запроса Каждый веб-узел на сервере имеет встроенный конвейер обработки запросов и может быть запущен в одном из двух режимов – встроенном или классическом. • Встроенный режим, режим по умолчанию, позволяет подключать к конвейеру определенные функциональные возможности, обеспечивая настраиваемый контроль над обработкой запроса. • Для обеспечения совместимости классический режим воспроизводит функции IIS 6.0/ISAPI с помощью модуля ISAPI в конвейере. Порядок применения модулей IIS В конвейере обработки запроса модули применяются в определенном порядке • Порядок задается в секции <modules> файла ApplicationHost.config Администратор может изменить порядок применения модулей Конфигурация IIS Все настройки IIS 7.0 хранятся в виде иерархии XML-файлов • Используется принцип конфигурационных файлов .NET Иерархия файлов соответствует URL-иерархии • Путь иерархии задается так: • Machine/webroot/apphost/<sitename>/<Virtualpath> При просмотре настроек для конкретного URL просматриваются файлы для каждого сегмента пути • Настройки могут задаваться на верхнем уровне и наследоваться нижележащими • Для любого пути настройки могут быть установлены • С помощью файла web.config размещенного в директории • Используя специальные тэги (LocationTags) на верхнем уровне Иерархия файлов настройки Machine.config Настройки .NET Framework Root web.config Настройки ASP.NET ApplicationHost.config Настройки сервера IIS web.config web.config Настройки сайтов и приложений Расположения и пути Файл Расположение Конфигурационный путь Machine.config %windir%\Microsoft.NET\Framework\ <version>\config Machine Root web.config %windir%\Microsoft.NET\Framework\ <version>\config Machine/webroot ApplicationHost.config %windir%\system32\inetsrv\config Machine/webroot/AppHost Распределенные web.config Директории сайтов, приложений, виртуальных каталогов Machine/webroot/AppHost/< site>/<VirtualDir> Дополнительные файлы Redirection.config • Настройки Shared Configuration • %windir%\system32\inetsrv\config Administration.config • Настройки IIS Manager • %windir%\system32\inetsrv\config Файлы схемы • • • • IIS_schema.xml FX_schema.xml ASPNET_schema.xml %windir%\system32\inetsrv\config\schema Временный файл пула приложений • %systemdrive%\inetpub\temp\apppools\<ApplicationPoolName>.config Утилиты администрирование IIS Диспетчер IIS • Графический интерфейс • Не все настройки доступны • Новые модули расширения Appcmd.exe • Заменяет все утилиты и скрипты IIS 6.0 • Требует административных привилегий • Не поддерживает удаленное управление WMI • Обеспечивает управление с ОС • Требует написание кода PowerShell • Провайдер устанавливается отдельно • Не поддерживается в режиме Server Core Удаленное управление Используется служба Web Management Service (WMSvc) Защищенное соединение на основе HTTPS Член группы локальных администраторов может подключится на уровне всего сервера: • Доступны все настройки • Не требуется явных разрешений Возможно подключение остальных пользователей на уровне отдельного сайта или приложения • Требуется установка явных разрешений Делегирование административных полномочий Обеспечивает регулирование уровня доступа владельцев, разработчиков и администраторов сайта Поддерживает учетные записи Windows и IIS Manager Обеспечивает возможность сокрытия настроек Веб-приложения - самый низкий уровень настроек Настройка удаленного управления Настройка делегирования управления веб-сервером • Appcmd.exe Unlock Config “Default web site /” /section:system.webserver /serverRuntime /commit:apphost • <location path= “Default web site” overrideMode=“Allow”> • <system.webServer> • <serverRuntime /> • </system.webServer> • </location> Провайдер PowerShell для IIS Обеспечивает автоматизацию задач с управлением и поддержкой веб-сервера IIS Преимущества: Администрирование с помощью скриптов Возможность многократного повторения на множестве веб-серверов Консолидация информации со множества веб-серверов в реальном времени Возможности Добавление, удаление, изменение конфигурации сайтов, пулов приложений, виртуальных каталогов Конфигурирование параметров SSL Резервное копирование конфигураций Мониторинг Пример команды PowerShell • Создание сайта • New-Website –Name MySite –Port 8000 • -PhysicalPath c:\www –ApplicationPool MyAppPool Возможности PowerShell 2.0 PSSession Требования к серверу для обеспечения PSSession • Необходимо наличие следующий компонентов: • .NET Framework 2.0 • WinRM • PowerShell 2.0 Создание веб-узла При добавлении нового веб-узла средствами Диспетчера IIS указываются: • Имя сайта • Пул приложения • Физический путь (локальный или сетевой ресурс) • Привязка, включающая в себя: • Тип (http, https) • ip-адрес • Порт • Имя узла Дополнительные настройки Для контроля над сетевыми ресурсами могут быть установлены: • Пропускная способность (байт/сек) • Максимальное количество подключений • Тайм-аут соединения (сек) Можно изменить стандартные сообщения об ошибках • Есть исключения – ошибка 500 Internal Server Error Страницы ошибок Application Набор скриптов, исполняемых файлов, модулей и контента, обеспечивающих функциональность сайта. Соответствует некоторой части пространства имен URL сайта. Включает как минимум одну виртуальную директорию (корневую директорию “/”). IIS 7.0 поддерживает набор различных типов приложений. Виртуальный каталог Виртуальный каталог устанавливает соответствие между URLпутем и контентом. Расположение контента: • Физический путь (на локальном сервере) • UNC путь Если URL не указан конкретный документ, отображается документ по умолчанию • Документов по умолчанию может быть несколько • Администратор может упорядочить документы по умолчанию • Если документ по умолчанию не задан, отклик определяется настройкой Просмотр каталога (Directory Browsing) Документы по умолчанию Application Pool Объект IIS, обеспечивающий контекст и изоляцию приложений Обслуживается одним или несколькими рабочими процессами Может содержать один или несколько приложений Обеспечивает контроль за работой приложений с помощью функции Recycling Поддерживает два режима обработки запросов • Интегрированный • Классический На уровне пула задается версия .NET