lejoso
(usa Debian)
Enviado em 27/06/2013 - 20:47h
INPUT, OUTPUT,FORWARD, PREROUTING, POSTROUTING são as chains nativas do iptables.
Geralmente se cria outras Chains e utilizam elas como alvo apenas por questão de organização das regras, pra não ficar tudo nas chains nativas.
Essas chains são sempre vinculadas a uma tabela (nat, mangle, raw, filter).
Quando uma regra casa com determinado pacote, tem sempre uma ação a ser tomada, que é exatamente o alvo (DROP, ACCEPT, RETURN, MASQUERADE, DNAT, SNAT, etc), e com isso sai da chain. Porém usando como alvo outra chain, ele vai ler as regras que estão dentro da mesma.
O pacote só sai da chain nativa se nenhuma regra com ação concreta for encontrado, ou se dentro dessa outra chais (ex: PING-MORTE) existir um dos alvos acima,
Segue a sequencia:
iptables -N PING-MORTE (criando uma chain vinculada a tabela filter)
iptables -A INPUT -p icmp --icmp-type echo-request -j PING-MORTE (qualquer solicitação de ping é enviado para a chain PING-MORTE)
iptables -A PING-MORTE -m limit --limit 1/s --limit-burst 4 -j RETURN ( se no tempo de 1 segundo tiver no máximo 4 pacotes, ele sai da chain, e continua lendo as outras regras da chain INPUT)
iptables -A PING-MORTE -j DROP (caso existam mais que 4 pacotes no intervalo de 1 segundo, dropa os mesmos).
Att,
Leonardo Souza