Брандмауэр для веб-приложений (ModSecurity)

Чтобы обнаружить и предотвратить атаки на веб-приложения, брандмауэр веб-приложений (ModSecurity) проверяет все запросы к вашему веб-серверу и соответствующие ответы от сервера на соответствие своему набору правил. Если проверка пройдена, запрос передается сайту для получения контента. Если проверка не пройдена, выполняются заданные действия.

ModSecurity поддерживается в Plesk для Linux и для Windows. Он работает как модуль веб-сервера (Apache или IIS).

Примечание. Чтобы использовать брандмауэр для веб-приложений (ModSecurity) администраторам, которые обновляют Plesk с версии 11.5, необходимо приобрести новую лицензию для Plesk Onyx у компании Plesk или своего поставщика.

Включение ModSecurity

Чтобы включить брандмауэр веб-приложений:

  1. Откройте Инструменты и настройки > Брандмауэр для веб-приложений (ModSecurity) (раздел  Безопасность ).

    Если вы не видите этой ссылки, установите компонент ModSecurity на странице Инструменты и настройки > Обновления > Установить/удалить компоненты > в разделе Веб-хостинг.


    Web_Application_Firewall

  2. Выберите режим работы брандмауэра Включен или Только обнаружение. Каждый входящий HTTP-запрос и соответствующий ответ будут проходить через набор проверочных правил. Если проверка пройдена, запрос передается сайту для получения контента. Если проверка не удастся, это событие будет занесено в журнал. В режиме Только обнаружение больше никаких действий выполнено не будет. В режиме Включен будет предоставлен HTTP-ответ с кодом ошибки.

    Примечание. Режимы брандмауэра для веб-приложений можно устанавливать на уровне сервера и домена. Однако режим, установленный на уровне домена, не может быть выше режима, установленного для сервера. Например, если брандмауэр для веб-приложений на уровне сервера работает в режиме Только обнаружение, его нельзя будет установить в режим Включен для доменов. Будут доступны только режимы Отключен и Только обнаружение.

  3. Выберите набор правил, который будет проверяться брандмауэром для каждого входящего HTTP-запроса, или загрузите собственный набор правил. Вы можете выбрать следующие наборы правил:
    • Atomic Basic ModSecurity. Бесплатная начальная версия правил Atomic ModSecurity, поставляемая с Plesk. Включает важные функции и исправления, выпускаемые ежемесячно. То, какие правила входят в этот набор, смотрите в разделе Наборы правил Atomic ModSecurity.
    • OWASP ModSecurity Core Rule Set (CRS). CRS обеспечивает универсальную защиту от неизвестных уязвимостей, часто свойственных веб-приложениям. Этот набор правил доступен бесплатно. Он отличается повышенной строгостью и требует дополнительной настройки перед использованием в реальных условиях. Если вы выберете этот набор правил, то у вас частично нарушится работа WordPress, и перестанут работать веб-почта и общий доступ к файлам. В качестве альтернативы можно использовать наборы правил Atomic или Comodo.
    • Atomic ModSecurity Rule Set. Последняя версия правил со всеми улучшениями, новыми функциями и исправлениями, ежедневно выпускаемыми Atomicorp GotRoot. Это коммерческий набор правил, который полностью поддерживается и рекомендуется для использования на рабочих серверах. Plesk предоставляет дополнительную функцию Security Core Complete от Atomicorp (полный набор инструментов безопасности), позволяющую включать этот набор правил в Plesk. Эту дополнительную функцию можно получить следующими способами:
      • Купите продукт Security Core Complete By Atomicorp в онлайн-магазине Plesk.
      • Если у вас уже есть лицензия Plesk, вы можете добавить дополнительную функцию через интерфейс Plesk Partner Central или через Partner API (дополнительную информацию смотрите в Руководстве по расширенному администрированию).
      • Если у вас есть лицензия Plesk, но нет доступа в Plesk Partner Central, обратитесь к своему провайдеру.

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

      Примечание. Если вы получаете эту дополнительную функцию, в пользовательском интерфейсе Plesk будет отображаться Atomic Professional ModSecurity вместо Atomic Basic ModSecurity, что фактически означает полный набор правил Atomic ModSecurity.

      То, какие правила входят в этот набор, смотрите в разделе Наборы правил Atomic ModSecurity.

      Предупреждение (Linux): Если вы выбрали набор правил Atomic, выполните следующую процедуру, чтобы убедиться, что ModSecurity работает корректно. Выполните на сервере команду aum -u. Пакет modsecurity от Plesk будет заменен пакетом из хранилища Atomic. Затем выполните следующие команды:

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl –enable
      • service httpd restart
    • Набор правил Comodo ModSecurity (Linux). Это удобная система управления трафиком на основе настраиваемых правил, которая надежно защищает ваши веб-приложения от новых угроз за счет регулярного обновления базы правил. Этот набор правил доступен бесплатно. Чтобы включить этот набор правил в Plesk, зарегистрируйтесь на сайте Comodo и укажите логин и пароль с этого сайта.
    • Выборочная установка. Вы можете загрузить собственный набор правил брандмауэра для веб-приложений, например, пробный пакет от Atomic или бесплатный пакет от Comodo. Поддерживаемые форматы: zip, tar.gz, tgz, tar.bz2, conf.
  4. Чтобы включить автоматическое обновление выбранного набора правил, поставьте галочку Обновлять набор правил и выберите период обновления.
  5. Выберите готовый набор параметров или укажите собственные директивы ModSecurity. Вы можете выбрать следующие готовые наборы параметров:
    • Быстрая проверка - проверяются фрагменты заголовков и универсальный код ресурса (URI) HTTP-запроса. Этот режим создает наименьшую нагрузку на процессор.
    • Оптимальная проверка - проверяются заголовки, URI и POST-данные HTTP-запроса. Этот режим обеспечивает хороший баланс между качеством и быстродействием.
    • Тщательная проверка - проверяются полные заголовки и POST-данные HTTP-запроса, а также текст HTTP-ответа. Этот режим потребляет больше всего ресурсов процессора и рекомендуется для сайтов с особыми требованиями к безопасности. Например, он подойдет для интернет-магазинов, принимающих оплату картами.

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

      2016-09-07_161237

  

Файлы журналов (Linux)

На Linux ModSecurity хранит свои журналы в двух местах:

  • Журнал аудита ModSecurity (/var/log/httpd/modsec_audit.log) содержит очень подробную информацию, общую для всего сервера Plesk. В нем ModSecurity фиксирует все происходящие события. Чтобы посмотреть этот журнал, откройте Инструменты и настройки  >  Брандмауэр для веб-приложений (ModSecurity) > нажмите Архив журналов в разделе Журнал ModSecurity. Здесь вы можете просматривать файлы журналов ModSecurity и даты их изменения, а также скачивать файлы журналов.
  • Журнал ошибок Apache для домена (/var/www/vhosts/имя домена/logs/error_log) содержит только краткую информацию об ошибках на сайтах. Чтобы посмотреть журнал ошибок конкретного сайта, откройте панель клиента > Сайты и домены > <имя домена> > Журналы > справа выберите только Ошибки Apache и Ошибки nginx вместо Всех журналов.
Файлы журналов (Windows)

На Windows журналы аудита ModSecurity индивидуальны для каждого домена и находятся в %plesk_dir%\ModSecurity\vhosts\<GUID домена>\logs (где %plesk_dir% - установочная папка Plesk по умолчанию).

 

Отключение правил

После перевода брандмауэра для веб-приложений в режим Включен из режима Отключен или Только обнаружение сайт может начать работать с ошибками. В журнале ошибок сайта могут появится ошибки с кодом 403, 404 или 500, которые исчезают после того, как вы переключите брандмауэр обратно в режим Только обнаружение или Отключен. В этом случае проверьте журнал ModSecurity, чтобы выяснить точную причину проблемы. Вы можете отключить слишком строгие правила безопасности или изменить параметры соответствующего сайта.

Чтобы понять, почему не был выполнен HTTP-запрос к тому или иному сайту:

  1. Проверьте журнал аудита для сайта.

    В Plesk для Linux можно просматривать журналы через пользовательский интерфейс Plesk: перейдите на страницу Инструменты и настройки > Брандмауэр для веб-приложений (ModSecurity) и нажмите ссылку Журнал ModSecurity, чтобы скачать журнал и открыть в новом окне браузера.

  2. В открывшемся журнале выполните поиск (Ctrl+F в большинстве браузеров) по доменному имени сайта, испытывающего проблемы. Например, ваш-домен.ru. Браузер выделит строку вида HOST: ваш_домен.tld. Тремя строками выше выделенной строки вы увидите запись вида --eece5138-B--. Восемь символов между дефисами (в нашем примере это eece5138) - это идентификатор события, вызванного HTTP-запросом.
  3. Найдите другие записи с таким же идентификатором события. Вам нужна запись, у которой после идентификатора события стоит буква H (в нашем примере это eece5138-H--). Эта запись содержит идентификатор и описание правила безопасности, проверявшего данный HTTP-запрос. Идентификатор правила безопасности - это целое число, начинающееся с цифры 3 и заключенное в кавычки и - вместе с префиксом id - в квадратные скобки. Например, [id "340003"].
  4. Найдите идентификатор правила безопасности по фрагменту [id "3. Этот идентификатор можно использовать для отключения правила.

Чтобы отключить правило:

  1. Откройте Инструменты и настройки  >  Брандмауэр для веб-приложений (ModSecurity).
  2. В разделе Отключение правил безопасности выберите правило безопасности по его ID (например, 340003), тегу (например, CVE-2011-4898) или регулярному выражению (например, XSS) и нажмите OK.
Примечания об nginx и ModSecurity (Linux)

В Linux ModSecurity является модулем Apache. Поэтому он может проверять только те HTTP-запросы, которые доходят до Apache. Веб-сервер Apache может работать в связке с другим веб-сервером - nginx. Если вы включите опцию веб-сервера nginx Обрабатывать PHP-файлы с помощью nginx для динамического контента вашего сайта (в настройках Apache и nginx для сайта), то брандмауэр веб-приложений не сможет проверять HTTP-запросы, так как они не будут доходить до Apache. Если вы включите опцию Обрабатывать статические файлы с помощью nginx (статический контент), то HTTP-запросы не будут доходить до Apache, поэтому ModSecurity не будет их проверять.

Примечания к обновлению (Linux)

Советы для тех, у кого ModSecurity был установлен на сервере до обновления до Plesk Onyx:

  • Plesk установит собственный пакет ModSecurity. Однако во время проверки перед обновлением установщик Plesk спросит, согласны ли вы, чтобы Plesk ModSecurity был установлен поверх вашей имеющейся установки.
  • Конфигурация вашего ModSecurity останется без изменений. Однако для ModSecurity существует такое множество выпусков и конфигураций, что трудно предугадать возможные конфликты между старой и новой конфигурациями. Во избежание проблем сохраните имеющуюся у вас конфигурацию и удалите ModSecurity, прежде чем устанавливать обновление Plesk Onyx (или пакет ModSecurity из Plesk).

Далее в этом разделе:

Наборы правил Atomic ModSecurity

 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.