Conexión exitosa a un puerto cerrado con FirewallD

Conexión exitosa a un puerto cerrado con FirewallD

Ayúdenme a comprender por qué FirewallD me permite conectarme a un puerto pero bloquea el segundo.

Hay un contenedor Docker con transmisión:

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

Ambos puertos (9091 y 51413) no figuran en las reglas de 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:

¡Pero! La conexión se realizó correctamente para el puerto 9091 pero no para el puerto 51413. El puerto 51413 solo está disponible para 127.0.0.1

Respuesta1

No los ve en firewalld porque Docker abre los puertos él mismo, fuera de firewalld.

Para ver qué está haciendo Docker, ejecute:

iptables -L DOCKER
iptables -t nat -L DOCKER

Docker lo haráabrir los puertos del firewallpara cualquier puerto de sus contenedores EXPOSE, a menos que lo desactive explícitamente. También permite que los contenedores que necesitan comunicarse entre sí lo hagan, por lo que debes dejar esto habilitado a menos queen realidadsaber lo que estás haciendo.

información relacionada