aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorJesper Dangaard Brouer <brouer@redhat.com>2013-08-29 06:18:46 -0400
committerPablo Neira Ayuso <pablo@netfilter.org>2013-09-04 05:44:23 -0400
commit7cc9eb6ef78d0dcb97d543ea19966486e98afa0b (patch)
treee5b55540fbae354d72709d3679360d7b21fffb1c /net/ipv4
parentf4de4c89d89df5ead42de9fea895f5b8155270da (diff)
netfilter: SYNPROXY: let unrelated packets continue
Packets reaching SYNPROXY were default dropped, as they were most likely invalid (given the recommended state matching). This patch, changes SYNPROXY target to let packets, not consumed, continue being processed by the stack. This will be more in line other target modules. As it will allow more flexible configurations of handling, logging or matching on packets in INVALID states. Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Acked-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/netfilter/ipt_SYNPROXY.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv4/netfilter/ipt_SYNPROXY.c b/net/ipv4/netfilter/ipt_SYNPROXY.c
index 90e489eb1c0a..67e17dcda65e 100644
--- a/net/ipv4/netfilter/ipt_SYNPROXY.c
+++ b/net/ipv4/netfilter/ipt_SYNPROXY.c
@@ -285,11 +285,15 @@ synproxy_tg4(struct sk_buff *skb, const struct xt_action_param *par)
285 XT_SYNPROXY_OPT_ECN); 285 XT_SYNPROXY_OPT_ECN);
286 286
287 synproxy_send_client_synack(skb, th, &opts); 287 synproxy_send_client_synack(skb, th, &opts);
288 } else if (th->ack && !(th->fin || th->rst || th->syn)) 288 return NF_DROP;
289
290 } else if (th->ack && !(th->fin || th->rst || th->syn)) {
289 /* ACK from client */ 291 /* ACK from client */
290 synproxy_recv_client_ack(snet, skb, th, &opts, ntohl(th->seq)); 292 synproxy_recv_client_ack(snet, skb, th, &opts, ntohl(th->seq));
293 return NF_DROP;
294 }
291 295
292 return NF_DROP; 296 return XT_CONTINUE;
293} 297}
294 298
295static unsigned int ipv4_synproxy_hook(unsigned int hooknum, 299static unsigned int ipv4_synproxy_hook(unsigned int hooknum,