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