From: Willy TARREAU <willy@w.ods.org>
To: "David S. Miller" <davem@davemloft.net>
Cc: xschmi00@stud.feec.vutbr.cz, alastair@unixtrix.com,
linux-kernel@vger.kernel.org
Subject: Re: BUG: Unusual TCP Connect() results.
Date: Sat, 11 Jun 2005 08:24:13 +0200 [thread overview]
Message-ID: <20050611062413.GA1324@pcw.home.local> (raw)
In-Reply-To: <20050610.154248.130848042.davem@davemloft.net>
Hi David,
On Fri, Jun 10, 2005 at 03:42:48PM -0700, David S. Miller wrote:
> From: Willy TARREAU <willy@w.ods.org>
> Date: Sat, 11 Jun 2005 00:26:45 +0200
>
> > It is documented in RFC793 (p30) as the simultaneous connection initation
> > from 2 clients, although this mode has never been implemented by any
> > mainline OS (to my knowledge) as it has no real use and poses security
> > problems (eases spoofing a lot).
>
> BSD (and thus BSD derivatives) and Linux have has it since
> day one.
Indeed, I've just managed to reproduce the full test with two different
addresses as it's described in p30. I never succeeded to do it before,
perhaps I did not try it the right way. To achieve this, I had to run two
programs doing while(connect()<0). I agree that on high latency networks,
it may make sense to support the feature (eg: mars-earth file transfers).
But on regular uses, I think it's more a problem than a feature, because
it allows any third party to prevent a normal connection establishment
by only knowing the source and destination, which are sometimes easily
guessable (eg: BGP between routers) :
| A connects to B, C tries to block them by sending lots of SYN at
| intervals smaller than the latency between A and B, eg 200/s for
| a 10 ms latency.
A B (or C)
---------------+--------------------------------
<- SYN(SEQ=200) (C sends blind SYN)
<- SYN(SEQ=200) (C sends blind SYN)
SYN(SEQ=100) -> ...
<- SYN(SEQ=200) (C sends blind SYN)
SYN(SEQ=101,ACK=201) -> (A acknowledges C's SYN)
<- SYN(SEQ=300,ACK=101) (B acknowledges A's SYN)
RST(SEQ=102,ACK=301) -> (A rejects B's SYN/ACK)
<- RST(SEQ=201,ACK=102) (B rejects A's SYN/ACK)
Maybe it would be useful to have a sysctl option allowing us to disable
this behaviour when it can haev security implications ?
Also, I often test firewalls for such features and never found any one
which allows this. To be more precise, only a previous implementation of
the tcp-window-tracking in Netfilter allowed this but it opened a security
breach that we had to resolve with Jozsef, as it allowed the client to
establish a session by sending the SYN-SYN/ACK-ACK itself...
> I guess it depends upon your definition of
> "mainline OS". :-)
It does not depend on my definition, but on my knowledge, as I put the
condition in the initial mail that you quoted above :-)
Cheers,
Willy
next prev parent reply other threads:[~2005-06-11 6:24 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-09 20:51 Alastair Poole
2005-06-10 2:23 ` [OT] " Kyle Moffett
2005-06-10 13:24 ` Alastair Poole
2005-06-10 15:28 ` Michal Schmidt
2005-06-10 16:55 ` Alastair Poole
2005-06-10 16:06 ` Michal Schmidt
2005-06-10 22:26 ` Willy TARREAU
2005-06-10 22:38 ` Willy Tarreau
2005-06-10 22:42 ` David S. Miller
2005-06-11 6:24 ` Willy TARREAU [this message]
[not found] ` <20050611074350.GD28759@alpha.home.local>
2005-06-11 19:32 ` [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.) Herbert Xu
2005-06-11 19:51 ` Willy Tarreau
2005-06-12 8:13 ` Herbert Xu
2005-06-12 8:34 ` Willy Tarreau
2005-06-12 10:30 ` Herbert Xu
2005-06-12 11:40 ` Willy Tarreau
2005-06-12 12:06 ` Herbert Xu
2005-06-12 12:22 ` Thomas Graf
2005-06-12 13:16 ` Herbert Xu
2005-06-12 12:32 ` Willy Tarreau
2005-06-12 13:13 ` Herbert Xu
2005-06-12 13:33 ` Herbert Xu
2005-06-12 13:47 ` Willy Tarreau
2005-06-12 13:50 ` Herbert Xu
2005-06-12 14:24 ` Willy Tarreau
2005-06-13 4:48 ` Herbert Xu
2005-06-13 5:21 ` Willy Tarreau
2005-06-13 5:24 ` Herbert Xu
2005-06-13 6:17 ` Willy Tarreau
2005-06-13 7:45 ` Herbert Xu
2005-06-13 8:10 ` Willy Tarreau
2005-06-13 20:57 ` [PATCH] fix small DoS on connect() David S. Miller
2005-06-12 13:36 ` [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.) Willy Tarreau
2005-06-12 14:44 ` Thomas Graf
2005-06-12 15:02 ` Willy Tarreau
2005-06-12 17:10 ` Denis Vlasenko
2005-06-12 17:36 ` Willy Tarreau
2005-06-12 17:47 ` Denis Vlasenko
2005-06-12 18:14 ` Willy Tarreau
2005-06-13 2:04 ` Valdis.Kletnieks
2005-06-11 15:34 ` BUG: Unusual TCP Connect() results Alastair Poole
2005-06-11 14:38 ` Willy Tarreau
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=20050611062413.GA1324@pcw.home.local \
--to=willy@w.ods.org \
--cc=alastair@unixtrix.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=xschmi00@stud.feec.vutbr.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®