Bueno, lo descubrí. Y es genial.
CentOS 8 usa nftables, lo que en sí mismo no es sorprendente. Se envía con el nft
versión del iptables
comandos, lo que significa que cuando usas el iptables
comando en realidad mantiene un conjunto de tablas de compatibilidad en nftables.
Sin embargo...
Firewalld, que se instala de forma predeterminada, tiene nativo compatibilidad con nftables, por lo que no utiliza la capa de compatibilidad de iptables.
Así que mientras iptables -S INPUT
te muestra:
# iptables -S INPUT
-P INPUT ACCEPT
Lo que realmente tener es:
chain filter_INPUT {
type filter hook input priority 10; policy accept;
ct state established,related accept
iifname "lo" accept
jump filter_INPUT_ZONES_SOURCE
jump filter_INPUT_ZONES
ct state invalid drop
reject with icmpx type admin-prohibited <-- HEY LOOK AT THAT!
}
La solución aquí (y honestamente, probablemente un buen consejo en general) es:
systemctl disable --now firewalld
Con el cortafuegos fuera del camino, las reglas de iptables son visibles con iptables -S
se comportará como se esperaba.