Linux Netfilter discussions
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox