All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jorge Davila <davila@nicaraguaopensource.com>
To: Franck Joncourt <franck.joncourt@wanadoo.fr>,
	netfilter@lists.netfilter.org
Subject: Re: SYN/ACK and NEW packets
Date: Mon, 06 Aug 2007 17:35:12 -0600	[thread overview]
Message-ID: <web-22122741@bk3.webmaillogin.com> (raw)
In-Reply-To: <20070806182027.GA11849@sid.toystory.lan>

Franck,

In the the RFC 793 [1] we can read:

   A TCP connection progresses from one state to another in response to
   events.  The events are the user calls, OPEN, SEND, RECEIVE, CLOSE,
   ABORT, and STATUS; the incoming segments, particularly those
   containing the SYN, ACK, RST and FIN flags; and timeouts.

Then, the rule

iptables -A INPUT -m state --state NEW \
-p tcp SYN,FIN,RST,ACK ACK -j RETURN

_must_ match the packet sent by nmap because have a valid state (NEW) and a 
valid flag (ACK) -a flag that is present in a normal tcp negotiation.

Someone may want dig in this?

Jorge Dávila.

[1] http://www.ietf.org/rfc/rfc793.txt

On Mon, 6 Aug 2007 20:20:27 +0200
  Franck Joncourt <franck.joncourt@wanadoo.fr> wrote:
>> On Sat, 4 Aug 2007 21:21:09 +0200
>>  Franck Joncourt <franck.joncourt@wanadoo.fr> wrote:
>>> Hi,
>>> Looking at this :
>>> http://iptables-tutorial.frozentux.net/iptables-tutorial.html#SYNACKANDNEW
>>> I understand that in order to prevent my ip address from being spoofed,
>>> I should reject NEW packets with the SYN/ACK flags set and the others
>>> cleared.
>>> However, with the following nmap command I have tried to check it out :
>>> nmap --scanflags SYNACK 192.168.0.1
>>> all packets are known to be in the INVALID state rather than in the NEW
>>> state.
>>> state NEW tcp flags:FIN,SYN,RST,ACK/SYN,ACK -> 0 packet
>>> state INVALID tcp flags:FIN,SYN,RST,ACK/SYN,ACK -> 170 packets
>>> They talk about sequence number, as well, in the document, but I can't
>>> figure out what difference it makes.
>>> Did I miss anything ?
> 
> On Sat, Aug 04, 2007 at 02:26:12PM -0600, Jorge Davila wrote:
>> Well, in the three-way handshake the flags in the packets are:
>>
>> 1) syn packet sent by the client
>> 2) syn,ack sent by the server
>> 3) ack sent by the client
> 
> So far, I agree :p!
> 
>> The packets in the NEW state for a statefull firewall (as iptables) are 
>> packets that belongs to a new "data stream", marked with the syn flag.
> 
> What about sending packets with only the ACK flag set.
> 
> Those packets matched the following rule every time on random ports :
> 
> iptables -A INPUT -m state --state NEW \
> 	-p tcp SYN,FIN,RST,ACK ACK -j RETURN
> 
> using nmap --scanflags ACK 192.168.0.1
> 
> So, there is something wrong since I did not send any SYN packets. 530
> packets send and 530 packets matched. And none of them are part of a
> connection.
> 
>> The packets in the INVALID state are packets, in your case specifically, 
>> that implies a new "data stream" (or more properly, packets that does not 
>> belongs to a connection previously ESTABLISHED or to a connection RELATED 
>> to a connection previously ESTABLISHED) but this new "data stream" is not 
>> negotiating for open a new socket, is just sending "data".
> 
> I understand what you mean, I hope so. The flags SYN/ACK are not
> sufficent to be matched as a NEW state since there is nothing in the
> data stream "to negotiate for a new socket".
> 
>>
>> In fact, there are 0 packets with the state NEW with the flags 
>> FIN,SYN,RST,ACK/SYN,ACK because the packets that you sent does not have 
>>the 
>> right flags to be considered a valid packets to open a new connection.
> 
> Ok.
> 
> Do not worry about the ACK packets, unless you have an explanation and
> the time to put it down. There must be something in the RFC 793 about
> it.
> 
> Thanks
> 
> I apologize for the delay, but I saw your message when I was sorting
> out my spams.
> 
> -- 
>Franck Joncourt
> http://www.debian.org - http://smhteam.info/wiki/
> GPG server : pgpkeys.mit.edu
>Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

Jorge Isaac Davila Lopez
Nicaragua Open Source
+505 430 5462
davila@nicaraguaopensource.com


      reply	other threads:[~2007-08-06 23:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-04 19:21 SYN/ACK and NEW packets Franck Joncourt
2007-08-04 20:26 ` Jorge Davila
2007-08-06 18:20   ` Franck Joncourt
2007-08-06 23:35     ` Jorge Davila [this message]

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=web-22122741@bk3.webmaillogin.com \
    --to=davila@nicaraguaopensource.com \
    --cc=franck.joncourt@wanadoo.fr \
    --cc=netfilter@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.