Я настроил экземпляр Traefik, запускаемый движком Docker в режиме Swarm, с «классической» конфигурацией (см. ниже, для краткости я помещаю только важные [для меня] части. Не стесняйтесь спрашивать более подробную информацию, если вам это нужно).
Установлен Fail2Ban, а также firewalld (дистрибутив CentOS). Пока что я поставил простую настройку фильтра/джейла, в основном для блокировки DOS и брутфорса, просматривая лог доступа Traefik.
Моя проблема: когда я пытаюсь с Никто или же Гидра, я вижу, что мой пробный IP-адрес был занесен в черный список:
# статус клиента fail2ban symfony-auth
Статус для джейла: symfony-auth
|- Фильтр
| |- В настоящее время не удалось: 3
| |- Всего неудачно: 906
| `- Список файлов: /var/log/traefik/access.log
`- Действия
|- В настоящее время забанено: 1
|- Всего забанено: 2
`- Список запрещенных IP-адресов: 37.19.218.169
Но ничего не меняется в части правил iptables, и я вижу, что данный IP-адрес не заблокирован.Более того, если я попытаюсь перейти на сайт с заблокированного IP, я смогу это сделать, даже если он забанен.
Я должен добавить, что у меня есть 00-файл firewalld.conf
, с инструкциями по умолчанию относительно действий для этого дистрибутива:
# кот /etc/fail2ban/jail.d/00-firewalld.conf
# Этот файл является частью пакета fail2ban-firewalld для настройки использования
# действия firewalld как действия по умолчанию. Вы можете удалить этот пакет
# (вместе с пустым мета-пакетом fail2ban), если вы не используете firewalld
[ПО УМОЛЧАНИЮ]
banaction = firewallcmd-rich-rules[actiontype=<мультипорт>]
banaction_allports = firewallcmd-rich-rules[actiontype=<allports>]
бэкэнд = systemd
Наконец, у меня нет разницы во времени, как указано здесь.
# хвост /var/журнал/сообщения
12 июл 13:28:05 ....
# timedatectl
Местное время: пн 2021-07-12 13:30:18 UTC
Всемирное время: пн 2021-07-12 13:30:18 UTC
Время RTC: Пн 2021-07-12 13:30:13
Часовой пояс: UTC (UTC, +0000)
Синхронизация системных часов: да
Служба NTP: активна
RTC в местной ТЗ: нет
Так почему же мой заблокированный IP-адрес все еще может достичь целевого веб-сайта? Спасибо за ваши выводы и просветления.
Фрагменты
Траефик докер-compose.yml
Ведущая часть
версия: "3.3"
Сервисы:
обратный прокси:
изображение: "traefik:v2.4"
команда:
# Конфигурация журнала
#- "--log.level=ОТЛАДКА"
- "--log.filepath=/var/log/traefik/traefik.log"
- "--accesslog.filepath=/var/log/traefik/access.log"
Объемная часть :
# ...
тома:
# Чтобы сохранить сертификаты
- traefik-сертификаты:/letsencrypt
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- /var/журнал/traefik:/var/log/traefik/
# ...
Fail2Ban
Мой фильтр
/etc/fail2ban/filter.d/my_filter.conf
[Определение]
failregex = ^<HOST>.*"(GET|POST|HEAD).*" (404|444|403|400|301) .*$
игнорироватьregex =
Моя тюрьма
[моя_тюрьма]
включено = верно
порт = http,https
фильтр = мой_фильтр
logpath = /var/log/traefik/access.log
максимальная попытка = 10
Статус клиента
# статус клиента fail2ban
Положение дел
|- Количество тюрем: 2
`- Список джейлов: sshd, my_jail