Ограничение HTTP-трафика из док-контейнера - PullRequest
1 голос
/ 02 июня 2019

Мне нужно убедиться, что только трафик HTTPS выходит из контейнера Docker.

Каков наилучший способ ограничения HTTP (или любого другого порта), выходящего из контейнера?

Сам контейнер не прослушивает ни один порт. Инструмент внутри контейнера делает HTTP / HTTPS-запросы на получение лицензии. Мне нужно убедиться, что он может выполнять только HTTPS-запросы.

Лучше ли блокировать трафик на стороне хоста докера?

Как это:

iptables -I DOCKER-USER -i ext_if -p tcp --dport http -j REJECT

Я не хочу испортить все таблицы, которые Docker создает при инициализации.

1 Ответ

2 голосов
/ 02 июня 2019

Если вам нужно ограничить трафик в определенном контейнере (не на уровне хоста, не для всех контейнеров), вы должны добавить правило брандмауэра в контейнер.Вот пример:

Запустите контейнер с возможностью NET_ADMIN

docker run --rm -it --cap-add=NET_ADMIN  debian

Установите iptables и curl

apt update && apt install iptables curl

Добавьте правило брандмауэра

ptables -A OUTPUT -p tcp --dport 80 -j DROP

Затем проверьте правило с помощью:

curl http://www.google.com
curl https://www.google.com
...