Eh bien, j'ai compris. Et c'est un doozy.
CentOS 8 utilise nftables, ce qui n'est pas surprenant en soi. Il est livré avec le nft
version du iptables
commandes, c'est-à-dire lorsque vous utilisez le iptables
commande, il maintient en fait un ensemble de tables de compatibilité dans nftables.
Cependant...
Firewalld -- qui est installé par défaut -- a natif prend en charge nftables, de sorte qu'il n'utilise pas la couche de compatibilité iptables.
Donc pendant que iptables -S INPUT
vous montre :
# iptables -S INPUT
-P INPUT ACCEPT
Ce que vous réellement avoir est :
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 solution ici (et honnêtement probablement un bon conseil en général) est :
systemctl disable --now firewalld
Avec le pare-feu à l'écart, les règles iptables sont visibles avec iptables -S
se comportera comme prévu.