Белый список IP-адресов для контейнеров докеров с iptables и ipset

Я хочу ограничить доступ к портам контейнера докеров только с указанных IP-адресов.

Я установил правила iptables с помощью ipset.

Я открыл порт 8888. Запросы с порта 8888 перенаправляются на простой веб-сервер докеров.

Я определил ipset с IP-адресами из белого списка.

ipset create testfilter iphash
ipset add testfilter 192.168.52.65

Затем я создал правила iptables. Новая цепочка с именем testfilter , FORWARD правило с портом 8888 должна перейти к testfilter . Первое правило из цепочки testfilter должно соответствовать IP из белого списка ipset. Второе правило из цепочки testfilter должно прерывать связь, когда IP не совпадает с белым списком.

iptables -N testfilter
iptables -I FORWARD -p tcp --dport 8888 -j testfilter
iptables -A testfilter -m set --match-set test_ips src -j RETURN
iptables -A testfilter -j DROP

Но порт 8888 по-прежнему доступен с любого IP. Я также пытаюсь использовать правило INPUT вместо правила FORWARD , также удаляю параметр - dport из правила и помещаю -m state --state NEW param вместо этого. Есть идеи, как это исправить?

0
задан 4 July 2017 в 16:41
1 ответ

Вы можете получить доступ к своему порту 8888, потому что ваш докер-контейнер работает на локальном хосте, и FORWARD не блокирует его. Используйте параметр -i, чтобы указать интерфейс lo.

0
ответ дан 5 December 2019 в 07:51

Теги

Похожие вопросы