Encontrou o problema. Basicamente eu fiz um make uninstall
da versão 1.4.16 do iptables e compilei a partir da versão 1.4.20 (mais recente disponível agora). Agora funciona perfeitamente.
[root@router ~]# iptables -A INPUT -j ACCEPT
iptables: No chain/target/match by that name.
Como isso é possível? Eu recompilei o kernel (3.11.8) e atualizei o iptables para o 1.4.16. O problema é que se eu colocar manualmente a regra acima em /etc/sysconfig/iptables
e eu emitir o comando /etc/init.d/iptables restart
(eu estou no CentOS 6.4) ele funciona! Insere a regra.
Meu lsmod | grep ipt
:
iptable_mangle 12695 1
ipt_MASQUERADE 12759 3
iptable_nat 12810 1
nf_nat_ipv4 13263 1 iptable_nat
nf_nat 25997 3 ipt_MASQUERADE,iptable_nat,nf_nat_ipv4
nf_conntrack 95633 7 xt_state,ipt_MASQUERADE,iptable_nat,nf_nat_ipv4,nf_nat,nf_conntrack_ipv4,xt_conntrack
iptable_filter 12810 1
ip_tables 27213 3 iptable_mangle,iptable_nat,iptable_filter
iptables -L
output:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination