Re: stateful UDP with unknown source port on INPUT?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks!
I forgot to mention, though, that my source port for the SNMP informs is also random, so I can't match against the destination port for the incoming packet - does the recent target also maintain a port list or is it IP addresses only?


From: Martijn Lievaart <m@xxxxxxx>
To: noa levy <noalevy@xxxxxxxxxxx>
CC: netfilter@xxxxxxxxxxxxxxxxxxx
Subject: Re: stateful UDP with unknown source port on INPUT?
Date: Fri, 30 Mar 2007 01:06:15 +0200

noa levy wrote:
Hi,
I am working on a machine that needs to send SNMP informs, and receive ACKs for these informs. I am using iptables as my firewall, and I need to find a way to open a pinhole for the ACK to get back to me. My problem is that SNMP informs are sent to a predefined UDP port (162) but the ACKs are returned from a random port.
The following rules exist to allow established UDP sessions:
iptables -A INPUT-p udp -m state ?state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m state ?state NEW,ESTABLISHED -j ACCEPT

My problem is that, since the source port of the ACK is a random one, the ACKs are dropped. Is there a way to allow all incoming UDP packets with an unknown source port and an established dest port?

Not directly, but you could use the recent match for this. On outgoing requests, add the IP to the recent set. On incoming packets, first match on the destination port, then match on recent to see if the IP had an recent outgoing request.

I use a similar strategy to reject (instead of drop) indent queries from hosts I made a tcp connection to and that works, so this should to.

HTH,
M4


_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! http://search.msn.com/



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux