У меня есть ответ, который ограничит докер-контейнеры, чтобы иметь возможность доступа только к одному IP-адресу вне хоста. Используя это правило iptables на хосте:

iptables -I FORWARD -i docker0! -d 8.8.8.8 -j DROP

означает, что из любых док-контейнеров можно получить доступ только к IP-адресу 8.8.8.8.

Это довольно радикально - в основном, если пункт назначения НЕ 8.8.8.8, тогда отбросьте пакет.

Как лучше всего настроить правила, которые позволят мне ограничить контейнеры определенным количеством IP-адресов?

1 ответ1

0

Мне нужно было убедиться, что разработчик сайта, который находится в контейнере Docker, не может получить доступ к каким-либо живым ресурсам - Paypal, различным API и т.д. Код на веб-сайте был устаревшим, и многие вещи /URL были жестко запрограммированы.

Я достиг этого, чтобы получить что-то подобное в скрипте сборки:

echo
echo "Setting up firewall rules for all docker containers..."
sudo ipset create dockerdests hash:ip -exist
sudo ipset add dockerdests x.x.x.x -exist
sudo ipset add dockerdests y.y.y.y -exist
sudo ipset add dockerdests 8.8.8.8 -exist
sudo ipset add dockerdests 8.8.4.4 -exist
sudo iptables -I FORWARD 1 -i docker0 -m set --match-set dockerdests dst -j ACCEPT
sudo iptables -I FORWARD 2 -i docker0 -j DROP

где xxxx и yyyy - ресурсы разработчика.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .