Re: NFQUEUE verdicts - adding non-termination

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

 



--- On Mon, 11/15/10, Patrick McHardy <kaber@xxxxxxxxx> wrote:

> From: Patrick McHardy <kaber@xxxxxxxxx>
> Subject: Re: NFQUEUE verdicts - adding non-termination
> To: "Stig Thormodsrud" <stig@xxxxxxxxxx>
> Cc: "Andrew Watts" <akwatts@xxxxxxxxx>, netfilter-devel@xxxxxxxxxxxxxxx
> Date: Monday, November 15, 2010, 10:34 AM
> On 12.11.2010 20:54, Stig Thormodsrud
> wrote:
> > On 11/11/2010 02:50 AM, Patrick McHardy wrote:
> >> On 11.11.2010 10:01, Andrew Watts wrote:
> >>> Hi.
> >>>
> >>> The NF_CONTINUE verdict that Darryl Miles
> brings up in his 11/4 post is very interesting.
> >>>
> >>> NF_CONTINUE would provide the NFQUEUE target
> the added flexibility of, say, partial handling in
> userspace. A queue-handler could have a set of criteria
> that, when satisfied, would result in an immediate drop or
> accept. One could then leave the rest of the packets to find
> their fate in the chains/rules left to traverse.
> >>>
> >>> I would be interested in helping to add this
> verdict if someone will take the lead (assuming a patch
> hasn't already been written - has it?).
> >>
> >> There's no difference between returning NF_ACCEPT
> or a new NF_CONTINUE.
> >> Queueing happens outside of the ruleset context,
> so in either case the
> >> packet would continue through the network stack
> directly, not after
> >> the NFQUEUE rule.
> > 
> > I've been interested in this thread since I recently
> converted our
> > version of snort inline to use NFQUEUE instead of
> QUEUE.  One of driving
> > factors was that I needed to have multiple QUEUE
> targets.  While I was
> > doing the work I was hoping there was a verdict like
> NF_RETURN, so that
> > if it passed the snort inspection then I could have
> another NFQUEUE
> > target that would do https domain filtering. 
> From reading this thread I
> > now understand why I can just continue, but I
> wondering what is that the
> > recommended approach for this type of use case? 
> As it is now, I think I
> > would need to have the 2nd NFQUEUE target on a
> different hook.
> 
> Look at my second response to Andrew, you can use NF_REPEAT
> and some
> mark based jumps to do this. You can also return NF_QUEUE
> from userspace
> directly and encode the queue number in the upper 16 bits.
> 

Patrick, many thanks for the guidance on this. Your
advice was right on.

Stig, something to consider in addition to Patrick's
comment is that you can make the mark-based decision
more complex than just binary. Then a single queue
handler can process according to different mark values
and increment the mark on each return (until a 
termination value is reached).

~ Andy


      
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux