Contanto que a entrada conntrack exista (30 timeout para icmp (ping)), a tabela nat não é mais usada. É apenas um curto-circuito pela entrada conntrack.
Você pode inspecionar esse comportamento em tempo real com conntrack -E
(instale o pacote conntrack se você não tiver o comando). Cada entrada [NEW]
significa que um novo fluxo apareceu e a tabela nat foi lida uma vez. Então não é mais usado.
Para remover essa entrada restante, use conntrack -D
[...]. Verifique o manual. Então, por exemplo, depois de remover a regra MASQUERADE enquanto um ping para 8.8.8.8 ainda está funcionando, faça:
conntrack -D --orig-dst 8.8.8.8
deve inviabilizar esse ping. Cuidado, o seu IP interno irá vazar para a internet (até que seja bloqueado por um roteador que não goste de um ip de origem não-roteável na internet).
Outra maneira de eliminar a conexão sem remover a regra MASQUERADE:
Observe que o NAT não é destinado ao firewall. Que usar NAT normalmente protege como um firewall é apenas um efeito colateral. Você deve usar a tabela de filtros para impedir o tráfego.
Muito cedo na cadeia FORWARD, e se existir, antes do usual -m conntrack --state ESTABLISHED -j ACCEPT
put (um salto para) uma nova cadeia chamada por exemplo blacklist. Nesta cadeia simplesmente insira qualquer regra que combine com a conexão atual que você quer matar, seja uma fonte ip específica, ip de destino, porta, ... Você também pode fazer uso do módulo set
e do comando ipset
. Veja o exemplo em man iptables-extensions
: iptables -A FORWARD -m set --match-set test src,dst
apenas coloque-o na cadeia de lista negra e adicione um -j DROP
.