Re: xt_recent broken in kernel 3.19.0 + PATCH

From: Chris Vine
Date: Thu Feb 12 2015 - 05:54:28 EST


On Thu, 12 Feb 2015 10:26:16 +0000
Chris Vine <chris@xxxxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 12 Feb 2015 09:35:33 +0100
> Florian Westphal <fw@xxxxxxxxx> wrote:
> > Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
> > > (Cc'ing netdev and netfilter-devel lists)
> >
> > Thanks for forwarding.
> >
> > > > Chris Vine <chris@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > > >> iptables -D SSH_CHAIN -m conntrack --ctstate NEW \
> > > >> -m recent --update --seconds $SSH_LOGIN_PERIOD --hitcount
> > > >> $SSH_TRIES -j DROP
> > > > --- linux-3.19.0/net/netfilter/xt_recent.c~ 2015-02-10
> > > > 09:18:44.657376355 +0000 +++
> > > > linux-3.19.0/net/netfilter/xt_recent.c 2015-02-11
> > > > 17:58:33.311608835 +0000 @@ -378,7 +378,7 @@
> > > > mutex_lock(&recent_mutex); t = recent_table_lookup(recent_net,
> > > > info->name); if (t != NULL) {
> > > > - if (info->hit_count > t->nstamps_max_mask) {
> > > > + if (info->hit_count > t->nstamps_max_mask + 1) {
> >
> > Looks good. Chris, could you formally submit this patch to
> > netfilter-devel@xxxxxxxxxxxxxxx?
> >
> > Thanks!
>
> Done.

On further testing I see that that patch only solves the problem if
SSH_TRIES is set to a power of two boundary. You still get an error
loading the rule if it is anything else. I think there is something
wrong with the nstamp_mask heuristic which is used here.

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/