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

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

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

Eu tento adicionar a regra iptable como

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

iptables gera um erro de argumento inválido. Consultando dmesg, vejo o seguinte erro print

ip_tables: udp match: only valid for protocol 17

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

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

Você pode aconselhar sobre o uso correto do comando iptables para o meu caso.

Responder1

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 deseja que a cadeia lide. Com uma cadeia você pode adicionar outras exceções posteriormente sem precisar 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

Responder2

Não deveria! estar atrás das opções?

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

Responder3

tente com:

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

informação relacionada