waf: Модуль файрвола веб-приложений для NGINX
Установка для Debian/Ubuntu
Эти документы относятся к APT пакету nginx-module-waf, предоставленному репозиторием GetPageSpeed Extras.
- Настройте репозиторий APT, как описано в настройке репозитория APT.
- Установите модуль:
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 |
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.
Документы
- Рекомендуемая ссылка: 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 (openresty).
- nginx-book: Руководство по разработке для nginx на китайском языке.
- nginx-development-guide: Руководство по разработке для nginx на китайском языке.