Linux Netfilter discussions
 help / color / mirror / Atom feed
From: "Leonardo Rodrigues Magalhães" <leolistas@solutti.com.br>
To: netfilter ML <netfilter@lists.netfilter.org>
Subject: interesting behavior of ftp helper
Date: Sun, 19 Aug 2007 20:14:44 -0300	[thread overview]
Message-ID: <46C8CEE4.2050304@solutti.com.br> (raw)

[-- Attachment #1: Type: text/plain, Size: 3754 bytes --]


    Hello Guys,

    I have always read on documentations and messages on this mailing 
list that the several helpers available for netfilter would 'recognize' 
some complex protocols and make them became RELATED connections. But on 
the development of one firewall script, i found an interesting situation.

    I was running with the following situation:

    forward_interna_externa is the created table that receives all 
traffic flowing from internal to external network. It has, among several 
others, the following rules:

-A forward_interna_externa -s 192.168.0.0/255.255.255.0 -p tcp -m tcp 
--dport 20:21 -j ACCEPT
-A forward_interna_externa -s 192.168.0.0/255.255.255.0 -p tcp -m state 
--state RELATED -j ACCEPT
-A forward_interna_externa -j LOG --log-prefix "bloq_forward_externa:" 
--log-level 6 --log-tcp-sequence --log-tcp-options --log-ip-options
-A forward_interna_externa -j DROP


    ip_conntrack_ftp and ip_nat_ftp modules are correctly loaded.

    So, with these rules and all i have read, i was expecting that 20 
and 21 TCP ports would handle the active FTP connections and 
ip_conntrack_ftp+RELATED rule would handle the passive FTP connections.

    But ..... altough i was doing what i tought to be the correct rules 
and loading the needed modules, i couldnt passive FTP. Active FTP was 
OK, but passive wasn't. My connections were blocked and no packets were 
hitting the RELATED rule:

Aug 15 15:20:02 fenix kernel: bloq_forward_externa:IN=eth0 OUT=eth1 
SRC=192.168.0.54 DST=200.182.XX.YY LEN=40 TOS=0x00 PREC=0x00 TTL=127 
ID=756 DF PROTO=TCP SPT=1113 DPT=4846 SEQ=1838929699 ACK=3064370605 
WINDOW=65535 RES=0x00 ACK URGP=0

Aug 15 15:20:08 fenix kernel: bloq_forward_externa:IN=eth0 OUT=eth1 
SRC=192.168.0.54 DST=200.182.XX.YY LEN=40 TOS=0x00 PREC=0x00 TTL=127 
ID=758 DF PROTO=TCP SPT=1113 DPT=4846 SEQ=1838929699 ACK=3064370605 
WINDOW=65535 RES=0x00 ACK URGP=0


    Altough i always tought that helpers would make 'related' 
connections became RELATED ones, i made one modification on my firewall 
rules. The RELATED rule got a 'brother' rule, the ESTABLISHED one:

-A forward_interna_externa -s 192.168.0.0/255.255.255.0 -p tcp -m tcp 
--dport 20:21 -j ACCEPT
-A forward_interna_externa -s 192.168.0.0/255.255.255.0 -p tcp -m state 
--state RELATED -j ACCEPT
-A forward_interna_externa -s 192.168.0.0/255.255.255.0 -p tcp -m state 
--state ESTABLISHED -j ACCEPT
-A forward_interna_externa -j LOG --log-prefix "bloq_forward_externa:" 
--log-level 6 --log-tcp-sequence --log-tcp-options --log-ip-options
-A forward_interna_externa -j DROP


    And then, passive FTP starts working !!! I could see, with 'iptables 
-nL forward_interna_externa -v' that ESTABLISHED rule was getting hit by 
the passive FTP packets and not the RELATED one. With some more 
experiences, i tried removing FTP helpers and FTP really stopped working 
because packets werent RELATED not ESTABLISHED. Loading FTP modules made 
packets correctly get identified and were allowed by the ESTABLISHED rule.

    Question is ..... did i always get wrong about the helpers and 
RELATED state ??? Is it possible that helper connections get treated as 
ESTABLISHED ??

    The other theory i got is that only the FIRST packet of a helper 
identified connection is RELATED and all the other packets that belong 
to that RELATED connection are indeed ESTABLISHED ones. That would 
explain this situation i got.

    Where did i get it wrong ?? :)

-- 


	Atenciosamente / Sincerily,
	Leonardo Rodrigues
	Solutti Tecnologia
	http://www.solutti.com.br

	Minha armadilha de SPAM, NÃO mandem email
	gertrudes@solutti.com.br
	My SPAMTRAP, do not email it






[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 5672 bytes --]

             reply	other threads:[~2007-08-19 23:14 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-19 23:14 Leonardo Rodrigues Magalhães [this message]
2007-08-20  9:38 ` interesting behavior of ftp helper Pascal Hambourg
2007-08-20 19:15   ` Leonardo Rodrigues Magalhães

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=46C8CEE4.2050304@solutti.com.br \
    --to=leolistas@solutti.com.br \
    --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