Не разрешать трафик из док-контейнера во внутреннюю сеть - PullRequest
2 голосов
/ 05 апреля 2019

У меня есть веб-приложение, в котором пользователи могут регистрировать и запускать контейнеры с помощью нескольких щелчков мыши.Создание контейнера осуществляется путем связи моего веб-приложения с docker deamon через tcp.

Моя проблема сейчас заключается в том, что пользователь также может загружать двоичные файлы через FTP в свой том докера.Все двоичные файлы загружаются после запуска контейнера.Таким образом, люди могут запускать каждый фрагмент кода внутри контейнера, а также начинать отправку пакетов в моей внутренней сети на незащищенные конечные точки.Изнутри контейнера я могу пропинговать узел докера и другие узлы, которые находятся в моей локальной сети.

Моя цель состоит в том, чтобы контейнеры могли взаимодействовать только с конечными точками за пределами моей сети.Есть ли способ, чтобы добиться этого желаемого поведения?

1 Ответ

0 голосов
/ 06 апреля 2019

Это на самом деле не специфическая проблема докера. Похоже, что вы хотите сделать, это заблокировать доступ из внутреннего сетевого диапазона (назовем его docker-range ) к вашим другим узлам внутренней сети, но все же разрешить docker-range доступ к общедоступный интернет.

Вам необходимо изменить настройки маршрутизации и брандмауэра для достижения этой цели. Если вы работаете в Linux, я бы предложил использовать iptables.

С примером конфигурации сети моста, приведенной в докере документации , это может выглядеть как

sudo iptables -A FORWARD --source 192.168.1.5/24 --destination 10.0.0.0/24 -j REJECT

source будет вашей сетью Docker Bridge ( Docker-Range ), --destination будет вашим другими внутренними хостами.

Вы должны убедиться, что трафик от контейнеров докеров проходит через этот брандмауэр. Обычно вы применяете конфигурацию на маршрутизаторе, установленном как default-gateway в конфигурации сети Docker Bridge.

...