TPTito Pinardo Gutiérrez
← Artículos
English

El cortafuegos de un contenedor de Proxmox que no hace nada: falta [OPTIONS] enable: 1

Había restringido el SSH de los contenedores a mis equipos y la VPN, y bloqueado el puerto de una base de datos. Desde otro contenedor se llegaba a los dos igual. En 11 contenedores, las reglas estaban escritas y no hacían nada.

  • Proxmox VE
  • Linux / SSH hardening

Síntoma

Una prueba sencilla desde otro contenedor, intentando abrir los puertos que debían estar cerrados:

timeout 4 bash -c "</dev/tcp/<contenedor>/22" && echo ABIERTO || echo BLOQUEADO
# → ABIERTO, aunque su .fw solo permitía mi PC y la VPN

Causa

Comparando un contenedor que sí filtraba con uno que no, la diferencia estaba en la cabecera del fichero de reglas en /etc/pve/firewall/<id>.fw.

Un fichero de contenedor con solo [RULES] no se aplica, aunque la interfaz tenga firewall=1 y el cortafuegos del clúster esté activo. Hace falta además la sección de opciones con el cortafuegos activado para ese contenedor.

[OPTIONS]
enable: 1

[RULES]
IN ACCEPT -source <mi-pc> -p tcp -dport 22
IN ACCEPT -source <vpn> -p tcp -dport 22

Arreglo y comprobación

Añadir la sección de opciones en los 11 contenedores afectados y repetir la prueba desde fuera: los puertos que debían estar cerrados, cerrados; lo que tenía que pasar, pasando.

Ahora la creación de contenedores desde código incluye siempre esa sección, y cada cambio de cortafuegos se prueba intentando atravesarlo.