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

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

Включение ModSecurity

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

  1. Go to Tools & Settings > Web Application Firewall (ModSecurity) (under «Security»).

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

    image 78702

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

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

  3. Go to the «Settings» tab and then select the set of rules that will be checked by the web application firewall engine for each incoming HTTP request, or upload a custom rule set. You can select the following rule sets:

    • Atomic Standard (free, can be upgraded to Atomic Advanced). A free starter version of the Atomic ModSecurity rules, bundled with Plesk. It contains important security features and bug fixes released on a monthly basis. For rules included in this rule set, see Atomic ModSecurity Rule Sets.

    • OWASP (free). The OWASP ModSecurity Core Rule Set (CRS) provides generic protection from unknown vulnerabilities often found in web applications. This rule set is shipped for free. It is known as a very restrictive rule set; it requires additional tuning for production use. When this rule set is selected, WordPress partly does not work, webmail and file sharing do not work either. You can use Atomic or Comodo rule sets instead.

    • (Plesk for Linux) Comodo (free). A free, simple-to-use, customizable, rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. Unlike the «Comodo (free subscription)» rule set, you do not need a subscription on the Comodo website to select «Comodo (free)».

    • Atomic Advanced. The latest version of the rules, with all the performance enhancements, new security features and bug fixes released by Atomicorp GotRoot on a daily basis. This is a commercial rule set that is fully supported and recommended for production use. Plesk provides the Security Core Complete by Atomicorp extra feature that allows you to enable this rule set in Plesk. You can get this extra feature by the following ways:

      • Купите продукт Advanced ModSecurity Rules by Atomicorp в онлайн-магазине Plesk.
      • Если у вас уже есть лицензия на Plesk, вы можете добавить дополнительную функцию через интерфейс Plesk Partner Central UI или через Partner API (более подробную информацию смотрите в руководствах Partner Central User’s Guide или Partner API 3.0 reference).
      • Если у вас есть лицензия Plesk, но нет доступа в Plesk Partner Central, обратитесь к своему провайдеру.

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

      Примечание: If you get this extra feature, the Plesk interface will display Atomic Advanced instead of Atomic Standard (free, can be upgraded to Atomic Advanced), and this actually means the complete Atomic Advanced ModSecurity rule set.

      Какие именно правила входят в этот набор, смотрите в разделе Atomic ModSecurity Rule Sets.

      Осторожно: (Plesk for Linux) If you select the Atomic ruleset, perform the following procedure to ensure that ModSecurity works fine. Run the aum -u command on the server. The Plesk modsecurity package will be replaced by that from the Atomic repository. Then run the following commands:

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl --enable
      • service httpd restart
    • (Plesk for Linux) Comodo (free subscription). This is a simple-to-use, customizable rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. This rule set is shipped for free. To enable this rule set in Plesk, register on the Comodo site and provide your username and password from this site.

      Примечание: By default, Plesk does not show the «Comodo (free subscription)» rule set. To make the rule set visible in the Plesk interface, add the following lines to the panel.ini file:

      [modSecurity]
      ruleSet.comodo = 1
      
    • Custom rule set. You can upload a custom web application firewall rule set, for example, a trial package from Atomic or a free package from Comodo. Supported formats: zip, tar.gz, tgz, tar.bz2, conf.

    image 78703

  4. Чтобы включить автоматическое обновление выбранного набора правил, установите флажок Обновлять набор правил и выберите период обновления.

  5. Выберите готовый набор параметров или укажите собственные директивы ModSecurity. Вы можете выбрать следующие готовые наборы параметров:

    • Быстрая проверка – проверяются фрагменты заголовков и универсальный код ресурса (URI) HTTP-запроса. Этот режим создает наименьшую нагрузку на процессор.

    • Оптимальная проверка – проверяются заголовки, URI и POST-данные HTTP-запроса. Этот режим обеспечивает хороший баланс между качеством и быстродействием.

    • Тщательная проверка – проверяются полные заголовки и POST-данные HTTP-запроса, а также текст HTTP-ответа. Этот режим потребляет больше всего ресурсов процессора и рекомендуется для сайтов с особыми требованиями к безопасности. Например, он подойдет для интернет-магазинов, принимающих оплату картами.

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

      image 76906

Файлы журналов (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)

On Windows, ModSecurity audit logs are domain-specific and located in %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs (where %plesk_dir% is the default installation directory for Plesk).

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

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

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

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

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

  2. В открывшемся журнале выполните поиск (Ctrl+F в большинстве браузеров) по доменному имени сайта, испытывающего проблемы. Например, your_domain.tld. Браузер выделит строку вида HOST: your_domain.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 не будет их проверять.