<feed xmlns='http://www.w3.org/2005/Atom'>
<title>conntrack-tools.git/doc, branch oxnard</title>
<subtitle>conntrack-tools i.e. conntrack and conntrackd (mirror of https://github.com/vyos/conntrack-tools.git)
</subtitle>
<id>https://git.amelek.net/vyos/conntrack-tools.git/atom?h=oxnard</id>
<link rel='self' href='https://git.amelek.net/vyos/conntrack-tools.git/atom?h=oxnard'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/'/>
<updated>2012-05-30T14:54:05+00:00</updated>
<entry>
<title>Merge branch 'cthelper9' of git://git.netfilter.org/conntrack-tools into user_space_helpers</title>
<updated>2012-05-30T14:54:05+00:00</updated>
<author>
<name>Gaurav Sinha</name>
<email>gaurav.sinha@vyatta.com</email>
</author>
<published>2012-05-30T14:54:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=a608049a22dc23676c85bbf443e45cbbf0e9b83c'/>
<id>urn:sha1:a608049a22dc23676c85bbf443e45cbbf0e9b83c</id>
<content type='text'>
Conflicts:
	.gitignore
	src/run.c
</content>
</entry>
<entry>
<title>conntrackd: TNS helper added to cthelper</title>
<updated>2012-05-28T10:35:06+00:00</updated>
<author>
<name>Jozsef Kadlecsik</name>
<email>kadlec@blackhole.kfki.hu</email>
</author>
<published>2012-05-15T12:43:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=30c70aa6360ef88395327774d193ea7b6115f86a'/>
<id>urn:sha1:30c70aa6360ef88395327774d193ea7b6115f86a</id>
<content type='text'>
Signed-off-by: Jozsef Kadlecsik &lt;kadlec@blackhole.kfki.hu&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>conntrackd: RPC helper added to cthelper</title>
<updated>2012-05-28T10:35:04+00:00</updated>
<author>
<name>Jozsef Kadlecsik</name>
<email>kadlec@blackhole.kfki.hu</email>
</author>
<published>2012-05-15T12:31:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=b6fd0dbf41c733c4824c06f2006554f5af4b895a'/>
<id>urn:sha1:b6fd0dbf41c733c4824c06f2006554f5af4b895a</id>
<content type='text'>
Signed-off-by: Jozsef Kadlecsik &lt;kadlec@blackhole.kfki.hu&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>conntrackd: add cthelper infrastructure (+ example FTP helper)</title>
<updated>2012-05-28T10:34:59+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2012-05-14T23:51:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=e96bfcd1b9f79cb3642b365a584359b1672f2ac0'/>
<id>urn:sha1:e96bfcd1b9f79cb3642b365a584359b1672f2ac0</id>
<content type='text'>
This patch adds the user-space helper infrastructure. It also
contains the implementation of the FTP helper in user-space.

There's one example file that you can use to configure conntrackd
as user-space connection tracking helper under:

 doc/helper/conntrackd.conf

Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>doc: fix example on how to filter events via iptables CT target</title>
<updated>2012-03-05T22:14:32+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2012-03-05T22:13:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=1de3034f8c4f597cbe4be35b2f84e2848e46e64e'/>
<id>urn:sha1:1de3034f8c4f597cbe4be35b2f84e2848e46e64e</id>
<content type='text'>
You have to use this:

iptables -I PREROUTING -t raw -j CT --ctevents assured,destroy

instead of:

iptables -I PREROUTING -t raw -j CT --ctevents assured

Otherwise, conntrackd cache gets full since no destroy events
are delivered.

Reported-by: Kerin Millar &lt;kerframil@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>doc: add ras, q.931 and h.245 to examples configuration file</title>
<updated>2012-02-21T15:03:21+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2012-02-21T15:03:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=bb2534c7aaf0bdb6521371b8a31af6333d3a6a2d'/>
<id>urn:sha1:bb2534c7aaf0bdb6521371b8a31af6333d3a6a2d</id>
<content type='text'>
Now it includes:

ExpectationSync {
	...
	ras
	q.931
	h.245
}

Which are the set of helpers for h.323.

Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>Updating upstream with merged content from netfilter conntrack-tools version 1.0.1</title>
<updated>2012-01-12T22:45:24+00:00</updated>
<author>
<name>Gaurav Sinha</name>
<email>gaurav.sinha@vyatta.com</email>
</author>
<published>2012-01-12T22:45:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=ca37a710d526d17490ebdc3af760bfddd316426d'/>
<id>urn:sha1:ca37a710d526d17490ebdc3af760bfddd316426d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>doc: update conntrack-tools manual to detail expectation support</title>
<updated>2012-01-10T00:54:45+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2012-01-07T17:40:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=414fedd879fdc3cd0a910acd2fd9262251a6bfe7'/>
<id>urn:sha1:414fedd879fdc3cd0a910acd2fd9262251a6bfe7</id>
<content type='text'>
This patch updates the user manual on how to enable the expectation
support for conntrackd.

Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>conntrackd: support for expectation synchronization</title>
<updated>2012-01-10T00:54:45+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2011-12-19T16:13:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=79a777c60cfe02197c135adcc4edb2f63ae9a695'/>
<id>urn:sha1:79a777c60cfe02197c135adcc4edb2f63ae9a695</id>
<content type='text'>
This patch adds support to synchronize expectations between
firewalls. This addition aims to re-use as much as possible
of the existing infrastructure for stability reasons. The
expectation support has been tested with the FTP helper.

This extension requires libnetfilter_conntrack 1.0.0.

If this is the first time you're playing with conntrackd,
I *strongly* recommend you to get working setup of conntrackd
without expectation support before as described in the
documentation. Then, enabling expectation support is rather
easy.

To know more about expectations, if you're not familiar with them,
I suggest you to read:

"Netfilter's Connection Tracking System"
http://people.netfilter.org/pablo/docs/login.pdf

Reprinted from ;login: The Magazine of USENIX, vol. 31, no. 3
(Berkeley, CA: USENIX Association, 2006, pp40-45.)

In short, expectations allow one Linux firewall to filter multi-flow
traffic like FTP, SIP and H.323.

In my testbed, there are two firewalls in a primary-backup configuration
running keepalived. The use a couple of floating cluster IP address
(192.168.0.100 and 192.168.1.100) that are used by the client. These
firewalls protect one FTP server (192.168.1.2) that will be accessed by
one client.

In ASCII art, it looks like this:

     192.168.0.100      192.168.1.100
              eth1      eth2
                   fw-1
                 /      \       FTP
 -- client ------       ------ server --
  192.168.0.2    \      /   192.168.1.2
                   fw-2

This is the rule-set for the firewalls:

-A POSTROUTING -t nat -s 192.168.0.2/32 -d 192.168.1.2/32 -j SNAT --to-source 192.168.1.100

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state INVALID -j DROP

-A FORWARD -m state --state RELATED -j ACCEPT
-A FORWARD -i eth2 -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -p tcp -m tcp --dport 21 --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j ACCEPT
-A FORWARD -i eth1 -p tcp -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j LOG --log-prefix "invalid: "

The following steps detail how to check that the expectation support
works fine for conntrackd:

1) You have to enable the expectation support in the configuration
file with the following option:

 Sync {
        ...
        Options {
                ExpectationSync {
                        ftp
                        sip
                        h323
                }
        }
 }

This enables expectation synchronization for the FTP, SIP and H.323 helpers.
You can alternatively use:

 Sync {
        ...
        Options {
                ExpectationSync On
        }
 }

To enable expectation synchronization for all helpers.

2) Make sure you have loaded the FTP helper in both firewalls.

root@fw1# modprobe nf_conntrack_ftp
root@fw2# modprobe nf_conntrack_ftp

3) Switch to the client. Start one FTP control connection to one
server that is protected by the firewalls, enter passive mode:

(term-1) user@client$ nc 192.168.1.2 21
220 dummy FTP server
USER anonymous
331 Please specify the password.
PASS nothing
230 Login successful.
PASV
227 Entering Passive Mode (192,168,1,2,163,11).

This means that port 163*256+11=41739 will be used for the data
traffic. Read this if you are not familiar with the FTP protocol:
http://www.freefire.org/articles/ftpexample.php

3) Switch to fw-1 (primary) to check that the expectation is in the
   internal cache.

root@fw1# conntrackd -i exp
proto=6 src=192.168.0.2 dst=192.168.1.2 sport=0 dport=41739 mask-src=255.255.255.255 mask-dst=255.255.255.255 sport=0 dport=65535 master-src=192.168.0.2 master-dst=192.168.1.2 sport=36390 dport=21 [active since 5s]

4) Switch to fw-2 (backup) to check that the expectation has been successfully
   replicated.

root@fw2# conntrackd -e exp
proto=6 src=192.168.0.2 dst=192.168.1.2 sport=0 dport=41739 mask-src=255.255.255.255 mask-dst=255.255.255.255 sport=0 dport=65535 master-src=192.168.0.2 master-dst=192.168.1.2 sport=36390 dport=21 [active since 8s]

5) Make the primary firewall fw-1 fail. Now fw-2 becomes primary.

6) Switch to fw-2 (primary) to commit the external cache into the kernel.

root@fw2# conntrackd -c exp

The logs should display that the commit was successful:

root@fw2# tail -100f /var/log/conntrackd.log
[Wed Dec  7 22:16:31 2011] (pid=19195) [notice] committing external cache: expectations
[Wed Dec  7 22:16:31 2011] (pid=19195) [notice] Committed 1 new entries
[Wed Dec  7 22:16:31 2011] (pid=19195) [notice] commit has taken 0.000366 seconds

7) Switch to the client. Open a new terminal and connect to the port that
   has been announced by the server:

(term-2) user@client$ nc -vvv 192.168.1.2 41739
(UNKNOWN) [192.168.1.2] 41739 (?) open

8) Switch to term-1 and ask for the file listing:

[...]
227 Entering Passive Mode (192,168,1,2,163,11).
LIST

9) Switch to term-2, it should display the listing. That means
   everything has worked fine.

You may want to try disabling the expectation support and
repeating the steps to check that *it does not work* without
the state-synchronization.

You can also display expectation statistics by means of:
root@fwX# conntrackd -s exp

This update requires no changes in the primary-backup.sh script
that is used by the HA manager to interact with conntrackd. Thus,
we provide a backward compatible command line interface.

Regarding the Filter clause and expectations, we use the master
conntrack to filter expectation events. The filtering is performed
in user-space. No kernel-space filtering support for expectations
yet (this support should go in libnetfilter_conntrack at some
point).

This patch also includes support to disable caching and to allow
direct injection of expectations.

Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>doc: primary-backup.sh: clarify licensing terms (GPLv2+)</title>
<updated>2011-12-30T11:14:03+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2011-12-30T11:13:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/conntrack-tools.git/commit/?id=7bb73190b8702a57041ea7280455b078c987d886'/>
<id>urn:sha1:7bb73190b8702a57041ea7280455b078c987d886</id>
<content type='text'>
This script is released under GPLv2+. Update copyright notice
as well.

Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
</feed>
