
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