как запретить IP хост-машины достигать Docker-контейнера с помощью IP-таблиц - PullRequest
0 голосов
/ 21 ноября 2018

Существует сервер apache, запущенный в док-контейнере, и он получает следующий IP-адрес 172.21.0.3 IP-адрес шлюза и префикс: 172.21.0.1/16, а виртуальный интерфейс, подключенный к этому IP, - br-47b7ac758218.

Контейнер прослушивает порт 80, и он также не является опубликованным портом, просто настроен как открытый порт. das@my-machine:~/go/src/secure$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b1a75fb4be73 test_httpserver "bash -c '/etc/init.…" 18 hours ago Up 41 minutes 80/tcp test_httpserver_1 Теперь вариант использования заключается в том, чтобы остановить хост-машину докера любой командой или программой для подключения к http_server runnning conatiner.Хост-машина, на которой работает докер, имеет следующий IP-адрес 10.223.97.3/24

. После записи IPtable добавляется остановка хоста док-станции для подключения к http-серверу, например, wget http://172.21.0.3/ не может подключиться.Ниже представлен интерфейс виртуального шлюза для контейнера на основе http-сервера.

`das @ das-All-Series: ~ / go / src / ElephantTrunkArch / docker_setup $ ifconfig br-47b7ac758218
br-47b7ac758218 Ссылкаencap: Ethernet HWaddr 02: 42: 67: e3: 1c: 1a
адрес inet: 172.21.0.1 Bcast: 172.21.255.255 Маска: 255.255.0.0 inet6 адрес: fe80 :: 42: 67ff: fee3: 1c1a / 64 Область действия: Link UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1

`Гуглила и ссылалась на документацию Docker, но, к сожалению, ни одно из решений не работает.

Следующие правила таблицы IP применяются, но ни одно из них не работает. Any input packet coming to gateway interface with source IP range of docker host should be dropped. sudo iptables -I DOCKER-USER -s 10.223.97.0/24 -i br-47b7ac758218 -j DROP Это то, что предлагает сообщество докеров, но не работает `sudo iptables -I DOCKER-USER -s 10.223.97.0/24 -i ext_if -j DROP

Tried this thinking that the packet might be referded as a forward pcaket as it starts from host machine and get forwarded to virtual bridge in IP layer, hence added a rule to drop all forward packet from 10.223.97.0/24 -A ВПЕРЕД!-s 10.224.97.0/24 -o br-47b7ac758218 -j Пропустить -A ВПЕРЕД!-s 10.224.97.0/24 -i br-47b7ac758218 -j DROP

`Это тоже не сработало.Команда wget с хоста docker предназначена для получения файла index.html с сервера apache

`$ wget http://172.21.0.3/ --2018-11-20 22: 27: 32-- http://172.21.0.3/ Подключение к 172.21.0.3:80 ... подключено.HTTP-запрос отправлен, ожидание ответа ... 200 OK Длина: 11321 (11K) [текст / html] Сохранение в: 'index.html.8'

index.html.8 100% [================================================================================================================>] 11.06K --.- КБ / с в 0 с

2018-11-20 22:27:32 (278 МБ / с) - 'index.html.8'сохранено [11321/11321]

$ `

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...