Как настроить ModSecurity с помощью Apache в Debian/Ubuntu
Веб-сервер Apache обладает широкими возможностями настройки и может быть настроен различными способами в соответствии с вашими потребностями. Существует множество сторонних модулей, которые вы можете использовать для настройки Apache по своему усмотрению.
ModSecurity — это WAF с открытым исходным кодом (Брандмауэр веб-приложений), встроенный в веб-сервер Apache. Первоначально это был только модуль Apache, но за год он превратился в полноценный межсетевой экран для веб-приложений. Теперь он поддерживается Nginx и даже IIS.
ModSecurity проверяет входящие запросы к веб-серверу на соответствие предопределенному набору правил. Обычно он предоставляет набор правил, известных как CRS (Основной набор правил), которые защищают веб-сайт от множества атак веб-приложений, таких как внедрение SQL, XSS и сеансовые атаки. угон среди других подвигов.
Межсетевой экран приложения ModSecurity является неотъемлемой частью обеспечения соответствия PCI DSS и защищает сайты от внешних атак. Когда модуль включен, он вызывает «Запрещенную ошибку 403», которая просто означает, что у вас недостаточно прав для доступа к ресурсу на веб-сервере.
В этом руководстве мы покажем вам, как установить и настроить ModSecurity для работы с Apache в Debian и Ubuntu. > Линукс.
Шаг 1. Установите ModSecurity в Ubuntu
Первым шагом является установка ModSecurity. Сначала мы обновим списки пакетов следующим образом:
sudo apt update
Затем установите пакет ModSecurity вместе с другими зависимостями и библиотеками.
sudo apt install libapache2-mod-security2
После этого включите модуль.
sudo a2enmod security2
Затем перезапустите веб-сервер Apache, чтобы применить изменения.
sudo systemctl restart apache2
На этом этапе ModSecurity успешно установлен. Давайте теперь настроим его.
Шаг 2. Настройте ModSecurity в Ubuntu
По умолчанию ModSecurity настроен только на обнаружение и регистрацию подозрительной активности. Нам нужно сделать дополнительный шаг и настроить его так, чтобы он не только обнаруживал, но и блокировал подозрительную активность.
Скопируйте файл конфигурации ModSecurity по умолчанию – modsecurity.conf-recommended – в новый файл, как указано в команде ниже.
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Используя предпочитаемый вами текстовый редактор, откройте файл
sudo nano /etc/modsecurity/modsecurity.conf
Найдите строку:
SecRuleEngine DetectionOnly
Установите его на:
SecRuleEngine On
Сохраните изменения и выйдите из файла.
Чтобы применить изменения в Apache, перезапустите веб-сервер.
sudo systemctl restart apache2
Шаг 3. Загрузите основной набор правил OWASP ModSecurity.
Следующим шагом будет загрузка последней версии основного набора правил OWASP ModSecurity (CRS) со страницы GitHub.
Клонируйте git-репозиторий OWASP, как показано.
git clone https://github.com/coreruleset/coreruleset.git
Перейдите в каталог.
cd coreruleset/
Обязательно переместите файл crs-setup.conf.example в каталог modsecurity и переименуйте его в crs-setup.conf.
sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf
Кроме того, переместите каталог rules в каталог modsecurity.
sudo mv rules/ /etc/modsecurity/
Затем отредактируйте файл security2.conf.
sudo nano /etc/apache2/mods-enabled/security2.conf
Убедитесь, что он содержит следующие строки.
IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf
Затем перезапустите Apache, чтобы изменения сохранились.
sudo systemctl restart apache2
Давайте теперь проверим нашу конфигурацию ModSecurity.
Шаг 4. Тестирование конфигурации ModSecurity в Ubuntu
Наконец, нам нужно проверить, может ли ModSecurity обнаруживать и блокировать подозрительный HTTP-трафик. Для этого нам нужно отредактировать файл виртуального хоста по умолчанию.
sudo nano /etc/apache2/sites-available/000-default.conf
Далее мы создадим правило блокировки, которое будет блокировать доступ к определенному URL-адресу при доступе через веб-браузер.
Добавьте эти строки в конце перед закрывающим тегом «Virtualhost».
SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"
Не стесняйтесь устанавливать для тегов «id» и «msg» любые желаемые значения.
Затем перезапустите веб-сервер Apache, чтобы применить изменения, внесенные в файл конфигурации виртуального хоста.
sudo systemctl restart apache2
В веб-браузере попробуйте посетить URL-адрес, показанный с ?testparam=test
в конце.
http://server-ip/?testparam=test
Вы получаете Ошибку 403 Forbidden, указывающую, что вам заблокирован доступ к ресурсу.
Вы также можете подтвердить, что клиент был заблокирован, проверив журналы ошибок следующим образом.
cat /var/log/apache2/error.log | grep “Test Successful”
Это подтверждение того, что мы успешно настроили ModSecurity для обнаружения и блокировки нежелательного трафика. В этом руководстве мы рассказали вам о процессе настройки ModSecurity с помощью Apache в системах Debian/Ubuntu.