В настоящее время я использую 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.