synology

Установка Fail2ban в Docker Compose на Synology NAS для защиты Grav CMS и Jeyber Guard

Вступление Если сайт на Grav CMS открыт в интернет, в логах быстро появляются запросы к несуществующим или опасным адресам: /wp-login.php /phpmyadmin /admin /admin/login /.env /.git/config /vendor Часть таких запросов можно отфильтровать внутри Grav с помощью плаг...

Вступление

Если сайт на Grav CMS открыт в интернет, в логах быстро появляются запросы к несуществующим или опасным адресам:

/wp-login.php
/phpmyadmin
/admin
/admin/login
/.env
/.git/config
/vendor

Часть таких запросов можно отфильтровать внутри Grav с помощью плагина Jeyber Guard. Плагин блокирует подозрительные URL, отдаёт 404 Not Found и пишет события в отдельный лог:

/volume1/web/jeyber/user/data/jeyber-guard/jeyber-guard.log

Но сам плагин не банит IP на уровне сети. Запрос всё равно доходит до Web Station, PHP и Grav.

Для настоящего бана нужен Fail2ban. Он читает лог Jeyber Guard, находит частые нарушения и добавляет IP в блокировку через firewall.

Итоговая схема будет такой:

Интернет
Synology Web Station
Grav CMS
Jeyber Guard пишет лог
Fail2ban в Docker читает лог
IP банится через iptables

Что получится в итоге

После настройки связка будет работать так:

1. Бот открывает /wp-login.php.
2. Jeyber Guard блокирует запрос и пишет blocked в лог.
3. Бот открывает /phpmyadmin.
4. Jeyber Guard снова пишет blocked.
5. После нескольких нарушений Fail2ban банит IP.
6. Забаненный IP больше не доходит до сайта.

Пример строки в логе плагина:

2026-05-14 13:01:11 | blocked | 77.50.206.166 | GET | /wp-login.php | Mozilla/5.0

Пример локального бана внутри плагина:

2026-05-14 13:01:51 | rate_banned | 77.50.206.166 | GET | /admin | Mozilla/5.0

Пример запроса от уже забаненного IP:

2026-05-14 13:01:51 | banned | 77.50.206.166 | GET | /favicon.ico | Mozilla/5.0

Важно

Fail2ban в Docker на Synology должен иметь доступ к сетевым правилам хоста. Поэтому контейнер запускается с:

network_mode: host

и правами:

cap_add:
  - NET_ADMIN
  - NET_RAW

Без этого Fail2ban может видеть логи, но не сможет нормально банить IP на уровне Synology.

1. Какие файлы Fail2ban есть в пакете Jeyber Guard

В архиве плагина Jeyber Guard есть папка fail2ban с четырьмя файлами: