Regras de mascaramento de Iptables removidas, conexões ainda existentes vivas

0

Eu tenho uma configuração de LAN em que a regra de mascaramento de iptables é aplicada no gateway para permitir o acesso à Internet para as máquinas na LAN. Está funcionando bem, no entanto, as conexões existentes ainda estão vivas, mesmo após a remoção da regra do disfarce. ex: ping 8.8.8.8 continua nas máquinas na LAN mesmo depois que a regra de mascaramento é removida. Não funciona quando pingado novamente. Portanto, as conexões existentes não são eliminadas na remoção da regra de mascaramento. A regra que adicionei é:

iptables -A POSTROUTING -o eth0 -j MASQUERADE

Todas as sugestões para modificar esta regra / outras soluções para eliminar as conexões existentes. ?

    
por Vijay47 13.10.2017 / 11:37

1 resposta

3

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 .

    
por 15.10.2017 / 05:24