From: Adam Hasselbalch Hansen <ahh@one.com>
To: netfilter-devel@lists.netfilter.org
Subject: TCP Reset to destination instead of source.
Date: Fri, 13 Jul 2007 15:55:17 +0200 [thread overview]
Message-ID: <46978445.10500@one.com> (raw)
Hi.
Suppose someone connects to, say, port 80, and an Apache thread handles
the connection. Now, httpd expects a couple of new-line terminated
lines, before it begins figuring out whether this connection sends a
valid HTTP-request or not. The problem is that this particular client
never sends a newline, since he expects something different than an
HTTP-server handling his request (because he is a moron and don't know
how to configure his particular software to not use port 80). Suppose
that these requests are pretty frequent, and actually takes a bit of
resources from the system, since they leave a lot of httpds hanging
around, waiting for something which never happens.
Now, we would like to filter out these particular requests. Problem is,
we can't recognize them until after they've SYN/ACK'ed with httpd (at
which point, the originating IP is blacklisted). However, in order to
free the httpd-threads in question, since they're just hanging around
waiting for a newline which never comes, it could be nice to send them a
TCP_RESET, whenever we filter and blacklists one of these requests. So
my question is this:
Is this, to begin with, a reasonable solution?
And, supposing it is, would the way to do it not simply just being to
add a --reject-with-option, which calls the reject-code, only without
swapping source and destination? And would this simply be adding a
suitable option-line in libipt_REJECT.c, an 'if' in send_reset in
ipt_REJECT.c, handling whether or not the src/dst-swapping sould occur,
and obviously extend the enum in ipt_REJECT.h?
Thoughts are appreciated.
Adam
P.S. If you need further elaboration, please say so. :)
next reply other threads:[~2007-07-13 13:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-13 13:55 Adam Hasselbalch Hansen [this message]
2007-07-13 14:22 ` TCP Reset to destination instead of source Bill Rugolsky Jr.
2007-07-13 14:27 ` Adam Hasselbalch Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46978445.10500@one.com \
--to=ahh@one.com \
--cc=netfilter-devel@lists.netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.