
Por favor, ajude a entender por que o FirewallD permite que eu me conecte a uma porta, mas bloqueia a segunda.
Existe um contêiner Docker com transmissão:
5cf144eed6f2 maksim77/transmission "/bin/sh -c 'transmis" 14 hours ago Up 16 minutes 0.0.0.0:9091->9091/tcp, 0.0.0.0:51413->51413/tcp transmission
Ambas as portas (9091 e 51413) não estão listadas nas regras do FirewallD:
root@host:maksim #firewall-cmd --list-all-zones | grep active
public (default, active)
trusted (active)
root@host:maksim #firewall-cmd --list-all --zone trusted
trusted (active)
interfaces: docker0
sources:
services:
ports: 4243/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
root@host:maksim #firewall-cmd --list-all --zone public
public (default, active)
interfaces: enp9s0
sources:
services: dhcpv6-client ftp http ssh
ports: 41387/tcp 1900/udp 50213/tcp 8200/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Mas! A conexão foi bem-sucedida para a porta 9091, mas não para a porta 51413. A porta 51413 está disponível apenas para 127.0.0.1
Responder1
Você não vê isso no firewalld porque o próprio Docker abre as portas, fora do firewalld.
Para ver o que o Docker está fazendo, execute:
iptables -L DOCKER
iptables -t nat -L DOCKER
Docker iráabra as próprias portas do firewallpara qualquer porta de seus contêineres EXPOSE
, a menos que você desative isso explicitamente. Ele também permite que contêineres que precisam se comunicar entre si façam isso, então você deve deixar esta opção habilitada, a menos que vocêrealmentesabe o que você está fazendo.