Bene, l'ho capito. Ed è un doozy.
CentOS 8 utilizza nftables, che di per sé non è sorprendente. Viene fornito con nft
versione del iptables
comandi, il che significa che quando usi il comando iptables
comando in realtà mantiene un insieme di tabelle di compatibilità in nftables.
Tuttavia...
Firewalld -- che è installato di default -- ha native supporto per nftables, quindi non fa uso del livello di compatibilità iptables.
Quindi, mentre iptables -S INPUT
ti mostra:
# iptables -S INPUT
-P INPUT ACCEPT
Quello che veramente avere è:
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 soluzione qui (e onestamente probabilmente un buon consiglio in generale) è:
systemctl disable --now firewalld
Con firewalld fuori mano, le regole di iptables sono visibili con iptables -S
si comporterà come previsto.