From: Roman Tsisyk <roman@tsisyk.com>
To: Jan Engelhardt <jengelh@medozas.de>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: Bypass rules using conntrack helpers
Date: Sun, 27 Dec 2009 21:12:56 +0600 [thread overview]
Message-ID: <faefb3f10912270712w35657bc4s6bd037e899211010@mail.gmail.com> (raw)
In-Reply-To: <alpine.LSU.2.01.0912271303490.6911@obet.zrqbmnf.qr>
On Sun, Dec 27, 2009 at 6:16 PM, Jan Engelhardt <jengelh@medozas.de> wrote:
>
> On Sunday 2009-12-27 09:11, Роман Цисык wrote:
>>
>>А questionable point exists in the conntrack expectations design. What
>>happens if somebody opened fake outgoing connection which would match
>>conntrack helpers' signatures? Conntrack module will be able to add
>>records in expectation table.
>>Unfortunately, all users from 192.168.0.0/24 will have problems with
>>an active FTP. Users will force administrators to read boring manuals
>>as alredy founded and load nf_connrack_ftp + nf_nat_ftp to "overcome"
>>the problem.
>>Next, if malicious software would initiate connection as in the
>>previous case, NAT subsystem will forward (y << 8 | z) port to outside
>>by changing source PORT command and, in fact, forwarding a port
>>inside. So, if we something would open connections to remote 21 port
>>and send our PORT commands, we can transparently open ANY port from
>>INTERNAL server to the public Internet, regardless NAT. Hereinafter,
>>I'll call this "conntrack back-connection issue".
>
> That is what helpers are supposed to do. If that poses a security risk,
> to your network, I advise not to use them. In case of FTP that is easily
> worked around by using passive ftp.
>
> Furthermore, the problems NAT brings with itself (ETE connectivity is
> just one) are well-known. Getting your own IPv6 tunnel is a
> no-brainer these days.
>
>>Furthermore, various ways to inititate connections from client exists.
>>It can be malicious software, that needs only user permisions to open
>>connection outgoing connection, or user himself, or ... surprise, just
>>a web-browser.
>
> That is why, as far as I gather, security standards advise to use
> proxies for the connections from the internal network to the
> Internet.
>
Of course, various solution exists, as you already pointed out a
passive FTP and a directly connection using IPv4 or IPv6.
However, NAT is still being widely used today. Sometimes this scheme
includes transparent squid with REDIRECT rule. Moreover, I noticed
that other helpers also can create problems like these, not just ftp
helper. Not everyone will think how helpers works, so a lot of manual
errors and buggy configurations exists.
For first case we can avoid problem by changing
net.ipv4.ip_local_port_range and specifying only these values in
--dport at the "-m state --state" rule.
For second case, we can play with FORWARD chain rules and make its
conntrack-based (and specify --dport for tcp / udp).
We can simple unload conntrack_ftp too.
BTW, I've never seen such settings in small, especially in the box
Linux routers (e.g. Linksys, D-link, etc.), but ip/nf_conntrack_ftp
was loaded or built-in. I've just asked friend of mine to connect
remote ftp through a particular 2.4.x ADSL router with probably loaded
ip_conntrack_ftp, and his records showed me, that active ftp worked
without any problems, lsmod was almost empty (i.e. modules really
built-in), but no appropriate rules existed in iptables.
PS: it seems that Dan Carpenter has founded another problem with the module
--
WBR, Tsisyk Roman
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-12-27 15:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-27 8:11 Bypass rules using conntrack helpers Роман Цисык
2009-12-27 12:16 ` Jan Engelhardt
2009-12-27 15:12 ` Roman Tsisyk [this message]
2010-01-04 12:50 ` Patrick McHardy
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=faefb3f10912270712w35657bc4s6bd037e899211010@mail.gmail.com \
--to=roman@tsisyk.com \
--cc=jengelh@medozas.de \
--cc=netfilter-devel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).