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

Я хочу ограничить доступ к портам Docker-контейнеров только с указанных 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 параметр вместо этого. Есть идеи как это исправить?

1 ответ

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

Другие вопросы по тегам