Назад | Перейти на главную страницу

Внесение IP-адресов в черный список с помощью Docker, Traefik и DigitalOcean

В настоящее время я использую Traefik на экземпляре digitalocean с включенным поставщиком Docker. Он хорошо работает с несколькими контейнерами (интерфейсными и внутренними). Проблема в том, что большинство IP-адресов DO перерабатываются, а некоторые из тех, что я пробовал, продолжают получать шумный трафик, пытаясь «подключиться» к моему корневому IP. Я пробовал искать везде, но похоже, что брандмауэр DO не поддерживает правила запрета, а Traefik обходит локальные настройки UFW, поскольку все осуществляется через Docker. Любые предложения о том, как я могу занести в черный список несколько плохих IP-адресов с этой настройкой? Моя панель «работоспособности» Traefik бесполезна, поскольку 307 запросов на много больше обычного трафика.

Спасибо!

Рекомендуемый метод обновления брандмауэра на опубликованном порту докера - использование таблицы DOCKER-USER в iptables. Вы захотите использовать conntrack для фильтрации по опубликованному порту, а не по порту контейнера, на который докер меняет его до выполнения правила фильтрации:

iptables -I DOCKER-USER -i eth0 ! -s 10.0.0.0/24 -p tcp \
  -m conntrack --ctorigdstport 8080 -j DROP

В приведенном выше примере на интерфейсе eth0, запрос, не принадлежащий классу C 10.0.0.0/24 подсеть, к опубликованному порту 8080, отбрасываются.

Похоже, «пока» с Traefik это невозможно: https://github.com/containous/traefik/pull/4454

Итак, вам нужно что-то вроде fail2ban.