Программирование в IIS

         

Добавление пользователя в группу


В консоли MMC откройте запись Groups (Группы) в пункте Local Users and Groups (Локальные пользователи и группы).Дважды щелкните на группе BeerBrewers Newsletter Group.Нажмите на кнопку Add (Добавить).Выберите учетную запись пользователя, которую следует добавить в данную группу.Нажмите на кнопку OK два раза.



Добавление веб-сайтов в IIS


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

В консоли IIS MMC выделите Web Sites (Веб-узлы).Выберите команду Action\New\Web Site (Действие\Создать\Веб-сайт).Откроется мастер веб-сайта (Web Site Creation Wizard). Нажмите на кнопку Next (Далее).Введите описание (beer-brewers.com test site).Нажмите на кнопку Next (Далее).В окне IP addresses and Port Settings (IP-адреса и параметры порта) в ниспадающем списке выберите IP-адрес.Нажмите на кнопку Next (Далее).В окне Web Site Home Directory (Домашний каталог веб-сайта) перейдите к папке тестового сайта и выделите ее.Дважды нажмите на кнопку Next (Далее), после чего нажмите на кнопку Finish (Готово).

Повторите эти шаги для создания функционирующего веб-сайта.



Написание кода


Данный код реализует простой веб-сайт со страницей по умолчанию и меню, расположенным вверху страницы и содержащим три ссылки: Home, About Us и ссылку на страницу регистрации. Страница регистрации содержит форму, предназначенную для заполнения, которая передает информацию в базу данных для обеспечения ежемесячной отправки новостей. Данный сайт состоит из шести файлов (см. рис. 7.5).


Рис. 7.5.  Перечень файлов в каталоге

Ниже приведен демонстрационный код каждого файла.

Листинг 7.1. Default.htm (html, txt)

Листинг 7.2. HomePage.htm (html, txt)

Листинг 7.3. SignUp.htm (html, txt)

Листинг 7.4. SignUpPost.asp (html, txt)

Листинг 7.5. Top.htm (html, txt)

Листинг 7.6. UnderConstruction.htm (html, txt)

Данный код применяется к функционирующему сайту. Данные для функционирующего и тестового сайтов одинаковы, за исключением имени таблиц базы данных и URL тестового сайта. Один набор этих файлов располагается в каталоге функционирующего сайта, а другой – в каталоге тестирования. Страница newsletter.htm представляет собой лишь новостное письмо, и с ней не связан какой-либо код, поэтому здесь она не приводится.


Листинг 7.3. SignUp.htm

<HTML> <HEAD> <TITLE> Server </TITLE> </HEAD> <BODY> <% ' Set up and open the database using the DSN



Set conn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") conn.open "DSN=BeerBrewersDSN;" rs.open "BeerBrewersTable", conn, 2, 3

' Add a new record using all the fields in the form rs.addnew rs("FirstName") = request("FirstName") rs("LastName") = request("LastName") rs("Address") = request("Address") rs("City") = request("City") rs("State") = request("State") rs("Zip") = request("Zip") rs("Country") = request("Country") rs("Email") = request("Email")

' Update the records and close the connection rs.update rs.close conn.close

' Always close out the objects to eliminate memory leaks SET conn = Nothing SET rs = Nothing %>

Your information has been updated. You will receive the newsletter in 4-6 weeks

Thanks!

</BODY> </HTML>

Листинг 7.4. SignUpPost.asp

<html> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="100%" height=60 border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="middle" align="center"> </td> <td valign="middle" align="center"> <p align="center"><a target="main" href="homepage.htm">Home</a></p> </td> <td valign="middle" align="center"> <p align="center"><a target="main" href="https://www.beer-brewers.com/signup.htm">Sign up for the newsletter</a></p> </td> <td valign="middle" align="center"> <p align="center"><a target="main" href="https://www.beer-brewers.com/NewsLetter.htm">Current Newsletter</a></p> </td> <td valign="middle" align="center"> <p align="center"><a target="main" href="UnderConstruction.htm">About Us</a></p> </td> </tr> </table> </body> </html>

Листинг 7.5. Top.htm

<HTML> <HEAD> <TITLE> Under Construction </TITLE> </HEAD> <BODY> This page is under construction. Please come back later. </BODY> </HTML>

Листинг 7.6. UnderConstruction.htm

Данный код применяется к функционирующему сайту. Данные для функционирующего и тестового сайтов одинаковы, за исключением имени таблиц базы данных и URL тестового сайта. Один набор этих файлов располагается в каталоге функционирующего сайта, а другой – в каталоге тестирования. Страница newsletter.htm представляет собой лишь новостное письмо, и с ней не связан какой-либо код, поэтому здесь она не приводится.


Настройка безопасности веб-сайта


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



Настройка DNS


После регистрации доменного имени необходимо создать зону и настроить записи DNS для сервера. Мы будем использовать сервер Microsoft DNS, входящий в комплект WS03. (Для получения инструкций по установке сервера DNS обратитесь к лекции 8 курса "Администрирование web-серверов в IIS".)

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

Откройте консоль MMC DNS с помощью команды Start\Administrative Tools\DNS.Щелкните правой кнопкой мыши на записи Forward Lookup Zones (Зоны прямого поиска) и выберите Select New Zone (Выбрать новую зону).Откроется мастер новой зоны (New Zone Wizard). Нажмите на кнопку Next (Далее).В нашем случае создается главная зона, поэтому выберите соответствующую опцию и нажмите на кнопку Next (Далее).Введите имя зоны (beer-brewers.com). Наш сервер DNS не является контроллером домена, и мы не будет хранить его в Active Directory.Имя файла зоны по умолчанию нам подходит, поэтому нажмите на кнопку Next (Далее).Укажите, следует ли разрешить динамические обновления. Не обязательно обеспечивать динамическое обновление записей, так как изменяться они будут нечасто. Выберите опцию запрета динамических обновлений, после чего нажмите на кнопку Next (Далее).Нажмите на кнопку Finish (Готово).


Рис. 7.1.  Рассматриваемая зона DNS

Теперь давайте создадим записи DNS. Мы видим? что уже имеются записи Start of Authority (SOA) и Name Server (NS) (см. рис. 7.1). Следует добавить две записи типа "А", чтобы пользователи осуществляли доступ к сайтам www.beer-brewers.com и test.beer-brewers.com.

Щелкните правой кнопкой мыши на зоне beer-brewers.com в области слева и выберите команду New Host (A) (Создать узел А).Именем нашего узла является "www", так как оно используется всеми пользователями сети интернет. Введите в поле имени www (см. рис. 7.2).


Рис. 7.2.  Окно New Host (Новый узел) зоны www.beer-brewers.com

Введите IP-адрес рассматриваемого сайта (это IP-адрес, присвоенный серверу с IIS, выбранный ранее). Данный IP-адрес будет присвоен веб-сайту. Для записи WWW следует использовать IP-адрес сайта функционирования.Для этой записи не будет создаваться Pointer Resource Record (PTR) (запись ресурса указателя), поскольку для блока IP не реализуется зона обратного поиска. Позже для добавления записи обратной зоны можно будет отправить IP-адрес и имя записи PTR поставщику услуг интернета.Нажмите на кнопку Add Host (Добавить узел).Нажмите на кнопку Done (Готово).Повторите эти шаги для создания еще одной записи "А" для тестового сайта. Имя записи Host Record тестового сайта – test.

Мы создали в нашей зоне запись "А", позволяющую клиентам использовать www в имени хоста. Теперь при вводе пользователем вводить в адресной строке браузера адреса http://www.beer-brewers.com

произойдет подключение к DNS-серверу, использующему IP-адрес, связанный с данным URL.



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


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

Откройте консоль MMC IIS и найдите файл newsletter.htm.Щелкните на файле правой кнопкой мыши и выберите Proeprties (Свойства).Откройте вкладку File Security (Безопасность файлов).Нажмите на кнопку Edit (Изменить) в области Authentication And Access Control (Аутентификация и контроль доступа).Отключите опцию Enable Anonymous Access (Включить анонимный доступ).Для сайта будет использоваться только базовая аутентификация, поэтому следует отметить опцию Basic Authentication (Базовая аутентификация) и отключить опцию Integrated Windows Authentication (Интегрированная аутентификация Windows).Нажмите на OK один раз; вкладка File Security (Безопасность файлов) останется открытой.

Стоп!

Читатель: Минуточку, разве базовая аутентификация рекомендуется к использованию, ведь в процессе ее работы пароль передается открытым текстом?

Автор: Как правило, да. Но у нас есть сертификат! Весь трафик, связанный с данной страницей, будет зашифрованным.

Читатель: Хорошо, у нас есть сертификат, но как заставить всех его использовать?

Автор: Об этом рассказывается ниже.

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

Нажмите на кнопку Edit (Изменить) в области Secure Communications (Безопасные соединения).Включите опцию Require Secure Channel (SSL).При желании затребуйте 128-битное шифрование, однако в этом случае браузеры, в которых не установлена поддержка 128-битного шифрования, не смогут осуществлять доступ к сайту.Нажмите на OK.два раза.

Теперь рассматриваемый файл защищен паролем, причем пароль также защищен.



Настройка пула приложения


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

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

В консоли IIS MMC выделите Application Pools (Пулы приложения).Выберите команду Action\New\Application Pool (Действие\Создать\Пул приложения).В окне Add New Application Pool (Добавление нового пула приложения) введите имя пула приложения (beer-brewers app pool).Нажмите на кнопку OK.

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

Теперь присвоим данный пул приложения сайту:

В консоли IIS MMC выделите конечный сайт.Выберите команду Action\Properties (Действие\Свойства).В окне cвойств веб-сайта откройте вкладку Home Directory (Домашний каталог).В ниспадающем списке Application Pool (Пул приложения) выберите новый пул приложения.Нажмите на кнопку OK.



Обеспечение безопасности разрешений NTFS сайта


При создании и форматировании нового устройства с использованием файловой системы NTFS ему присваиваются следующие разрешения.

Учетная запись безопасностиРазрешения
Группа локального администрированияПолный контроль.
SYSTEMПолный контроль.
CREATOR OWNER (Создатель-владелец)Полный контроль.
Users (Пользователи)Чтение и выполнение, создание папок/присоединение данных, создание файлов/запись данных.
Everyone (Все)Чтение и выполнение.

Эти разрешения позволяют выполнять действия, выходящие за рамки того, что требуется для рассматриваемого сайта. Кроме того, Internet Guest Account (гостевая учетная запись интернета) не содержит легко контролируемых прав для данной папки, а только разрешения групп Everyone (Все) и Users (Пользователи). Не рекомендуется напрямую присваивать ресурсы определенной учетной записи, может потребоваться более высокий уровень контроля над тем, что доступно учетной записи анонимного пользователя. Выходом из данной ситуации является создание локальной группы, присвоение этой группе прав NTFS и включение в нее анонимного пользователя. Таким образом, для предоставления разрешения другой учетной записи пользователя ее нужно лишь добавить в эту группу.

Разрешения папки настраиваются следующим образом.

Откройте консоль MMC Computer Management (Управление компьютером) с помощью команды Star\Administrative Tools\Computer Management (Пуск\Администрирование\Управление компьютером).Разверните пункт Local Users and Groups (Локальные пользователи и группы).Щелкните на контейнере Groups (Группы).Создайте новую группу, выбрав команду Action\New Group (Действие\Создать группу). Отобразится окно New Group (Новая группа).Укажите имя группы Anonymous Access for BeerBrewers Site. Это имя подходит также и для описания (см. рис. 7.3).


Рис. 7.3.  Группа Anonymous Access for BeerBrewers Site

Присвойте рассматриваемому сайту учетную запись Internet Guest Account (Гостевая учетная запись интернета), нажав на кнопку Add (Добавить) и введя имя учетной записи Internet Guest Account в окне Select Users.
Как было сказано в лекцию 2 курса "Администрирование web-серверов в IIS", эта учетная запись создается при установке IIS, и ей присваивается имя IUSR_имя-компьютера. В нашем примере учетной записи присваивается имя IUSR_MYCOMPUTER.Нажмите на кнопку OK, чтобы добавить учетную запись в область Members (Члены) группы.Нажмите на кнопку Create (Создать) для завершения создания группы, затем нажмите на кнопку Close (Закрыть) для закрытия окна New group (Новая группа).

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

Создайте соответствующую папку на диске E: с помощью Проводника Windows (Windows Explorer) и назовите ее BeerBrewers Site.Откройте окно свойств этой папки, щелкнув на ней правой кнопкой мыши и выбрав команду Properties (Свойства).Откройте вкладку Security (Безопасность) папки (см. рис. 7.4). Первое, что необходимо сделать – отключить наследование разрешений. Нажмите на кнопку Advanced (Дополнительно) и отключите опцию Allow Inheritable Permissions From The Parent To Propogate To This Object And All Child Objects (Разрешить распространение наследуемых разрешений родительского объекта на данный объект и все дочерние объекты).При отключении опции откроется диалоговое окно Security (Безопасность), предлагающее скопировать или удалить разрешения. Нажмите на кнопку Copy (Копировать), чтобы скопировать разрешения.Нажмите на кнопку OK для выхода из окна Advanced Security Settings (Дополнительные настройки безопасности).Удалите объекты Creator Owner (Создатель-владелец) и Users (Пользователи) из списка Group Or User Names (Группы или имена пользователей), щелкая на имени и нажимая на кнопку Remove (Удалить).Рассматриваемая группа Anonymous (Анонимные пользователи) будет по умолчанию иметь разрешения Read & Execute (Чтение и выполнение), List Folder Contents (Просмотр содержимого папки) и Read (Чтение) (см.рис. 7.4). Эти параметры приемлемы для рассматриваемого сайта.


Рис. 7.4.  Вкладка окна Site Properties (Свойства сайта)

Мы создали папку, управление которой осуществляют группы Administrators (Администраторы) и Operating System (Операционная система), а чтение и выполнение – все остальные лица. Повторите шаги 1-7 для создания среды разработки для разрабатываемого веб-сайта BeerBrewers Test Site. Для разрешений используйте одну и ту же группу (на самом деле такой подход даже лучше).


Перенос сайта в среду функционирования


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

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


© 2003-2007 INTUIT.ru. Все права защищены.

Подготовка сервера


Данный процесс включает в себя:

проверку устойчивости сервера;создание каталога для веб-сайта;обеспечение безопасности разрешений файловой системы NTFS для сайта.



Получение доменного имени


Первым шагом является выбор и получение доменного имени. В большинстве случаев сначала нужно определить, свободно ли доменное имя, после чего зарегистрировать его в режиме онлайн. Многие имена доменов уже заняты, но, тем не менее, имеются и свободные имена (добавьте в имя дополнительные символы или слова). Например, если имя beerbrewers.com уже занято, выберите другое имя: beer-brewers.com, sudsbrewers.com или berbrewerz.com. Выберите другое расширение: beerbrewers.org или beerbrewers.biz. Некоторые регистраторы имен доменов налагают ограничения на использование доменов верхнего уровня (TLD); чтобы выяснить это, посетите веб-сайт компании-регистратора.

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

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

Регистраторы сохраняют только информацию о сервере DNS, на котором располагаются записи домена; они не хранят информацию о записях A в зонах, созданных клиентом в данном домене. Следовательно, нужно предоставить только имена первичного и вторичного серверов DNS, на которых расположены записи рассматриваемого домена. После настройки этих параметров рекомендуется реализовать хостинг записей сайта на раздельных серверах DNS. Нередко при использовании высокоскоростного подключения (не ниже T1) поставщик услуг интернета (ISP) выступает в роли вторичного сервера DNS для компании-регистратора.

Примечание. Как говорилось в лекции 8 курса "Администрирование web-серверов в IIS", зона "A" является частью домена DNS. Термин "зона" обычно используется для обозначения части домена по отношению к серверу DNS. Поддоменом называется часть домена, входящая в состав зоны. Если в домене существует только одна зона, то используется любой из этих терминов. Запись "А" представляет собой запись DNS Address. Этот тип записи идентифицирует запись несущего ресурса и связывает доменное имя DNS с 32-битным адресом IPv4.



Получение IP-адреса


Следующим шагом является получение двух IP-адресов от поставщика услуг интернета (или выбор адресов из блока доступных). После этого адреса можно присвоить серверу: один IP-адрес – для тестового сайта, а другой – для функционирующего. Необходимы статические неизменные IP-адреса; их изменение сделает веб-сайт недоступным, до тех пор пока не будет обновлен DNS.

После получения статических IP-адресов они присваиваются серверу следующим образом.

В Control Panel (Панель управления) откройте Network Connections (Сетевые подключения).Дважды щелкните на соединении, которое будет использовать данный IP-адрес. В зависимости от конфигурации компьютера в окне присутствует одно или несколько подключений.В появившемся диалоговом окне Status (Состояние) нажмите на кнопку Properties (Свойства).Отобразится окно свойств для рассматриваемого соединения. Выберите Internet Protocol (TCP/IP), после чего нажмите на кнопку Properties (Свойства).Нажмите на кнопку Advanced (Дополнительно) в появившемся окне свойств для открытия окна Advanced TCP/IP Settings (Дополнительные параметры TCP/IP).В области IP-адреса вкладки IP Settings (Настройка IP) (вкладка по умолчанию) нажмите на кнопку Add (Добавить).Введите IP-адрес и маску подсети тестового сайта в окне TCP/IP Address (Адрес TCP/IP), после чего нажмите на кнопку Add (Добавить).Повторите шаги 6 и 7 для присвоения IP-адреса функционирующему сайту.Присвойте рассматриваемому соединению шлюз по умолчанию, если таковой отсутствует.Нажмите дважды на кнопку OK, после чего нажмите на кнопку Close (Закрыть).

Одному интерфейсу можно присвоить несколько IP-адресов. Запомните их, так как они потребуются в дальнейшем.

Примечание. У пользователя может возникнуть вопрос: "А как же заголовки узла? Ведь они позволяют иметь несколько веб-сайтов на сервере?". Это хороший вопрос. Обычно заголовки узлов используются, поскольку с их помощью реализуется экономия IP-адресов. К сожалению, протокол защищенных сокетов SSL и заголовки узлов несовместимы друг с другом. Информация заголовка шифруется при передаче через SSL, поэтому ее сложно расшифровывать. Поэтому в нашем примере используется IP-адрес.



Получение сертификата для функционирующего сайта


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

Процесс получения сертификата функционирующего сайта аналогичен случаю с тестовым сайтом, за исключением того, что коммерческий сертификат запрашивается у коммерческого CA, и отправляется файл запроса.

Запросите сертификат в консоли IIS MMC.Откройте сайт коммерческого бюро сертификатов и запросите сертификат.Отправьте в онлайн-бюро файл запроса, сгенерированный в IIS.Обработайте запрос посредством установки файла ответа CA.

Каждое коммерческое бюро сертификатов имеет свой процесс получения сертификата. Важно помнить, что информация запроса на сертификат должна соответствовать информации, используемой в запрашивающей организации. Для больших компаний большое значение имеет номер D-U-N-S. В нашем случае не идет речь о корпорации, поэтому идентификация рассматриваемой компании осуществляется отправкой письма от президента клуба на официальном бланке компании. В остальном же для установки сертификата необходимо выполнить такие же шаги, как и для тестового сайта.

Примечание. Обратитесь к лекции 10 курса "Администрирование web-серверов в IIS" для получения дополнительной информации, связанной с сертификатами.



Получение сертификата для тестового сайта


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

Как говорилось в лекции 10 курса "Администрирование web-серверов в IIS", свое собственное бюро сертификатов (CA) рекомендуется сделать автономным корневым бюро сертификатов, после чего делегировать сертификат подчиненному CA. Затем можно использовать подчиненное бюро сертификатов для выпуска сертификатов без опасности проникновения злоумышленника во всю систему сертификации. Так как рассматриваемый сертификат предназначается для тестового сайта, который не будет отображаться конечным пользователям, нам проще создать CA и выпустить с его помощью сертификат. По-прежнему рекомендуется выпускать сертификат с другого компьютера. Кроме всего прочего, мы используем тестовый сертификат лишь для того, чтобы убедиться в корректной настройке кода SSL.

Получение и установка тестового сертификата состоит из трех шагов.

Запрос сертификата в IIS MMC.Создание запроса на сертификат, генерация сертификата в CA MMC и экспорт сертификата.Обработка запроса и установка экспортированного сертификата обратно в IIS MMC.

Запрос на сертификат осуществляется следующим образом.

Установите Certificate Services (Службы сертификатов) на другой компьютер.Откройте окно Properties (Свойства) для тестового веб-сайта.На вкладке Directory Security (Безопасность каталога) нажмите на кнопку Server Certificate (Сертификат сервера).Отобразится мастер сертификата веб-сервера (Web Server Certificate Wizard). Нажмите на кнопку Next (Далее).Выберите создание нового сертификата, после чего нажмите на Next (Далее).Выберите опцию Prepare The Request Now, But Send It Later (Подготовить запрос сейчас, но отправить его позже) и нажмите на Next (Далее).Введите имя сертификата: beer-brewers.com test site.Выберите число бит; в нашем случае достаточно 1024.Нажмите на кнопку Next (Далее).Введите название организации: beer-brewers.com.Отдел организации относится к тем организациям, в которых имеется несколько отделов или подразделений. В нашем случае просто укажите beer-brewers.com.Нажмите на кнопку Next (Далее).Общее имя является важным параметром, оно представляет собой имя DNS сайта. Поэтому для нашего сайта мы будем использовать имя test.beer-brewers.com.Нажмите на кнопку Next (Далее).Выберите Country/Region (Страна/регион), State/Province (Штат/область) и City/Locality (Город/Район). Сокращения здесь использовать не следует.Нажмите на кнопку Next (Далее).Укажите имя для запроса на сертификат. Запомните это имя и расположение; файл запроса понадобится нам в следующем разделе.Нажмите на кнопку Next (Далее) дважды.Нажмите на кнопку Finish (Готово).

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

Откройте консоль MMC Certification Authority (Бюро сертификатов).Выделите имя CA, после чего выберите Action\All Tasks\Submit New Request (Действие\Все задачи\Отправить новый запрос).Перейдите к расположению запроса на сертификат. Если он расположен на компьютере, не доступном через сеть, придется скопировать запрос на гибкий диск и перенести его на этот компьютер.Выделите файл и нажмите на кнопку Open (Открыть).Запрос на сертификат теперь расположен в папке Pending Requests. Далее необходимо выпустить сертификат. Выделите запрос в папке Pending Requests, после чего выберите команду Action\All Tasks\Issue (Действие\Все задачи\Выпустить).После этого сертификат будет перемещен в папку Issued Certificates (папка изданных сертификатов). Теперь сертификат можно экспортировать для отправки на веб-сервер. Выделите сертификат в папке Issued Certificates и выполните команду Action\All Tasks\Export Binary Data (Действие\Все задачи\Экспорт двоичных данных).Выберите экспорт Binary Certificate (Двоичный сертификат) и сохраните двоичные данные в файле.Нажмите на кнопку OK.Выберите имя для данного сертификата. Запомните имя и расположение; этот файл понадобится в следующем разделе. Рекомендуется использовать расширение .cer.

Теперь можно вернуться в IIS и обработать запрос для использования.

В консоли MMC запустите мастер сертификатов веб-сервера (Web Server Certificate Wizard).Нажмите на кнопку Next (Далее).Выберите обработку запроса в ожидании, после чего нажмите на кнопку Next (Далее).Выберите файл сертификата, после чего нажмите на кнопку Next (Далее).Выберите порт SSL, используемый для данного сертификата. Значение по умолчанию 443 нам подойдет. Нажмите на кнопку Next (Далее).Нажмите на Next (Далее), после чего нажмите на кнопку Finish (Готово).

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


Проверка устойчивости сервера


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

Установлены все необходимые надстройки операционной системы и приложений, особенно надстройки безопасности?Включен на рассматриваемом сервере аудит в локальной политике безопасности?Все учетные записи данного сервера имеют сложный пароль?Включены в IIS только необходимые опции?Используется файловая система NTFS, и являются разрешения безопасными?Используются для каких-либо компонентов повышенные привилегии?Существует постоянная оценка и обновление безопасности на данном сервере?



Создание базы данных


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

ИнформацияИмя поляТип поляДлина поля
ИмяFirstNameText255
ФамилияLastNameText255
АдресAddressText255
ГородCityText255
РегионStateText255
Почтовый кодZipText255
СтранаCountryText255
Адрес электронной почтыEmailText255

Следующим шагом будет создание базы данных. База данных должна иметь разрешение на запись для анонимного пользователя, поэтому нужно добавить соответствующее разрешение в список разрешений NTFS. По этой причине рекомендуется располагать базу данных в другом каталоге, чем папка с веб-сайтом. Если сайт и база данных находятся в одном каталоге, поэтому легко изменить разрешения таким образом, что никто не сможет осуществить запись в базу данных, или, что еще хуже, открыть разрешения для всего каталога. При открытии файла в программе Microsoft Access создается файл .LDB, являющийся файлом блокировки. Если анонимный пользователь не сможет создавать и уничтожать файлы в каталоге с базой данных, то возникнут определенные проблемы.

Давайте создадим каталог на диске E: и присвоим ему имя Databases. Убедитесь, что группа доступа Anonymous (Анонимные пользователи) имеет права на изменение данного каталога.

Для создания базы данных используйте либо графический интерфейс пользователя в Microsoft Access, либо выражение SQL. Присвоим базе данных имя BeerBrewersDB.mdb, а таблицу назовем BeerBrewersTable. Графический интерфейс пользователя достаточно информативен; ниже приводится выражение SQL, использующееся для создания таблицы:

create table BeerBrewersTable ( FirstName varchar(255), LastName varchar(255), Address varchar(255), City varchar(255), State varchar(255), Zip varchar(255), Country varchar(255), Email varchar(255) )

После создания базы данных создадим для нее DSN.

Выберите команду Start\Administrative Tools\Data Sources (ODBC) (Пуск\Администрирование\Источники данных ODBC).В окне Data Sources Administrator (Администратор источников данных) откройте вкладку System DSN (Системное DSN).Нажмите на кнопку Add (Добавить) для добавления нового источника данных.В окне Create New Data Source (Создание нового источника данных) выберите опцию Microsoft Access Driver (*.mdb) (Драйвер Microsoft Access).Нажмите на кнопку Finish (Готово).Введите имя источника данных: BeerBrewersDSN.Нажмите на кнопку кнопку Select (Выбрать) и перейдите к базе данных Access, созданной ранее (E:\Databases\BeerBrewersDB.mdb).После выбора базы данных Access нажмите на кнопку OK несколько раз, чтобы закрыть окно ODBC Administrator (Администратор ODBC).

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

Совет. Если для создания таблицы используется Microsoft Access, то убедитесь в том, что все поля установлены равными значению Allow Zero Length = Yes (Разрешить нулевую длину = Да). Значением по умолчанию является No (Нет), но в этом случае возникнет ошибка, если не все поля будут заполнены.



Создание группы


Откройте консоль MMC Computer Management (Управление компьютером).Выделите в пункте Local Users and Groups (Локальные пользователи и группы) запись Groups (Группы).Выберите команду Action\New Group (Действие\Создать группу).Введите имя группы: BeerBrewers Newsletter Group.Нажмите на кнопку Create (Создать).



Создание каталога для веб-сайта


По умолчанию IIS устанавливается в каталог C:\Inetpub. Вероятно, потребуется отделить файлы операционной системы от файлов приложений, установленных на рассматриваемом компьютере. Веб-сайта можно записать на другое устройство (например, на D:) либо создать папку Web Site на диске E: и записать в нее файлы веб-сайта. Так обеспечивается безопасность с наследованием разрешений. Кроме того, обновление, форматирование или повреждение устройства C: не влияет на данные, хранящиеся на диске D: или E:.



Создание пользователей


В консоли MMC выделите в пункте Local Users and Groups (Локальные пользователи и группы) запись Users (Пользователи).Выберите команду Action\New User (Действие\Создать пользователя).Введите имя пользователя и пароль нового пользователя.Отключите опцию User Must Change Password At Next Logon (Пользователь должен изменить пароль при следующем входе).Нажмите на кнопку Create (Создать).



Создание учетной записи пользователя


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



Тестирование кода


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

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

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



Установка разрешений NTFS


После создания группы ей нужно присвоить права файловой системы. До этого мы присвоили права анонимной группе; теперь настало время добавить в список группу сайта BeerBrewers. Группу следует связывать только с тем файлом (файлами), который должен быть защищен. В данном случае речь идет о файле newsletter.htm.

В Windows Explorer (Проводник Windows) найдите файл newsletter.htm.Щелкните на файле правой кнопкой мыши и выберите Properties (Свойства).Откройте вкладку Security (Безопасность).Нажмите на кнопку Add (Добавить).Найдите группу BeerBrewers Newsletter Group.Нажмите на OK.Наделите группу BeerBrewers Newsletter Group правами чтения и выполнения файла.Нажмите на OK.



Включение ASP


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

В консоли IIS MMC щелкните на пункте Service Extensions (Расширения служб), чтобы развернуть папку.Выделите пункт Active Server Pages (ASP), после чего нажмите на Allow (Разрешить).

Все довольно просто. Теперь технология ASP включена для всех сайтов на данном сервере.



Динамическое веб-содержимое


Если возникли проблемы с динамическим содержимым, помните, что по умолчанию IIS обслуживает только статическое содержимое. Все динамическое содержимое должно активизироваться в области Web Service Extensions (Расширения веб-службы) консоли MMC IIS. Если используется, но не включена, технология ASP, то при попытке клиентов доступа к файлу ASP они получат сообщение об ошибке 404. При использовании расширенного журнала в нем будет содержаться ошибка 404.2 ("Файл или каталог не найден: политика блокировки запрещает данный запрос".

Чтобы включить динамическое содержимое, перейдите в секцию Web Service Extensions (Расширения веб-службы) консоли MMC IIS. Здесь можно добавить расширения веб-службы и разрешить их выполнение.

Следующие расширения веб-служб являются предопределенными:

все неизвестные расширения ISAPI;все неизвестные расширения CGI;страницы Active Server Pages;серверные расширения BITS (если установлены);серверные расширения FrontPage Server Extensions 2002 (если установлены);Internet Data Connector;интернет-печать;включения серверной части;WebDAV.

Чтобы включить расширение службы, выделите его в консоли MMC и нажмите на кнопку Allow (Разрешить). Если нужного расширения нет в списке, то его можно добавить, а затем нажать на кнопку Allow (Разрешить).

Примечание. Прекрасным средством для решения проблем с расширениями веб-служб является гиперссылка Allow All Web Service Extensions For A Specific Application (Разрешить все расширения веб-служб для определенного приложения). Она используется для включения всех расширений, от которых зависит работа одного конкретного расширения.



Файлы журналов


Стоит ли говорить, насколько сильно изучение файлов журналов помогает при разрешении проблем, связанных с сервером IIS. Двумя главными файлами журналов, с которыми следует работать, являются файл журнала IIS (рекомендуется формат W3C) и Windows Event Viewer (Просмотр событий Windows).



Использование оповещений в Performance Monitor


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

Ниже приведены инструкции по созданию оповещения.

В левой области Performance Logs (Журналы производительности) щелкните на записи Alerts (Оповещения).Выберите команду Action\New Alert Settings (Действие\Параметры нового оповещения).В окне New Alert Settings (Параметры нового оповещения) введите имя нового оповещения.Нажмите на клавишу OK.В открывшемся окне свойств с помощью вкладок General (Общие), Action (Действие) и Schedule (Расписание) произведите настройку создаваемых оповещений.



Мониторинг производительности


Необходимо осуществлять мониторинг производительности сервера IIS. Можно иметь программу, написанную лучшими специалистами в мире, однако если сервер, на котором располагается эта программа, будет обладать недостаточно высокой мощностью, то могут возникнуть проблемы, связанные с производительностью. Программа Windows Performance Monitor (Индикатор производительности Windows) (см. рис. 8.2) позволяет фиксировать данные в файле, после чего проверять эти данные на наличие проблем с производительностью. В ОС Windows имеется более 50 объектов производительности, которые можно отслеживать. Программа Performance Monitor (Индикатор производительности) позволяет отслеживать систему в реальном времени, генерировать журналы для дальнейшего просмотра, а также генерировать оповещения, выдаваемые при возникновении настраиваемых условий. Ниже описываются счетчики, которые представляют наибольший интерес при ведении журнала на сервере IIS.


увеличить изображение
Рис. 8.2.  Индикатор производительности

Active Server Pages (ASP). Фиксируют ошибки в сценариях ASP, кэшах шаблонов, статистические данные, связанные с запросами и многое другое.FTP Service (Служба FTP). Отслеживают полное количество байт, соединений, прерванных пользователями и операциями входа, а также передачи файлов. Internet Information Services Global.Отслеживают большие двоичные объекты (BLOB), а также статистическую информацию о файлах и кэшировании URI.Memory (Память). Фиксируют данные об использовании памяти, а также о качестве страничной организации памяти.Network Interface (Сетевой интерфейс). Фиксируют переданные байты, использованную полосу пропускания, а также качество передачи пакетов, включая возникшие ошибки.NNTP Commands (Команды NNTP). Ведут статистику того, сколько команд каждого типа NNTP принимается сервером.NNTP Server (Сервер NNTP). Отслеживают количество байт, пользователей, соединений и поступления данных.Physical Disk (Физический диск). Записывают информацию о передаче данных физическим диском.
Это позволяет определить достижение сервером предела ввода/вывода информации.Processor (Процессор). Записывают процентные значения времени, в течение которого процессор обрабатывает команды, а также состояние процессора.Server (Сервер). Ведут статистику о страничном файле, трафике входа в систему, ошибках и пр.SMTP NTFS Store Driver (Драйвер хранения SMTP NTFS). Отслеживает количество расположенных на сервере сообщений, удаленных сообщений, пронумерованных сообщений и сообщений, находящихся в очереди.SMTP Server (Сервер SMTP). Содержит более 100 счетчиков, предназначенных для фиксирования дополнительной информации о сообщениях.Web Service (Веб-служба). Содержит около 85 счетчиков, отслеживающих различные типы запросов HTTP и ошибок, запросов CGI/ISAPI и информацию о подключениях.Web Service Cache (Кэш веб-службы). Фиксируют статистические данные о компоненте веб-сервера, включая успешное и неудачное выполнение операций для различных элементов, используемых веб-службой. Большая часть счетчиков взаимодействует с кэшированием URI.


Мониторинг в реальном масштабе времени


С помощью System Monitor (Системного индикатора) осуществляется мониторинг сервера в реальном времени.

Откройте консоль MMC Performance (Производительность), выбрав команду Start\Administrative Tools\Performance (Пуск\Администрирование\Производительность).Щелкните на System Monitor (Системный индикатор) (этот элемент выделен по умолчанию).На панели инструментов вверху индикатора щелкните на значке "+".В диалоговом окне Add Counters (Добавить счетчики) укажите, какой компьютер необходимо отслеживать; по умолчанию выбран рассматриваемый компьютер.Из ниспадающего списка выберите объект Performance (Производительность), который необходимо использовать.Выберите из списка отдельный счетчик.При наличии нескольких процессоров выберите тот процессор, для которого выполняется мониторинг, либо выберите значение Total (Все).Нажмите на кнопку Add (Добавить). Счетчик будет добавлен, но окно Add Counters (Добавление счетчиков) останется активным.Повторите шаги 3-7 для каждого счетчика, который необходимо добавить.После добавления всех соответствующих счетчиков нажмите на кнопку Close (Закрыть).

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



О ведении журнала W3C


Так как журнал W3C содержит наиболее полный набор полей, в которые записываются данные, данный журнал наиболее полезен при разрешении проблем. Если журнал W3C Extended не используется, можно временно сменить тип журнала в процессе отслеживания проблем, но только в том случае, если данные журнала сайта не используются для каких-либо других важных целей. Журнал W3C Extended может содержать очень большой объем информации о сайте.

Какая учетная запись используется клиентом для доступа к сайту?

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

Какой браузер используется клиентом для доступа к сайту?

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

Какие передаются коды состояния?

Когда IIS передает сообщение об ошибке, на самом деле не отправляется конкретное сообщение об ошибке; вместо этого генерируется общая ошибка. Это означает, что клиент не получает код подсостояния. Если политика блокировки запрещает клиенту доступ к файлу, клиент получает характерную ошибку "404 not found", в то время как расширенный файл журнала будет содержать полную информацию об ошибке 404.2. В дополнение к этому, коды stats находятся в одной строке с временем/датой, пользователем, Internet Protocol (IP), браузером и т.д., поэтому гораздо легче связать сообщение об ошибке с конкретным клиентом.


Базовый перечень кодов состояния HTTP определен RFC 2616. Эти коды являются расширяемыми, поэтому дополнять этот список могут различные организации. Microsoft добавила свою реализацию кодов подсостояния. В таблице 8.1 приведены оба набора кодов и их базовые значения.

Таблица 8.1. Коды состояния HTTP и их значенияКодЗначение
100Продолжение.
101Переключение протоколов.
200OK.
201Создано.
202Принято.
203Неавторитетная информация.
204Нет содержимого.
205Сброс содержимого.
206Частичное содержимое.
300Несколько вариантов.
301Удалено окончательно.
302Найдено.
303Смотреть другие.
304Не изменено.
305Использовать proxy.
307Временное перенаправление.
400Некорректный запрос.
401Неавторизованный доступ.
401.1Неавторизованный доступ: Доступ запрещен по причине неверных аутентификационных данных.
401.2Неавторизованный доступ: Доступ запрещен по причине использования сервером другого метода аутентификации.
401.3Неавторизованный доступ: доступ запрещен согласно списку контроля доступа (ACL), установленному на запрашиваемом ресурсе.
401.4Неавторизованный доступ: аутентификация отклонена фильтром, установленным на веб-сервере.
401.5Неавторизованный доступ: аутентификация отклонена приложением Internet Server Application Programming Interface/Common Gateway Interface (ISAPI/CGI).
401.7Неавторизованный доступ: доступ запрещен согласно политике авторизации URL на веб-сервере.
402Необходим платеж.
403Доступ запрещен.
403.1Доступ запрещен: в доступе на выполнение отказано.
403.2Доступ запрещен: в доступе на чтение отказано.
403.3Доступ запрещен: в доступе на запись отказано.
403.4Доступ запрещен: для просмотра данного ресурса требуется протокол SSL.
403.5Доступ запрещен: для просмотра данного ресурса требуется SSL 128.
403.6Доступ запрещен: IP-адрес клиента отклонен.
403.7Доступ запрещен: требуется сертификат клиента SSL.
403.8Доступ запрещен: имя системы имен доменов (DNS) клиента отклонено.
403.9Доступ запрещен: слишком много клиентов пытаются подключиться к веб-серверу.
403.10Доступ запрещен: веб-сервер настроен на отказ в доступе на выполнение.
403.11Доступ запрещен: пароль был изменен.
403.12Доступ запрещен: сертификат клиента отклонен связями сертификата сервера.
403.13Доступ запрещен: сертификат клиента был аннулирован на веб-сервере.
403.14Доступ запрещен: перечень каталогов отклонен на веб-сервере.
403.15Доступ запрещен: права доступа клиента превысили предельно допустимые на сервере.
403.16Доступ запрещен: сертификат клиента некорректен или не пользуется доверием веб-сервера.
403.17Доступ запрещен: сертификат клиента просрочен или еще не вступил в силу.
403.18Доступ запрещен: Невозможно выполнить запрошенный URL в текущем пуле приложения.
403.19Доступ запрещен: невозможно выполнить CGI для клиента в данном пуле приложения.
403.20Доступ запрещен: доступ по паспорту не удался.
404Не найден.
404.1Файл или каталог не найден: веб-сайт недоступен через запрашиваемый порт.
404.2Файл или каталог не найден: политика блокировки запрещает данный запрос.
404.3Файл или каталог не найден: политика связей Multipurpose Internet Mail Extensions (MIME) запрещает данный запрос.
405Метод запрещен.
406Неприемлемо.
407Требуется аутентификация proxy.
408Время запроса истекло.
409Конфликт.
410Утеряно.
411Требуется значение длины.
412Предварительное условие не прошло.
413Запрос слишком велик.
414Идентификатор URI слишком велик.
415Неподдерживаемый тип носителя.
416Запрошенный диапазон не удовлетворителен.
417Предположение неверно.
500Внутренняя ошибка сервера.
500.11Ошибка сервера: приложение завершает работу на веб-сервере.
500.12Ошибка сервера: приложение перезапускается на веб-сервере.
500.13Ошибка сервера: веб-сервер занят.
500.14Ошибка сервера: неверная конфигурация приложения на веб-сервере.
500.15Ошибка сервера: прямые запросы GLOBAL.ASA не разрешены.
500.16Ошибка сервера: неверные аутентификационные данные UNC.
500.17Ошибка сервера: хранилище авторизации URL не может быть найдено.
500.18Ошибка сервера: хранилище авторизации URL не может быть открыто.
500.19Ошибка сервера: данные для этого файла в метабазе сконфигурированы неверно.
500.20Ошибка сервера: область авторизации URL не может быть найдена.
500.100Внутренняя ошибка сервера: ошибка ASP.
501Не применено.
502Неисправный шлюз.
503Служба недоступна.
504Истек период ожидания шлюза.
505Версия HTTP не поддерживается.

Отключение веб-службы


В некоторых случаях клиент получает сообщение об ошибке HTTP 503. При появлении ошибок 503 события записываются в журнал событий Windows. В этом случае следует открыть Event Viewer (Просмотр событий) и проверить, где возникла ошибка – в файле HTTP.sys или в службе WWW. Если ошибка возникла в HTTP.sys, проверьте длину очереди пула приложения. Ошибка могла возникнуть из-за получения слишком большого количества запросов. Очередь пула приложения можно изменить вручную.

В консоли MMC IIS выделите пул приложения, который необходимо изменить.Выберите команду Action\Propеrties (Действие\Свойства), после чего откройте вкладку Performance (Производительность).В области Request Queue Limit (Предел очереди запроса) увеличьте значение количества запросов.Нажмите на кнопку OK.

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

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

В консоли MMC IIS выделите пул приложения, в который следует внести изменения.Выберите команду Action\Properties (Действие\Свойства) и откройте вкладку Health (Состояние).Увеличьте значения параметров для ошибок и/или интервала времени, в течение которого IIS отслеживает ошибки рабочих процессов.Нажмите на кнопку OK.



Проблемы, связанные с разрешениями


Неверная установка разрешений файловой системы NT File System (NTFS) может разрушительно сказаться на веб-сайте. Необходимо не только помнить о разрешениях на сайте, но и обеспечить доступность любых используемых COM-объектов. Разрешения на сайте довольно просты и понятны, однако большинство динамически подсоединяемых библиотек (DLL) находятся в каталоге System32. В этом-то и заключается сложность.

Если рабочий процесс IIS не может получить доступ к DLL-библиотеке ISAPI со списком ACL, то все запросы на эту библиотеку будут завершаться ошибкой 503. Необходимо, чтобы рабочий процесс мог загрузить все библиотеки DLL, используемые на сайте.

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

Предупреждение. В данный момент читатель может задаваться вопросом: "В этой книге не меньше 30 раз говорилось о том, что нельзя использовать расширенные разрешения, так в чем же дело?". Это справедливый вопрос, однако данный подход помогает определить, связана ли проблема с разрешениями. Расширенные полномочия требуют строжайшего контроля. Определенно не стоит использовать данный подход в тот момент, когда сайт находится в состоянии функционирования. Необходимо оградить сайт от доступа посторонних лиц, а затем протестировать его. По окончании этого процесса необходимо вернуть разрешениям соответствующие значения. Нельзя же допустить, чтобы с сайтом все работали на правах администраторов!



Программа просмотра событий Event Viewer


Программа Event Viewer (Просмотр событий) может фиксировать события, связанные с IIS. Event Viewer состоит из трех (или четырех, если установлена DNS) компонентов:

Журнал приложения. Содержит информацию о приложениях, выполняющихся на сервере. Большинство объектов COM передают информационные сообщения и сообщения об ошибках в журнал приложений.Журнал безопасности. Содержит всю собираемую сервером информацию об аудите. Данный журнал будет настроен чуть позже.Системный журнал. Содержит информацию о самой операционной системе. В системный журнал передают информацию службы.Журнал сервера DNS. Существует только в том случае, если установлен компонент Microsoft DNS Server, и содержит события, связанные в сервером DNS.

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

Ниже приведены некоторые сообщения программы Event Viewer (Просмотр событий):

запуск и остановка службы;ошибки приложений;активность COM-объекта;ошибки служб;ошибки пула приложений;информация о новостях.

Также можно настроить аудит и просмотр информации в журнале Security (Безопасность). Аудит настраивается в политике безопасности и в окне Group Policy Objects (Объекты политики группы). Ниже приведены указания по настройке аудита в локальной политике безопасности для отдельного сервера.

Выберите команду Start\Administrative Tools\Local Security Policy (Пуск\Администрирование\Локальная политика безопасности).В окне Local Security Settings (Параметры локальной безопасности) (см. рис. 8.1) выберите Local Policies (Локальные политики), после чего выберите Audit Policy (Политика аудита).Чтобы включить аудит для элемента, дважды щелкните на элементе в правой области.Выберите нужный аудит: Success (Успех), Failure (Ошибка) или обе опции.Нажмите OK.


Рис. 8.1.  Политика аудита в окне Local Security Settings (Параметры локальной безопасности)



Рабочие процессы


В IIS 5 приложения выполнялись внутри процесса с использованием по умолчанию учетной записи LocalSystem. Эта учетная запись имеет более высокий уровень прав, нежели рабочие процессы IIS 6, так как они работают как сетевые службы. Если приложение, правильно работающее в среде IIS 5, вызывает проблемы при работе с IIS 6, можно проверить следующие настройки.



Работа с журналами счетчиков


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

В консоли MMC Performance (Производительность) выделите Counter Logs (Счетчики журналов) в пункте Performance Logs and Alerts (Журналы и оповещения производительности).Выберите команду Action\New Log Settings (Действие\Параметры нового журнала).В окне New Log Settings (Параметры нового журнала) введите имя создаваемого журнала.Нажмите на кнопку OK. Откроется окно свойств.

В окне свойств для рассматриваемого журнала вы увидите три вкладки: General (Общие), Log Files (Файлы журнала) и Schedule (Расписание).



Рециркуляция рабочих процессов


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

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



Связи MIME


Если возникла проблема со статическими файлами, следует проверить зарегистрированные типы MIME. По умолчанию IIS обслуживает только файлы HTML и текстовые файлы. Если запрашивается файл неизвестного типа, IIS передает клиенту ошибку 404 и фиксирует в журнала формата W3C Extended ошибку 404.3. Если возникла такая проблема, проверьте журнал IIS, и при обнаружении кода 404.3, добавьте в список связь MIME:

Откройте консоль MMC IIS с помощью команды Start\Administrative Tools\Internet Information Services (IIS) Manager (Пуск\Администрирование\Диспетчер IIS).Щелкните правой кнопкой мыши на компоненте (на глобальном уровне, на уровне сайта или уровне каталога), для которого следует изменить типы MIME, и выберите Propеrties (Свойства).Откройте вкладку HTTP Headers (Заголовки HTTP), после чего нажмите на кнопку MIME Types (Типы MIME) в области MIME Types.В появившемся окне типов MIME нажмите на кнопку New (Создать).В текстовом поле Extension (Расширение) введите расширение файла, которое нужно добавить.В соответствующем текстовом поле укажите тип MIME.Нажмите на кнопку OK. Расширение будет добавлено в перечень зарегистрированных типов MIME.Нажмите на кнопку OK еще два раза.

Если тип MIME настроен неправильно, но расширение отображается в списке Registered MIME Types (Зарегистрированные типы MIME), IIS по-прежнему будет обслуживать файл, однако не будет знать, что с ним делать. Пользователям IE будет предложено выбрать программу для открытия данного файла.

Совет. Не знаете, какой тип MIME является корректным? Все типы MIME присваиваются и фиксируются организацией Internet Assigned Numbers Authority (IANA). С их списком можно ознакомиться по адресу http://www.iana.org.



Учетная запись рабочего процесса


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

Ниже описан процесс изменения учетной записи рабочих процессов в пуле приложения:

Выделите пул приложения в консоли MMC IIS.Выберите команду Action\Properties (Действие\Свойства).Перейдите на вкладку Identity (Учетная запись).Выберите учетную запись Network Service (Сетевая служба), Local Service (Сетевая служба) или Local System (Локальная система) либо выберите учетную запись пользователя локального компьютера или доверенного домена.



Вкладка Action (Действие)


Во вкладке Action (Действие) (см. рис. 8.7) указываются действия, выполняемые при возникновении события. Можно задать следующие действия.


Рис. 8.7.  Вкладка Action (Действие)

Log An Entry in the Application Event Log (Заносить запись в журнал событий приложения). Записывает событие с детальными данными счетчика оповещения, значение, вызвавшее оповещение, и пороговое значение. Источником события является SysmonLog.

Send A Network Message To (Отправить сетевое сообщение). Отправляет сетевое сообщение с помощью службы сообщений по имени, указанном в текстовом поле.

Start Performance Data Log (Запуск журнала с данными о производительности). Запускает журнал, указанный в ниспадающем списке. Этот журнал будет функционировать до остановки расписания или до остановки вручную.

Run This Program (Выполнить эту программу). Выполняет определенную программу. Опция используется для запуска отладчика, выполнения сценария, отправки электронной почты или выполнения другого действия. Приложение запускается с указанными аргументами командной строки. Опция прекрасно подходит для выполнения сценария VBScript.

Command Line Arguments (Аргументы командной строки). Указывает параметры, передаваемые приложению при его выполнении. Содержит семь аргументов:

Single argument string – строка с одним аргументом;Date/Time – дата/время;Measured value – измеряемое значение;Alert Name – имя оповещения;Counter Name – имя счетчика;Limit value – предельное значение;Text message – текстовое сообщение.

Опция Single argument string присваивает строке формат разделителей-запятых вместо указания каждой переменой по отдельности. Опция Text message позволяет вводить любой текст, который необходимо отправить. Это очень полезная возможность; так как осуществляется настройка оповещения, пользователь знает, что именно запускается, и добавляет текстовое сообщение для переменной, которая необходима для запуска сценария VBScript, написанного для обработки рассматриваемой ситуации.



Вкладка General (Общие)


Во вкладке General (Общие) (см. рис. 8.3) добавляются объекты и счетчики в журнал, а также настраивается метод сбора данных.


Рис. 8.3.  Вкладка General (Общие)

Под объектами подразумеваются объекты производительности, определенные Windows. Можно добавить в журнал объект производительности целиком, в результате чего будут автоматически фиксироваться данные для каждого счетчика этого объекта. Данный подход требует большого количества дискового пространства. Для добавления объекта нажмите на кнопку Add Objects (Добавить объекты) и выделите все объекты, отслеживание которых необходимо осуществлять, в открывшемся диалоговом окне. После этого нажмите на кнопку Close (Закрыть).

Счетчиками называются отдельные счетчики производительности, находящиеся в объекте. Можно выбрать мониторинг отдельного счетчика, в результате чего будет использоваться меньший объем дискового пространства. Файл журнала в этом случае не будет столь детализованным, как если бы осуществлялся мониторинг всего объекта. Для добавления счетчика нажмите на кнопку Add Counters (Добавить счетчики) и в открывшемся диалоговом окне выберите нужные счетчики. После этого нажмите на кнопку Close (Закрыть).

Как правило, при наличии достаточного объема дискового пространства и циклов центрального процессора следует добавлять объекты, а не счетчики.

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

В области Sample Data Every (Проверочные данные каждые) настраивается интервал времени сбора информации. По истечении этого интервала индикатор производительности опрашивает все установленные счетчики производительности для получение текущих данных. Эти данные затем записываются в журнал. Чем чаще осуществляется сбор данных, тем больше размер журнала и более подробна фиксируемая информация. Укажите оптимальный интервал времени для соотношения размера файла и степени его детализации – от 1 с до 45 дней.

В текстовом поле Run As (Выполнить как) указывается учетная запись пользователя, под которой выполняется Performance Monitor (Индикатор производительности). Это позволяет выполнять мониторинг независимо от того, кто находится в системе.



Вкладка Log Files (Файлы журнала)


Во вкладке Log Files (Файлы журнала) (см. рис. 8.4) настраивается тип журнала, в который будет записываться информация.


Рис. 8.4.  Вкладка Log Files (Файлы журнала)

Здесь для выбора представлены следующие опции.

Text File (Comma Delimited) – текстовый файл с разделителями-запятыми.Text File (Tab Delimited) – текстовый файл с разделителями-табуляцией.Binary File – двоичный файл.Binary Circular File – двоичный циклический файл.SQL Database – база данных SQL.

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



Вкладка Schedule (Расписание)


Во вкладке Schedule (Расписание) (см. рис. 8.5) настраивается промежуток времени, согласно которому будет осуществляться сбор данных.


Рис. 8.5.  Вкладка Schedule (Расписание)

В области Start Log (Запуск журнала) указывается запуск файла журнала вручную либо запуск по определенным дате и времени.

В области Stop Log (Остановка журнала) указывается необходимость остановки журнала следующими методами:

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

При закрытии журнала можно запускать новый журнала. Если включена опция Start A New Log File (Запускать новый журнал), то будет создаваться новый журнал согласно правилам нумерации, указанным во вкладке Log Files (Файлы журнала). Вы можете указать необходимость выполнения определенной команды при закрытии журнала: задать сценарий, обрабатывающий данные, либо другую программу на усмотрение пользователя.

Осуществив сбор данных, можно с большей долей вероятности выявить проблемы в системе и проверить соответствие сервера IIS системным требованиям.