пятница, 12 января 2018 г.

Настройка IIS

Сейчас стало популярным выставлять свой каталог в Интернет. А некоторые даже

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

установка и настройка веб-шлюза в АС-Библиотека-3 оставляет множество вопросов.

Особенно в части настройки IIS под веб-шлюз. Не будем полагаться на установщик АС-3,

а сделаем всё вручную. Причём упор будет сделан на минимальный набор модулей IIS,

необходимых для функционирования веб-шлюза. В этом и будет заключаться "эксперимент".

В чём смысл минимальности? Очень просто - сокращение "поверхности атаки". Чем больше

механизмов (большей частью не нужных) находится в "активном" состоянии тем больше

вероятности, что в каком-то найдётся "брешь". Кроме того это приводит к

дополнительной нагрузке на систему. Я буду показывать на 2016-м сервере, хотя все

необходимые модули, с теми же наименованиями, доступны в прежних версиях. В

клиентских ОС (например "семёрке") они доступны через "Программы и компоненты"-

>"Включение или отключение компонентов Windows". Кроме того, для 64-разрядных систем

отметим дополнительное действие, для разрешения запуска 32-разрядных процессов (АС-3

вся 32-разрядная).

Итак, предположим, что установщик АС-Библиотека-3 уже создал папку "EWWW" и настроил

веб-шлюз на локальный Z-сервер АС3 (они не обязательно должны быть на одном

физическом компьютере). Запускаем "Мастер добавления ролей и компонентов" и отмечаем

IIS.


Жмём далее, соглашаемся с добавлением "консоли управления" и, далее, до "Выбора служб

ролей".



В подразделе "Безопасность" нам понадобится элемент "Фильтрация запросов".



В общем то шлюз будет работать и без него, но если прочтёшь его описание (см.

картинку выше), сразу станет ясно чем "прикрыть" вывод нежелательных файлов (см.

статью "Шлюз"). Но об этом позже.
В подразделе "Исправность и диагностика" потребуется необязательный элемент "Ведение

журнала HTTP".



Это лог сервера IIS. В нём сохраняется вся активность пользователя - посещения сайта,

что искали, что заказали и т.д. Вещь весьма полезная для статистики. Кроме того,

можно вести учёт обращений. Одна проблема - нет парсера для обработки, а вручную

разбирать не серьёзно. Но начать накапливать статистику можно уже сейчас. Будем

считать этот элемент полезным.
Далее "Общие функции HTTP".


"Документ по умолчанию" абсолютно не обязателен, если указать ссылку на сайт в виде

http://xxxxxxxx.ru/Lib/Ewww.dll. Он просто добавит Ewww.dll для ссылки вида

http://xxxxxxxx.ru/Lib. Ставить или нет, решай сам. Я выбрал, для демонстрации

дальнейшей настройки.
"Статическое содержимое" абсолютно необходим. Через него пойдут все картинки и

вспомогательные файлы типа .css.

"Производительность" можно полностью отключить. Картинки, как правило, уже сжаты

JPEG, а текста мало.
"Разработка приложений" - странное название. Разрабатывать ничего не придется, а вот

выбрать "Расширения ISAPI" абсолютно необходимо, поскольку Ewww.dll - это и есть

расширение ISAPI.



"FTP сервер" пропускаем. Из "Средства администрирования" выбираем "Консоль управления

службами IIS".



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

Возможно, потребуется перезагрузка.
Запускаем "Диспетчер служб IIS" из "Администрирование". Нужна небольшая настройка.
Выделяем F16(F16\Администратор). F16 - это имя сервера, у тебя будет другое. Здесь

настройки для всего сервера. Настроим необходимые, потом добавим "Виртуальный

каталог" с АС-3 и завершим настройки.



Компонент "Ведение журнала". Здесь можно "подсмотреть" где IIS будет сохранять

журналы. Можно оставить как есть. Важен выбор формата "W3C".



И, возможно, я бы изменил "Переход на новый файл журнала->Расписание" на

"Ежемесячно". Таким образом, за год будет 12 файлов, которые хорошо сожмутся любым

архиватором.

Далее "Ограничения ISAPI и CGI". Добавляем путь к EWww.dll и разрешаем выполнение

пути расширения.



Результат на следующей картинке



Теперь, действие, необходимое для 64 разрядных ОС (а серверные ОС теперь все 64-

разрядные). Выделяем "Пулы приложений". Правой кнопкой по "DefaultAppPool" (в нём по

умолчанию будет работать EWww.dll) вызываем контекстное меню и "Дополнительные

параметры...". Разрешаем 32-разрядные приложения.



Настало время собственно "пристроить" наш сайт. Надо отметить, что вариантов здесь

немало. Чтобы не вносить путаницу я сделаю так, как это, раньше, делал установщик.

Поэтому просто добавим виртуальный каталог к сайту по умолчанию "Default Web Site".

Щёлкаем по нему правой кнопкой и выбираем "Добавить виртуальный каталог...". В

"Псевдониме" пишем "Lib" и указываем путь к папке "EWWW".



Выделяем только что добавленный "Lib" и сделаем настройки, относящиеся только к нему.
"Документ по умолчанию". Удаляем всё что есть (index.html, ...) и добавляем

"EWww.dll".



Далее "Сопоставление обработчиков". Щёлкаем правой кнопкой на "ISAPI-dll" и выбираем

в контекстном меню строку "Изменение разрешений функции ...". Ставим галочку на

"Выполнение".



Следующий компонент "Фильтрация запросов". Здесь можно ограничить доступ к некоторым

элементам сайта, а именно к настройкам. Почему это важно смотри в архиве статью

"Шлюз". Поскольку сам IIS прячет свои настройки в "Скрытые сегменты" я поступлю так

же. Просто добавим "EWww.xml".



Всё. Это тот минимум настроек IIS, необходимый для работы каталога в сети. Запускаем

браузер. Набираем "http://localhost/Lib".



Порядок настройки необязателен, но некоторые пункты зависят от предыдущих.
Напоследок один полезный совет. Чтобы сервер надёжно "перечитал" настройки, иногда,

бывает полезно завершить процесс "w3wp.exe" в диспетчере задач.



Это особенно актуально после изменения настроек самого шлюза в "EWww.exe".
Что делать, если у тебя уже установлены лишние модули IIS, решай сам. Однако
отключение указанных модулей или изменение их настроек приведёт к неработоспособности
каталога.
Есть вопросы - пиши в комментарий или на acbib3@yandex.ru.