Как отключить все правила docker, добавленные в iptables для publi c accces? - PullRequest
0 голосов
/ 27 апреля 2020

Я использую docker -compose и только что обнаружил, что все мои открытые порты из docker -compose.yml фактически добавлены в iptables, чтобы разрешить мировой доступ. Не знаю, но это оставляет меня с огромной дырой в безопасности.

На странице docker написано: iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP

, но это ничего не значит для меня. Я все еще могу получить удаленный доступ к своему серверу БД без туннелирования.

Я не уверен, каким будет мой локальный IP-адрес. Я все еще хочу разрешить внутренним соединениям в хост-ОС подключаться к этим портам, но не к миру.

1 Ответ

2 голосов
/ 27 апреля 2020

Если вы не хотите, чтобы открытые порты были общедоступными, есть более простые решения, чем копаться в правилах iptables Docker.

  1. Просто не выставляйте их.

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

  2. Предоставьте их только на localhost.

    Вместо записи -p 8080:8080, которая предоставляет контейнер порт 8080 на хост-порт 8080 на всех интерфейсах, напишите -p 127.0.0.1:8080:8080, который будет предоставлять порт только по адресу обратной связи. Теперь вы можете связаться с ним на своем хосте по номеру localhost:8080, но он не будет доступен никому другому.

...