Брандмауэр для веб-приложений (ModSecurity)
Чтобы обнаружить и предотвратить атаки на веб-приложения, брандмауэр веб-приложений (ModSecurity) проверяет все запросы к вашему веб-серверу и соответствующие ответы от сервера на соответствие своему набору правил. Если проверка пройдена, запрос передается веб-сайту. Если проверка не пройдена, выполняются заданные действия.
ModSecurity - это модуль для Apache. Поэтому он может проверять только те HTTP-запросы, которые доходят до Apache. Для большей производительности веб-сервер Apache по умолчанию работает в связке с другим веб-сервером - nginx. Если вы включите опцию Обрабатывать PHP-файлы с помощью nginx (динамический контент), то брандмауэр веб-приложений не сможет проверять HTTP-запросы, так как они не будут доходить до Apache. Если вы включите опцию Обрабатывать статические файлы с помощью nginx (статический контент), то HTTP-запросы не будут доходить до Apache, поэтому ModSecurity не будет их проверять.
Примечание. Чтобы использовать брандмауэр для веб-приложений (ModSecurity) администраторам, которые обновляют Plesk с версии 11.5, необходимо приобрести новую лицензию для Plesk 12 у компании Odin или своего поставщика.
Чтобы включить брандмауэр веб-приложений:
- Откройте Инструменты и настройки > Брандмауэр для веб-приложений (ModSecurity) (раздел Безопасность ). Нужно установить компонент ModSecurity на ваш сервер.
- Выберите режим работы брандмауэра Включен или Только обнаружение. Каждый входящий HTTP-запрос и соответствующий ответ будут проходить через набор проверочных правил. В случае успешной проверки запрос будет передаваться веб-сайту. Если проверка не удастся, это событие будет занесено в журнал. В режиме Только обнаружение больше никаких действий выполнено не будет. В режиме Включен будет предоставлен HTTP-ответ с кодом ошибки.
Примечание. Режимы брандмауэра для веб-приложений можно устанавливать на уровне сервера и домена. Однако режим, установленный на уровне домена, не может быть выше режима, установленного для сервера. Например, если брандмауэр для веб-приложений на уровне сервера работает в режиме Только обнаружение, его нельзя будет установить в режим On для доменов. Будут доступны только режимы Отключен и Только обнаружение.
- Выберите набор правил, который будет проверяться брандмауэром для каждого входящего HTTP-запроса, или загрузите собственный набор правил. Вы можете выбрать следующие наборы правил:
- OWASP ModSecurity Core Rule Set (CRS). CRS обеспечивает универсальную защиту от неизвестных уязвимостей, часто свойственных веб-приложениям. Этот набор правил доступен бесплатно. Он отличается повышенной строгостью и требует дополнительной настройки перед использованием в реальных условиях. Если вы выберете этот набор правил, то у вас будет частично не работать WordPress и перестанут работать веб-почта и общий доступ к файлам. В качестве альтернативы можно использовать наборы правил Atomic или Comodo.
-
Набор правил Atomic ModSecurity. Последняя версия правил со всеми улучшениями, новыми функциями и исправлениями, ежедневно выпускаемыми Atomicorp GotRoot. Это коммерческий набор правил, который полностью поддерживается и рекомендуется для использования на боевых серверах. Чтобы включить этот набор правил в Plesk, зарегистрируйтесь на сайте Atomic и укажите логин и пароль с этого сайта.
Предупреждение. Если вы выбрали набор правил Atomic, выполните следующую процедуру, чтобы убедиться, что ModSecurity работает корректно:
Выполните на сервере команду
aum -u
. Пакет modsecurity от Plesk будет заменен пакетом из хранилища Atomic. Затем выполните следующие команды:plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl –enable
service httpd restart
- Набор правил Comodo ModSecurity. Это удобная система управления трафиком на основе настраиваемых правил, которая надежно защищает ваши веб-приложения от новых угроз за счет регулярного обновления базы правил. Этот набор правил доступен бесплатно. Чтобы включить этот набор правил в Plesk, зарегистрируйтесь на сайте Comodo и укажите логин и пароль с этого сайта.
- Чтобы включить автоматическое обновление выбранного набора правил, поставьте галочку Обновлять набор правил и выберите период обновления.
- Выберите готовый набор параметров или укажите собственные директивы ModSecurity. Вы можете выбрать следующие готовые наборы параметров:
- Быстрая проверка - проверяются фрагменты заголовков и универсальный код ресурса (URI) HTTP-запроса. Этот режим создает наименьшую нагрузку на процессор.
- Оптимальная проверка - проверяются заголовки, URI и POST-данные HTTP-запроса. Этот режим обеспечивает хороший баланс между качеством и быстродействием.
-
Тщательная проверка - проверяются полные заголовки и POST-данные HTTP-запроса, а также текст HTTP-ответа. Этот режим потребляет больше всего ресурсов процессора и рекомендуется для сайтов с особыми требованиями к безопасности. Например, он подойдет для интернет-магазинов, принимающих оплату картами.
Примечание. Для оптимальной производительности брандмауэра для веб-приложений необходим локальный сервер DNS со включенным кэшированием запросов. В противном случае сайты могут загружаться медленно во время работы брандмауэра для веб-приложений.
ModSecurity хранит свои журналы в двух местах:
- Журнал аудита ModSecurity (
/var/log/httpd/modsec_audit.log
) содержит очень подробную информацию, общую для всего сервера Plesk. В нем ModSecurity фиксирует все происходящие события. Чтобы посмотреть этот журнал, откройте Инструменты и настройки > Брандмауэр для веб-приложений (ModSecurity) > нажмите Архив журналов в разделе Журнал ModSecurity. Здесь вы можете просматривать файлы журналов ModSecurity и даты их изменения, а также скачивать файлы журналов. - Журнал ошибок Apache для домена (
/var/www/vhosts/имя домена/logs/error_log
) содержит только краткую информацию об ошибках на сайтах. Чтобы посмотреть журнал ошибок конкретного сайта, откройте панель клиента > Сайты и домены > <имя домена> > Журналы > справа выберите только Ошибки Apache и Ошибки nginx вместо Всех журналов.
После включения ModSecurity сайт может начать работать с ошибками. В журнале ошибок сайта могут появится ошибки с кодом 403
, 404
или 500
, которые исчезают после того, как вы переключите брандмауэр обратно в режим Только обнаружение или Отключен. В этом случае проверьте журнал ModSecurity, чтобы выяснить точную причину проблемы. Вы можете отключить слишком строгие правила безопасности или изменить параметры соответствующего сайта.
Чтобы понять, почему не был выполнен HTTP-запрос к тому или иному сайту, и отключить правило безопасности:
- Откройте Инструменты и настройки > Брандмауэр для веб-приложений (ModSecurity).
- Щелкните по ссылке Журнал ModSecurity, чтобы скачать журнал аудита и открыть его в новом окне браузера.
- В открывшемся журнале выполните поиск (
Ctrl+F
в большинстве браузеров) по доменному имени сайта, испытывающего проблемы. Например,ваш-домен.ru
. Браузер выделит строку видаHOST: ваш-домен.ru
. Чуть выше выделенной строки вы увидите запись вида--eece5138-B--
. Восемь символов между дефисами (в нашем примере этоeece5138
) - это идентификатор события, вызванного HTTP-запросом. - Найдите другие записи с таким же идентификатором события. Вам нужна запись, у которой после идентификатора события стоит буква
H
(в нашем примере этоeece5138-H--
). Эта запись содержит идентификатор и описание правила безопасности, проверявшего данный HTTP-запрос. Идентификатор правила безопасности - это целое число, начинающееся с цифры3
и заключенное в кавычки и - вместе с префиксомid
- в квадратные скобки. Например,[id "340003"]
. - Найдите идентификатор правила безопасности по фрагменту
[id "3
. - Откройте Инструменты и настройки > Брандмауэр для веб-приложений (ModSecurity).
- В разделе Правила безопасности выберите правило безопасности по его ID (например,
340003
), тегу (например, CVE-2011-4898) или регулярному выражению (например,XSS
) и нажмите OK.
Советы для тех, у кого ModSecurity был установлен на сервере до обновления до Plesk 12:
- Plesk установит собственный пакет ModSecurity. Однако во время проверки перед обновлением Установщик Plesk спросит, согласны ли вы, чтобы Plesk ModSecurity был установлен поверх вашей имеющейся установки.
- Конфигурация вашего ModSecurity останется без изменений. Однако для ModSecurity существует такое множество выпусков и конфигураций, что трудно предугадать возможные конфликты между старой и новой конфигурациями. Во избежание проблем сохраните имеющуюся у вас конфигурацию и удалите ModSecurity, прежде чем устанавливать обновление Plesk 12 (или пакет ModSecurity из Plesk).