특정 부정 규칙과 일치하는 패킷을 제출하는 iptables 규칙

특정 부정 규칙과 일치하는 패킷을 제출하는 iptables 규칙

나는 커널에서 특정 패킷을 선택하고 그에 대한 처리를 수행하기 위해 netfilter_queue를 사용하고 있습니다. netfilter 대기열에는 특정 소스의 모든 패킷이 필요합니다.except UDP packets with src port 2152 & dst port 2152.

iptable 규칙을 다음과 같이 추가하려고합니다.

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

iptables에서 Invalid Argument 오류가 발생합니다. dmesg를 쿼리하면 다음과 같은 오류가 인쇄됩니다.

ip_tables: udp match: only valid for protocol 17

동일한 오류가 발생하면서 다음 변형을 시도했습니다.

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

내 경우에 iptables 명령을 올바르게 사용하는 방법에 대해 조언해 주시겠습니까?

답변1

체인을 만들고, 모든 것을 체인으로 보내고, 체인이 처리하기를 원하지 않는 모든 항목에 대해 RETURN을 수행하면 규칙을 작성하는 것이 훨씬 쉬울 수 있습니다. 체인을 사용하면 나중에 매우 복잡한 규칙을 만들지 않고도 다른 예외를 추가할 수 있습니다.

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

답변2

그러면 안 된다! 옵션 뒤에 있어야 합니까?

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

답변3

다음을 시도해 보세요:

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

관련 정보