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 года.
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.
Документация
- Рекомендуемая ссылка: https://docs.addesp.com/ngx_waf/
- Альтернативная ссылка 1: https://add-sp.github.io/ngx_waf-docs/
- Альтернативная ссылка 2: https://ngx-waf-docs.pages.dev/
Контакт
- Канал Telegram: https://t.me/ngx_waf
- Группа Telegram (английская): https://t.me/group_ngx_waf
- Группа Telegram (китайская): https://t.me/group_ngx_waf_cn
Спонсор
Надеюсь, вы сможете помочь в продвижении этого проекта. Чем больше звезд, тем лучше этот проект. :)
Набор тестов
Этот модуль поставляется с набором тестов на основе 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.