Перейти к содержанию

waf: Модуль веб-аппликационного фаервола для NGINX

Установка

Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-waf
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-waf

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_waf_module.so;

Этот документ описывает nginx-module-waf v6.1.10, выпущенный 25 января 2025 года.


test

Notification Discussion EN Discussion CN

English | 简体中文

Удобный, высокопроизводительный модуль фаервола Nginx.

Почему ngx_waf

  • Основная защита: такие как черные и белые списки IP-адресов или диапазонов IP, черные и белые списки URI, черный список тел запросов и т.д.
  • Легкость в использовании: конфигурационные файлы и файлы правил легко писать и читать.
  • Высокая производительность: эффективные алгоритмы и кэширование.
  • Расширенная защита: совместимость с ModSecurity, вы можете использовать OWASP (Open Web Application Security Project®) ModSecurity Core Rule Set.
  • Дружественная проверка для краулеров: поддерживает проверку краулеров Google, Bing, Baidu и Yandex и автоматически позволяет им избегать ложных срабатываний.
  • Captcha: поддерживает три вида капчи: hCaptcha, reCAPTCHAv2 и reCAPTCHAv3.

Особенности

  • Совместимость с ModSecurity. Эта функция доступна только в последней версии Current.
  • Правила, совместимые с ModSecurity.
  • Защита от SQL-инъекций (на основе libinjection).
  • Защита от XSS (на основе libinjection).
  • Поддержка IPV4 и IPV6.
  • Поддержка включения CAPTCHAs, включая hCaptcha, reCAPTCHAv2 и reCAPTCHAv3. Эта функция доступна только в последней версии Current.
  • Поддержка аутентифицированных краулеров (на основе идентификации user agent и IP), чтобы избежать блокировки этих краулеров (например, GoogleBot). Эта функция доступна только в последней версии Current.
  • Защита от Challenge Collapsar, может автоматически блокировать вредоносные IP.
  • Исключительное разрешение для конкретного IP-адреса.
  • Блокировка указанного IP-адреса.
  • Блокировка указанного тела запроса.
  • Исключительное разрешение для конкретного URL.
  • Блокировка указанного URL.
  • Блокировка указанной строки запроса.
  • Блокировка указанного UserAgent.
  • Блокировка указанного Cookie.
  • Исключительное разрешение для конкретного Referer.
  • Блокировка указанного Referer.

Документация

Контакт

Спонсор

Надеюсь, вы сможете помочь в продвижении этого проекта. Чем больше звезд, тем лучше этот проект. :)

Набор тестов

Этот модуль поставляется с набором тестов на основе Perl. Тестовые случаи также декларативные. Благодаря модулю Test::Nginx в мире Perl.

Чтобы запустить его у себя:

## Это займет много времени, но нужно запускать только один раз.
cpan Test::Nginx

## Вам нужно указать временный каталог.
## Если каталог не существует, он будет создан автоматически.
## Если каталог уже существует, он будет **удален** сначала, а затем создан.
export MODULE_TEST_PATH=/path/to/temp/dir

## Вам нужно указать абсолютный путь к динамическому модулю, если он у вас установлен,
## в противном случае вам не нужно выполнять эту строку.
export MODULE_PATH=/path/to/ngx_http_waf_module.so

cd ./test/test-nginx
sh ./init.sh
sh ./start.sh ./t/*.t

Некоторые части набора тестов требуют, чтобы стандартные модули proxy, rewrite и SSI также были включены при сборке Nginx.

Спасибо

  • ModSecurity: Открытый, кроссплатформенный движок веб-аппликационного фаервола (WAF).
  • uthash: Макросы C для хеш-таблиц и не только.
  • libcurl: Библиотека для передачи файлов по нескольким протоколам.
  • cJSON: Ультралегкий парсер JSON на ANSI C.
  • libinjection: Токенизатор, парсер и анализатор SQL / SQLI.
  • libsodium: Современная, портативная и простая в использовании криптографическая библиотека.
  • test-nginx: Набор тестов на основе данных для разработки C-модуля Nginx и библиотеки Lua OpenResty.
  • lastversion: Инструмент командной строки, который помогает вам загрузить или установить конкретную версию проекта.
  • ngx_lua_waf: Веб-аппликационный фаервол на основе lua-nginx-module (openresty).
  • nginx-book: Руководство по разработке для nginx на китайском языке.
  • nginx-development-guide: Руководство по разработке для nginx на китайском языке.

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-waf.