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

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

Установка для Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-waf, предоставленному репозиторием GetPageSpeed Extras.

  1. Настройте репозиторий APT, как описано в настройке репозитория APT.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-waf
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия             | Компонент   | Архитектуры   |
|-------------|--------------------|-------------|---------------|
| debian      | bookworm           | main        | amd64         |
| debian      | bookworm-mainline  | main        | amd64         |
| debian      | trixie             | main        | amd64         |
| debian      | trixie-mainline    | main        | amd64         |
| ubuntu      | focal              | main        | amd64         |
| ubuntu      | focal-mainline     | main        | amd64         |
| ubuntu      | jammy              | main        | amd64         |
| ubuntu      | jammy-mainline     | main        | amd64         |
| ubuntu      | noble              | main        | amd64         |
| ubuntu      | noble-mainline     | main        | amd64         |

test docs docker Codacy Badge Codacy Badge

Notification Discussion EN Discussion CN

English | 简体中文

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

Почему ngx_waf

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

Особенности

  • Совместимость с ModSecurity.
  • Поддержка IPV4 и IPV6.
  • Поддержка включения CAPTCHA, включая hCaptcha, reCAPTCHAv2 и reCAPTCHAv3.
  • Поддержка аутентификации дружелюбных роботов (на основе User-Agent и идентификации IP), чтобы избежать блокировки этих роботов (например, GoogleBot).
  • Защита от CC, если скорость запросов превышает лимит, IP будет автоматически заблокирован на определенный период времени или будет использоваться CAPTCHA для идентификации пользователей и разрешения доступа, если успешно.
  • Исключительное разрешение для конкретного 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 (openresty).
  • nginx-book: Руководство по разработке для nginx на китайском языке.
  • nginx-development-guide: Руководство по разработке для nginx на китайском языке.