iptables: descobre qual pacote está bloqueado por qual regra?

4

Como posso configurar o iptables de uma maneira? Eu sei qual pacote está bloqueado por qual regra? A única solução que conheço é -j LOG --log-prefix. Existe alguma outra maneira?

    
por Vladislav Rastrusny 20.12.2009 / 14:23

3 respostas

1

Você pode ver os contadores de pacotes / bytes:

Chain FIREWALL (2 references)
pkts bytes target prot opt in out source destination

73M 42G ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0

Você pode limpar os contadores com a opção '-Z'. Você pode direcionar tipos de pacotes para sua própria tabela e aceitá-los individualmente com base na fonte, se quiser rastrear a origem.

iptables -N SMTP
iptables -I INPUT -p tcp --dport 25 -j SMTP
iptables -A SMTP -s $network_1 -j ACCEPT
iptables -A SMTP -s $network_2 -j ACCEPT
iptables -A SMTP -j RETURN

#Track by network instead of application
iptables -N NETWORK_1 
iptables -I INPUT -s $network_1 -j NETWORK_1
iptables -A NETWORK_1 -p tcp --dport 25 -j ACCEPT -m comment --comment "MAIL"
iptables -A NETWORK_1 -p udp --dport 10000:20000 -j ACCEPT -m comment --comment "VOIP RTP"
iptables -A NETwORK_1 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -A NETWORK_1 -p tcp -j ACCEPT -m comment --comment "UNKNOWN TCP"
iptables -A NETWORK_1 -j RETURN -m comment --comment "This rule is not required but used for ip accounting"
    
por 20.12.2009 / 17:08
1

Existe também o -j ULOG, que você pode usar junto com o ulogd.

    
por 20.12.2009 / 18:56
1

Olhe para o TRACE target

This target marks packets so that the kernel will log every rule which match the packets as those tra-verse the tables, chains, rules. (The ipt_LOG or ip6t_LOG module is required for the logging.) The packets are logged with the string prefix: "TRACE: tablename:chainname:type:rulenum " where type can be "rule" for plain rule, "return" for implicit rule at the end of a user defined chain and "policy" for the policy of the built in chains. It can only be used in the raw table.

    
por 21.12.2009 / 13:23

Tags