как заблокировать порт контейнера докера с помощью iptables?

avatar
kami
8 апреля 2018 в 06:14
3274
1
3

Я использую службу докеров для настройки контейнерной сети. и я просто открываю порт 7035 для целевого IP-адреса и выставляю его хосту.
когда я проверяю iptables с помощью «iptables -nvL» Я увидел цепочку FORWARD:

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            172.18.0.2           tcp dpt:7053
1680K  119M DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
1680K  119M DOCKER     all  --  *      br-287ce7f19804  0.0.0.0/0            0.0.0.0/0           
1680K  119M ACCEPT     all  --  *      br-287ce7f19804  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED

и цепочка DOCKER:

Chain DOCKER (4 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.2           tcp dpt:7053
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.2           tcp dpt:7051
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.3           tcp dpt:2181
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.4           tcp dpt:7053
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.4           tcp dpt:7051
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.6           tcp dpt:7053
    0     0 ACCEPT     tcp  --  !br-287ce7f19804 br-287ce7f19804  0.0.0.0/0            172.18.0.6  

И я хочу заблокировать контейнер 172.18.0.2 и его порт 7053. Поэтому я использую sudo iptables -I FORWARD -p tcp -d 172.18.0.2 --dport 7053 -j DROP.

Но это не работает. Итак, что мне делать, чтобы заблокировать целевой IP-адрес и порт?

Источник

Ответы (1)

avatar
Peter
19 декабря 2018 в 02:33
1

Следующее должно работать:

iptables -I DOCKER 1 -p tcp --dport 7053 -j DROP

Это добавит правило DROP перед всеми остальными правилами в цепочке DOCKER.

Следующие полезные команды хорошо:

iptables --list DOCKER -n --line

Кроме того, если вы добавите -v (подробно), вы получите более подробную информацию

Возможно, у вас уже есть ответ, но он может помочь другим.

adrian
19 августа 2021 в 01:16
1

правила docker iptables должны быть добавлены в цепочку DOCKER-USER вместо цепочки DOCKER