DDoS Guard Pro v2.0 — это системный модуль защиты для PlayMMO CMS, предназначенный для снижения нагрузки на сайт при HTTP-флуде, активности ботов, подозрительных частых запросах и атаках на отдельные страницы или API-методы.
В отличие от простых глобальных ограничителей, DDoS Guard Pro v2.0 поддерживает гибкие правила по маршрутам и HTTP-методам. Это позволяет не блокировать весь сайт одинаково, а настраивать защиту точечно: отдельно для авторизации, регистрации, API, админки, форм и других чувствительных участков сайта.
Для чего нужен модуль
DDoS Guard Pro v2.0 помогает защитить сайт от базовых L7-атак на уровне HTTP-запросов.
Модуль полезен, если на сайт идут:
частые запросы с одного IP;
HTTP-флуд по страницам;
флуд по формам входа или регистрации;
автоматические запросы от ботов;
сканирование URL;
частые обращения к API;
подозрительные всплески активности;
нагрузка на отдельные методы или страницы CMS.
Модуль помогает уменьшить нагрузку на PHP и CMS, ограничивая подозрительную активность до того, как она начнёт создавать серьёзную нагрузку на сайт.
Основные возможности
Per-route и per-method Rate Limit
В новой версии защита настраивается не только глобально, а по конкретным правилам.
Можно задать лимиты отдельно для:
GET;
POST;
PUT;
PATCH;
DELETE;
ALL.
Это позволяет гибко защищать разные участки сайта.
Например:
для страницы входа можно поставить строгий лимит;
для регистрации — отдельный лимит;
для API — один лимит на чтение и другой на изменение данных;
для обычных страниц сайта — мягкий лимит или вообще не включать ограничение.
Такой подход снижает риск случайной блокировки обычных пользователей и делает защиту более точной.
Гибкая система правил
Модуль поддерживает настройку правил в формате:
METHODS|PATTERN|LIMIT|WINDOW|BURST_LIMIT|BURST_WINDOW|BLOCK_SECONDS|IDENTITY|NAME
Пример правил:
POST|*login*|10|60|5|10|600|ip|login_post
POST|*register*|8|60|4|10|600|ip|register_post
GET|*api*|300|60|80|10|120|ip|api_get
PUT,PATCH,DELETE|*api*|80|60|20|10|300|ip|api_write
Благодаря этому можно точно указать:
какие HTTP-методы защищать;
какие URL или шаблоны URL учитывать;
сколько запросов разрешено;
за какой промежуток времени;
какой burst-лимит использовать;
на сколько секунд блокировать нарушителя;
по какому идентификатору считать лимит;
как называется правило.
Burst-защита от резких всплесков
Кроме обычного лимита запросов, модуль отслеживает резкие всплески активности.
Это полезно, когда бот делает много запросов за несколько секунд. В таком случае защита может сработать быстрее, не дожидаясь общего лимита за минуту.
Burst-защита особенно полезна для:
страниц авторизации;
регистрации;
API;
поиска;
форм отправки данных;
административных разделов.
Поддержка разных типов запросов
DDoS Guard Pro v2.0 работает не только с POST-запросами.
Модуль может контролировать:
GET — обычные страницы, API-запросы, поиск;
POST — формы, вход, регистрация, отправка данных;
PUT — обновление данных через API;
PATCH — частичное обновление данных;
DELETE — удаление данных;
ALL — все методы сразу.
Это делает модуль подходящим не только для обычных сайтов, но и для CMS с API, личными кабинетами, игровыми панелями и административными действиями.
Хранилище лимитов: Redis, APCu и file fallback
В новой версии модуль поддерживает несколько вариантов хранения временных данных.
Доступные режимы:
Redis;
APCu;
file fallback.
Режим auto пытается использовать наиболее подходящий вариант:
Redis;
APCu;
файловое хранилище как fallback.
Redis или APCu подходят для более производительной работы, а файловое хранилище оставлено как запасной вариант для простых хостингов, где нет дополнительных расширений.
JSONL-логирование
Модуль записывает события защиты в формат JSON Lines.
Логи сохраняются в файл:
storage/logs/ddos_guard.jsonl
Такой формат удобнее обычного текстового лога, потому что каждое событие хранится как отдельная JSON-запись.
В логах могут фиксироваться:
время события;
IP-адрес;
HTTP-метод;
URL;
название сработавшего правила;
причина блокировки;
количество запросов;
статус действия;
user-agent;
режим работы защиты.
JSONL-формат удобно анализировать внешними инструментами, лог-агентами и системами мониторинга.
Prometheus metrics
DDoS Guard Pro v2.0 добавляет endpoint для получения метрик в формате Prometheus.
Endpoint:
/?ddos_guard_metrics=TOKEN
Токен задаётся в настройках модуля.
Метрики позволяют отслеживать:
количество обработанных запросов;
количество срабатываний правил;
количество блокировок;
активность по лимитам;
события защиты;
состояние модуля.
Это позволяет подключить мониторинг и настроить алерты, чтобы администратор видел, когда на сайт начинается подозрительная активность.
Режим LOG ONLY
В модуле есть режим LOG ONLY.
В этом режиме DDoS Guard Pro не блокирует пользователей, а только записывает события и потенциальные срабатывания в лог.
Этот режим рекомендуется использовать после установки, чтобы сначала посмотреть, какие правила срабатывают, и только потом включать реальную блокировку.
Это помогает избежать слишком строгих лимитов и случайных блокировок обычных пользователей.
Поддержка Cloudflare и proxy
Модуль поддерживает работу за Cloudflare или другим reverse proxy.
При правильной настройке можно учитывать реальный IP пользователя, а не IP прокси-сервера.
Это важно для сайтов, которые используют:
Cloudflare;
nginx reverse proxy;
балансировщики;
CDN;
прокси-защиту хостинга.
Nginx-рекомендации
DDoS Guard Pro v2.0 содержит пример nginx-конфига:
modules/ddos_guard/nginx-ddos-guard-example.conf
Это позволяет использовать модуль как дополнительный прикладной уровень защиты, а основные грубые лимиты вынести на уровень nginx.
Рекомендуемая схема защиты:
Cloudflare / nginx / firewall → DDoS Guard Pro → PlayMMO CMS
Такой подход правильнее, чем пытаться решать все задачи только на уровне PHP.