Достоинства веб

advertisement
АДМИНИСТРИРОВАНИЕ
ИНФОРМАЦИОННЫХ СИСТЕМ И
СЕТЕЙ
Лекция 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
Download