Поиск по сайту:

Как настроить 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.