iptables para enviar pacotes que correspondam a uma regra negativa específica

1

Estou usando netfilter_queue para pegar certos pacotes do kernel e fazer algum processamento neles. Para, a fila do netfilter, eu preciso de todos os pacotes de uma fonte em particular except UDP packets with src port 2152 & dst port 2152.

Eu tento adicionar a regra de iptable como

iptables -A OUTPUT ! s 192.168.0.3 ! -p udp ! --sport 2905 ! --dport 2905 -j NFQUEUE --queue-num 0

O iptables lança um erro de argumento inválido. Consultando o dmesg, vejo o seguinte erro de impressão

ip_tables: udp match: only valid for protocol 17

Eu tentei a seguinte variação com o mesmo erro lançado.

iptables -A OUTPUT ! s 192.168.0.3 ! -p udp --sport 2905 --dport 2905 -j NFQUEUE --queue-num 0

Por favor, avise sobre o uso correto do comando iptables para o meu caso.

    
por Aditya Sehgal 16.06.2010 / 18:47

3 respostas

5

Pode ser muito mais fácil escrever suas regras se você criar uma cadeia, enviar tudo para a cadeia e fazer um RETURN em qualquer coisa que você não queira que a cadeia manipule. Com uma cadeia, você pode adicionar outras exceções depois sem ter que criar uma regra realmente complicada.

iptables -t filter -N out_queue
iptables -t filter -A OUTPUT -j out_queue
iptables -t filter -A out_queue -p udp --sport 2905 -j RETURN
iptables -t filter -A out_queue -p udp --dport 2905 -j RETURN
iptables -t filter -A out_queue -j NFQUEUE --queue-num 0
    
por 16.06.2010 / 18:58
0

Não deveria o! depois das opções?

iptables -A OUTPUT -s ! 192.168.0.3 -p udp --sport ! 2905 --dport ! 2905 -j NFQUEUE --queue-num 0
    
por 16.06.2010 / 18:53
0

tente com:

iptables -A OUTPUT -s 192.168.0.3 -p udp --sport!2905 --dport!2905 -j NFQUEUE --queue-num 0
    
por 16.06.2010 / 18:53