* Re: xt_recent broken in kernel 3.19.0 + PATCH [not found] ` <20150211183121.6688aec8@bother.homenet> @ 2015-02-12 3:15 ` Cong Wang 2015-02-12 8:35 ` Florian Westphal 0 siblings, 1 reply; 5+ messages in thread From: Cong Wang @ 2015-02-12 3:15 UTC (permalink / raw) To: Chris Vine Cc: Linux Kernel Mailing List, netfilter-devel, Linux Kernel Network Developers (Cc'ing netdev and netfilter-devel lists) On Wed, Feb 11, 2015 at 10:31 AM, Chris Vine <chris@cvine.freeserve.co.uk> wrote: > On Wed, 11 Feb 2015 09:28:34 +0000 > Chris Vine <chris@cvine.freeserve.co.uk> wrote: >> With kernel 3.19.0, the following iptables rule, where SSH_TRIES is >> set to 4: >> >> iptables -D SSH_CHAIN -m conntrack --ctstate NEW \ >> -m recent --update --seconds $SSH_LOGIN_PERIOD --hitcount >> $SSH_TRIES -j DROP >> >> generates this error message in syslog: >> >> kernel: xt_recent: hitcount (4) is larger than packets to be >> remembered (4) for table DEFAULT >> >> and the rule fails to install in the table. No error is generated >> with kernel 3.18.6. > > The rule provoking this should of course have been the one appending > the rule, which is: > > iptables -A SSH_CHAIN -m conntrack --ctstate NEW \ > -m recent --update --seconds $SSH_LOGIN_PERIOD --hitcount $SSH_TRIES -j DROP > > On looking at the code, the changes in the 3.19 kernel seem not to have > been tested and there is an off-by-one error. The patch below restores > behaviour to be identical to that found in the 3.18 kernel. > > Chris > > --- 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) { > pr_info("hitcount (%u) is larger than packets to be remembered (%u) for table %s\n", > info->hit_count, t->nstamps_max_mask + 1, > info->name); > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: xt_recent broken in kernel 3.19.0 + PATCH 2015-02-12 3:15 ` xt_recent broken in kernel 3.19.0 + PATCH Cong Wang @ 2015-02-12 8:35 ` Florian Westphal 2015-02-12 10:26 ` Chris Vine 0 siblings, 1 reply; 5+ messages in thread From: Florian Westphal @ 2015-02-12 8:35 UTC (permalink / raw) To: Cong Wang Cc: Chris Vine, Linux Kernel Mailing List, netfilter-devel, Linux Kernel Network Developers Cong Wang <xiyou.wangcong@gmail.com> wrote: > (Cc'ing netdev and netfilter-devel lists) Thanks for forwarding. > > Chris Vine <chris@cvine.freeserve.co.uk> 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@vger.kernel.org? Thanks! ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: xt_recent broken in kernel 3.19.0 + PATCH 2015-02-12 8:35 ` Florian Westphal @ 2015-02-12 10:26 ` Chris Vine 2015-02-12 10:54 ` Chris Vine 0 siblings, 1 reply; 5+ messages in thread From: Chris Vine @ 2015-02-12 10:26 UTC (permalink / raw) To: Florian Westphal Cc: Cong Wang, Linux Kernel Mailing List, netfilter-devel, Linux Kernel Network Developers On Thu, 12 Feb 2015 09:35:33 +0100 Florian Westphal <fw@strlen.de> wrote: > Cong Wang <xiyou.wangcong@gmail.com> wrote: > > (Cc'ing netdev and netfilter-devel lists) > > Thanks for forwarding. > > > > Chris Vine <chris@cvine.freeserve.co.uk> 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@vger.kernel.org? > > Thanks! Done. Chris ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: xt_recent broken in kernel 3.19.0 + PATCH 2015-02-12 10:26 ` Chris Vine @ 2015-02-12 10:54 ` Chris Vine 2015-02-12 11:11 ` Chris Vine 0 siblings, 1 reply; 5+ messages in thread From: Chris Vine @ 2015-02-12 10:54 UTC (permalink / raw) To: Florian Westphal Cc: Cong Wang, Linux Kernel Mailing List, netfilter-devel, Linux Kernel Network Developers On Thu, 12 Feb 2015 10:26:16 +0000 Chris Vine <chris@cvine.freeserve.co.uk> wrote: > On Thu, 12 Feb 2015 09:35:33 +0100 > Florian Westphal <fw@strlen.de> wrote: > > Cong Wang <xiyou.wangcong@gmail.com> wrote: > > > (Cc'ing netdev and netfilter-devel lists) > > > > Thanks for forwarding. > > > > > > Chris Vine <chris@cvine.freeserve.co.uk> 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@vger.kernel.org? > > > > 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: xt_recent broken in kernel 3.19.0 + PATCH 2015-02-12 10:54 ` Chris Vine @ 2015-02-12 11:11 ` Chris Vine 0 siblings, 0 replies; 5+ messages in thread From: Chris Vine @ 2015-02-12 11:11 UTC (permalink / raw) To: Florian Westphal Cc: Cong Wang, Linux Kernel Mailing List, netfilter-devel, Linux Kernel Network Developers On Thu, 12 Feb 2015 10:54:17 +0000 Chris Vine <chris@cvine.freeserve.co.uk> wrote: [snip] > 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. I now find that that is not right either. I had to rmmod xt_recent to get it to drop its previous setting. With that done, the patch does indeed seem to work for all values of SSH_TRIES. Chris ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-02-12 11:11 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20150211092834.65f8ae80@bother.homenet> [not found] ` <20150211183121.6688aec8@bother.homenet> 2015-02-12 3:15 ` xt_recent broken in kernel 3.19.0 + PATCH Cong Wang 2015-02-12 8:35 ` Florian Westphal 2015-02-12 10:26 ` Chris Vine 2015-02-12 10:54 ` Chris Vine 2015-02-12 11:11 ` Chris Vine
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).