]> git.ipfire.org Git - thirdparty/iptables.git/log
thirdparty/iptables.git
11 years agoxtables-events: fix missing newline in table and chain events
Pablo Neira Ayuso [Tue, 16 Jul 2013 20:01:04 +0000 (22:01 +0200)] 
xtables-events: fix missing newline in table and chain events

Add missing newline while printing table and chain events.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-events: print usage on wrong arguments
Pablo Neira Ayuso [Tue, 16 Jul 2013 19:55:15 +0000 (21:55 +0200)] 
xtables-events: print usage on wrong arguments

Set opterr to zero to skip getopt_long error reporting.

This also fixes the following compilation warning:

xtables-events.c:148:13: warning: ‘print_usage’ defined but not used [-Wunused-function]

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: Fix small memory leaks
Tomasz Bursztyka [Tue, 16 Jul 2013 12:38:53 +0000 (15:38 +0300)] 
nft: Fix small memory leaks

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: add function to test for a builtin chain
Tomasz Bursztyka [Tue, 16 Jul 2013 20:07:58 +0000 (22:07 +0200)] 
nft: add function to test for a builtin chain

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: Remove useless parameter to nft_chain_list_find
Tomasz Bursztyka [Tue, 16 Jul 2013 20:07:22 +0000 (22:07 +0200)] 
xtables: Remove useless parameter to nft_chain_list_find

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: Handle error on adding rule expressions
Tomasz Bursztyka [Tue, 16 Jul 2013 12:38:46 +0000 (15:38 +0300)] 
nft: Handle error on adding rule expressions

If adding one of match/target/jumpto/verdit/counters fails, adding a rule will
return an error.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@soleta.eu>
11 years agonft: Set the rule family when creating a new one
Tomasz Bursztyka [Tue, 16 Jul 2013 12:38:45 +0000 (15:38 +0300)] 
nft: Set the rule family when creating a new one

Fixes the debug output from (in case of ipv4 rule):
DEBUG: rule: arp filter INPUT 0
to:
DEBUG: rule: ip filter INPUT 0

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@soleta.eu>
11 years agoxtables: nft: display rule number via -S
Pablo Neira Ayuso [Mon, 15 Jul 2013 09:48:48 +0000 (11:48 +0200)] 
xtables: nft: display rule number via -S

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: nft: display rule by number via -L
Giuseppe Longo [Fri, 12 Jul 2013 11:27:33 +0000 (13:27 +0200)] 
xtables: nft: display rule by number via -L

This patch fixes the display of rule by number.

[ Mangled this patch not to display the header, to mimic iptables
  --pablo ]

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix missing afinfo configuration
Pablo Neira Ayuso [Sun, 30 Jun 2013 10:34:36 +0000 (12:34 +0200)] 
xtables: fix missing afinfo configuration

I noticed that the iprange match in IPv6 was broken, fix it
by overriding the default family (IPv4) if -6 is passed.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: do not proceed if nft_init fails
Pablo Neira Ayuso [Tue, 25 Jun 2013 09:56:55 +0000 (11:56 +0200)] 
xtables: do not proceed if nft_init fails

Fix a crash if nft_init fails, it happens if nfnetlink support
is not available in your Linux kernel.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: fix another memleak in nft_rule_list_cb
Giuseppe Longo [Tue, 25 Jun 2013 07:46:17 +0000 (09:46 +0200)] 
nft: fix another memleak in nft_rule_list_cb

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: print counter issues
Giuseppe Longo [Tue, 25 Jun 2013 07:46:06 +0000 (09:46 +0200)] 
nft: print counter issues

The patch fixes the counter print, missing line,
and delete warnings.

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: break loop after found matching chain
Giuseppe Longo [Wed, 19 Jun 2013 11:14:23 +0000 (13:14 +0200)] 
nft: break loop after found matching chain

This patch breaks looping in nft_chain_user_del, nft_chain_zero_counters
and nft_rule_flush after the chain is found.

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: nft: remove lots of useless debugging messages
Pablo Neira Ayuso [Tue, 18 Jun 2013 00:50:48 +0000 (02:50 +0200)] 
xtables: nft: remove lots of useless debugging messages

While at it, fix several memleaks of list objects.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: remove bogus comment on chain rename
Pablo Neira Ayuso [Tue, 18 Jun 2013 00:41:34 +0000 (02:41 +0200)] 
xtables: remove bogus comment on chain rename

No longer true since Patrick added the chain rename approach back in
September 2012.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: allow to zero chains via -Z
Giuseppe Longo [Tue, 18 Jun 2013 00:29:11 +0000 (02:29 +0200)] 
xtables: allow to zero chains via -Z

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: fix leaks in nft_xtables_config_load
Pablo Neira Ayuso [Wed, 12 Jun 2013 09:49:52 +0000 (11:49 +0200)] 
nft: fix leaks in nft_xtables_config_load

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: fix leak of chain iterator in nft_rule_list
Giuseppe Longo [Sat, 8 Jun 2013 03:40:04 +0000 (03:40 +0000)] 
nft: fix leak of chain iterator in nft_rule_list

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: fix leak of rule and chain iterators
Giuseppe Longo [Sat, 8 Jun 2013 02:24:35 +0000 (02:24 +0000)] 
nft: fix leak of rule and chain iterators

This patch fixes the leak of chain and rule iterators.

Signed-off-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix -p protocol
Pablo Neira Ayuso [Sat, 1 Jun 2013 19:14:47 +0000 (21:14 +0200)] 
xtables: fix -p protocol

The protocol field in both IPv4 and IPv6 headers are 8 bits long,
so we have to compare 8 bits.

Reported-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-restore: output the same error message that iptables-restore uses
Pablo Neira Ayuso [Fri, 31 May 2013 14:21:04 +0000 (16:21 +0200)] 
xtables-restore: output the same error message that iptables-restore uses

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: don't call nft_init in nft_xtables_config_load
Pablo Neira Ayuso [Fri, 31 May 2013 12:54:33 +0000 (14:54 +0200)] 
nft: don't call nft_init in nft_xtables_config_load

Otherwise we keep initializing the handle over and over again.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix compilation due to missing autogenerated header
Pablo Neira Ayuso [Tue, 21 May 2013 22:39:36 +0000 (00:39 +0200)] 
xtables: fix compilation due to missing autogenerated header

Fix compilation:

nft.c:51:35: fatal error: xtables-config-parser.h: File or directory doesn't exist

xtables-config-parser.h was generated after compiling nft.c.

Reported-by: Giuseppe Longo <giuseppelng@gmail.com>
Tested-by: Giuseppe Longo <giuseppelng@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: policy can be changed only on builtin chain
Tomasz Bursztyka [Tue, 14 May 2013 00:52:04 +0000 (00:52 +0000)] 
xtables: policy can be changed only on builtin chain

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: initialize xtables defaults even on listing rules
Tomasz Bursztyka [Tue, 14 May 2013 00:52:02 +0000 (00:52 +0000)] 
xtables: initialize xtables defaults even on listing rules

Output of the tool should be the same as for iptables.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: remove unused leftover definitions
Pablo Neira Ayuso [Sun, 12 May 2013 14:50:31 +0000 (16:50 +0200)] 
xtables: remove unused leftover definitions

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: add new nft_ops->post_parse hook
Pablo Neira Ayuso [Sun, 12 May 2013 14:47:11 +0000 (16:47 +0200)] 
xtables: add new nft_ops->post_parse hook

Move specific layer 3 protocol post argument parsing code
to the respective nft-ipv[4|6].c files.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: add new container xtables_args structure
Pablo Neira Ayuso [Sun, 12 May 2013 13:33:54 +0000 (15:33 +0200)] 
xtables: add new container xtables_args structure

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: update .gitignore
Pablo Neira Ayuso [Mon, 22 Apr 2013 11:48:00 +0000 (13:48 +0200)] 
iptables: update .gitignore

Ignore xtables-config-* generated by flex and bison.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-config-parser: fix compilation warning
Pablo Neira Ayuso [Mon, 22 Apr 2013 11:43:07 +0000 (13:43 +0200)] 
xtables-config-parser: fix compilation warning

xtables-config-parser.y: In function ‘xtables_config_parse’:
xtables-config-parser.y:216:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix missing protocol and invflags
Pablo Neira Ayuso [Sun, 24 Mar 2013 12:15:23 +0000 (13:15 +0100)] 
xtables: fix missing protocol and invflags

xtables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables: Target problem. Run `dmesg' for more information
x_tables: ip_tables: tcp match: only valid for protocol

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: fix compilation when lib[mnl|nftables] are not in standard path
Nicolas Dichtel [Wed, 6 Mar 2013 05:00:31 +0000 (05:00 +0000)] 
iptables: fix compilation when lib[mnl|nftables] are not in standard path

There was several problems:
 a typo in the configure option
 a typo in CFLAGS addon for libmnl and libnftables
 paths to lib were missing on link

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-config: fix off by one in parsed strings from /etc/xtables.conf
Pablo Neira Ayuso [Sun, 10 Mar 2013 15:56:20 +0000 (16:56 +0100)] 
xtables-config: fix off by one in parsed strings from /etc/xtables.conf

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: support family in /etc/xtables.conf file
Pablo Neira Ayuso [Sun, 10 Mar 2013 15:20:27 +0000 (16:20 +0100)] 
xtables: support family in /etc/xtables.conf file

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: load tables and chains based on /etc/xtables.conf
Pablo Neira Ayuso [Sun, 10 Mar 2013 15:04:39 +0000 (16:04 +0100)] 
nft: load tables and chains based on /etc/xtables.conf

If /etc/xtables.conf is available, use the configuration there to
autoload the xtables built-in table and chain so you can define custom
configurations. Otherwise, rely on default common table/chain
configuration.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-config: priority has to be per-chain to support
Pablo Neira Ayuso [Sun, 10 Mar 2013 10:43:32 +0000 (11:43 +0100)] 
xtables-config: priority has to be per-chain to support

To support NAT table chain configuration appropriately. Modify example
configuration file as well.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-standalone: fix error message
Pablo Neira Ayuso [Sat, 9 Mar 2013 00:04:29 +0000 (01:04 +0100)] 
xtables-standalone: fix error message

xtables -m tcp -h
(nil) v1.4.15: ...
^^^^^

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix missing xtables_exit_error definition
Pablo Neira Ayuso [Sat, 9 Mar 2013 00:01:11 +0000 (01:01 +0100)] 
xtables: fix missing xtables_exit_error definition

iptables_exit_error is defined in iptables/iptables.c, that
symbol cannot be used by iptables/xtables.c

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: remove license for header file
Pablo Neira Ayuso [Sat, 23 Feb 2013 18:36:46 +0000 (19:36 +0100)] 
nft: remove license for header file

No tradition in the project to include the header file in .h file.
This one is also internal - not exported.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-save: add -4 and -6 support
Pablo Neira Ayuso [Sat, 23 Feb 2013 17:30:36 +0000 (18:30 +0100)] 
xtables-save: add -4 and -6 support

Now you can specify:

 xtables-save -6 > my-ip6tables-ruleset

to dump the IPv6 rule-set.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-restore: add -4 and -6 support
Pablo Neira Ayuso [Sat, 23 Feb 2013 17:27:08 +0000 (18:27 +0100)] 
xtables-restore: add -4 and -6 support

Now you can specify:

 xtables-restore -6 < my-ip6tables-ruleset

to restore the IPv6 rule-set.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: Split nft core to become family independant
Tomasz Bursztyka [Sat, 23 Feb 2013 16:50:31 +0000 (17:50 +0100)] 
nft: Split nft core to become family independant

This makes nft core code independant from the family. Each family needs
to implement and provide a struct nft_family_ops {}.

This split will ease the future support of bridge and arp rules manipulations.

[ updated header files and rebased upon the current tree --pablo ]

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoadd xtables-events
Pablo Neira Ayuso [Sat, 9 Feb 2013 17:22:13 +0000 (18:22 +0100)] 
add xtables-events

Add new program to listen to rule updates:

shell$ xtables-events
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-D INPUT -m state --state ESTABLISHED -j ACCEPT

You can use `-c' option to display counters.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: ipv6: fix -D with -p
Pablo Neira Ayuso [Sat, 9 Feb 2013 17:44:34 +0000 (18:44 +0100)] 
xtables: ipv6: fix -D with -p

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: ipv6: add missing break in nft_parse_payload_ipv6
Pablo Neira Ayuso [Sat, 9 Feb 2013 17:35:48 +0000 (18:35 +0100)] 
xtables: ipv6: add missing break in nft_parse_payload_ipv6

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: ipv6: fix wrong error if -p is used
Pablo Neira Ayuso [Sat, 9 Feb 2013 17:27:04 +0000 (18:27 +0100)] 
xtables: ipv6: fix wrong error if -p is used

shell$ xtables -6 -I INPUT -p tcp --dport 22 -j ACCEPT
xtables v1.4.15: -f is not valid on IPv6
Try `xtables -h' or 'xtables --help' for more information.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: fix crash if TRACE is used
Pablo Neira Ayuso [Sun, 27 Jan 2013 22:19:49 +0000 (23:19 +0100)] 
nft: fix crash if TRACE is used

And any other match and target with no save function defined.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-restore: support test option `-t'
Pablo Neira Ayuso [Sun, 20 Jan 2013 22:23:29 +0000 (23:23 +0100)] 
xtables-restore: support test option `-t'

You can now test if a rule-set is correct.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: nft: add protocol and flags for xtables over nf_tables
Pablo Neira Ayuso [Fri, 25 Jan 2013 15:04:36 +0000 (16:04 +0100)] 
xtables: nft: add protocol and flags for xtables over nf_tables

Add protocol and flags for the compatibility layer.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-restore: support atomic commit
Pablo Neira Ayuso [Sun, 20 Jan 2013 19:19:20 +0000 (20:19 +0100)] 
xtables-restore: support atomic commit

Use new services in nf_tables to support atomic commit.

Commit per table, although we support global commit at once,
call commit for each table to emulate iptables-restore
behaviour by now.

Keep table dormant/wake up code in iptables/nft.c as it can
be used in the future.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: purge out user-define chains from the kernel
Pablo Neira Ayuso [Sun, 20 Jan 2013 21:32:43 +0000 (22:32 +0100)] 
xtables: purge out user-define chains from the kernel

xtables-restore has to purge out user-defined chains that are
not defined in the configuration file.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix compilation warning
Pablo Neira Ayuso [Sun, 20 Jan 2013 19:24:36 +0000 (20:24 +0100)] 
xtables: fix compilation warning

xtables-standalone.c: In function ‘xtables_main’:
xtables-standalone.c:64:2: warning: implicit declaration of function ‘do_commandx’ [-Wimplicit-function-declaration]

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-restore: fix custom user chain restoration
Pablo Neira Ayuso [Sun, 20 Jan 2013 19:18:02 +0000 (20:18 +0100)] 
xtables-restore: fix custom user chain restoration

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: add IPv6 support
Tomasz Bursztyka [Sun, 13 Jan 2013 15:42:11 +0000 (16:42 +0100)] 
xtables: add IPv6 support

Summary of changes to add IPv6 support to the xtables utility:

* modify all commands (add, delete, replace, check and listing) to
  support IPv6 addresses.

And for the internal nft library:

* add family to struct nft_handle and modify all caller to use this
  family instead of the hardcoded AF_INET.
* move code that we can re-use for IPv4 and IPv6 into helper functions.
* add IPv6 rule printing support.
* add support to parse IPv6 address.

Pablo added several improvements to this patch:

* added basic xtables-save and xtables-restore support (so it defaults
  to IPv4)
* fixed a couple of bugs found while testing
* added reference when -f is used to point to -m frag (until we can make
  this consistent with IPv4).

Note that we use one single xtables binary utility for IPv4 and IPv6.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables: fix crash due to using wrong globals
Pablo Neira Ayuso [Sun, 30 Dec 2012 00:45:44 +0000 (01:45 +0100)] 
xtables: fix crash due to using wrong globals

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: adapt chain rename to recent Patrick's updates
Pablo Neira Ayuso [Sat, 29 Dec 2012 19:05:55 +0000 (20:05 +0100)] 
nft: adapt chain rename to recent Patrick's updates

This patch gets existing code in sync with Patrick's chain
renaming new approach.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoxtables-restore: add support for dormant tables
Pablo Neira Ayuso [Mon, 19 Nov 2012 14:32:18 +0000 (15:32 +0100)] 
xtables-restore: add support for dormant tables

This patch adds support for dormant tables for xtables-restore.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: nft: use chain types
Pablo Neira Ayuso [Sat, 3 Nov 2012 12:43:22 +0000 (13:43 +0100)] 
iptables: nft: use chain types

We use the new special chain types defined in the kernel.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: nft: use 64-bits handle
Pablo Neira Ayuso [Sat, 3 Nov 2012 11:20:07 +0000 (12:20 +0100)] 
iptables: nft: use 64-bits handle

Now that we use that in kernel space and in libnftables.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: nft: remove __nft_check_rule
Pablo Neira Ayuso [Sat, 3 Nov 2012 11:16:54 +0000 (12:16 +0100)] 
iptables: nft: remove __nft_check_rule

Rework code to remove __nft_check_rule and split it into
logical fragments.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: nft: move priority to chain instead of table
Pablo Neira Ayuso [Sat, 3 Nov 2012 10:12:45 +0000 (11:12 +0100)] 
iptables: nft: move priority to chain instead of table

NAT table uses different chain priorities, adapt the existing
code to allow this.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoheaders: remove unused compatibility definitions
Pablo Neira Ayuso [Sat, 3 Nov 2012 10:09:30 +0000 (11:09 +0100)] 
headers: remove unused compatibility definitions

They belong to nf_tables_compat.h

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agonft: fix missing rule listing in custom chains with -L
Pablo Neira Ayuso [Thu, 1 Nov 2012 15:26:46 +0000 (16:26 +0100)] 
nft: fix missing rule listing in custom chains with -L

Reported-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: nft: Add support for -R option
Tomasz Bursztyka [Tue, 30 Oct 2012 23:31:08 +0000 (23:31 +0000)] 
iptables: nft: Add support for -R option

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
11 years agoiptables: nft: Refactor __nft_rule_check to return rule handle when relevant
Tomasz Bursztyka [Tue, 30 Oct 2012 23:31:07 +0000 (23:31 +0000)] 
iptables: nft: Refactor __nft_rule_check to return rule handle when relevant

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
11 years agoiptables: nft: Fix -D chain rulenum option
Tomasz Bursztyka [Tue, 30 Oct 2012 23:31:06 +0000 (23:31 +0000)] 
iptables: nft: Fix -D chain rulenum option

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
11 years agonft: Add support for chain rename options (-E)
Tomasz Bursztyka [Tue, 30 Oct 2012 23:31:05 +0000 (23:31 +0000)] 
nft: Add support for chain rename options (-E)

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
11 years agoheaders: Make nf_tables.h up to date
Tomasz Bursztyka [Tue, 30 Oct 2012 23:31:04 +0000 (23:31 +0000)] 
headers: Make nf_tables.h up to date

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
11 years agoiptables: nft: add -f support
Pablo Neira Ayuso [Mon, 29 Oct 2012 21:52:50 +0000 (22:52 +0100)] 
iptables: nft: add -f support

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agorework automatic creation of built-in table and chains
Pablo Neira Ayuso [Mon, 29 Oct 2012 10:39:46 +0000 (11:39 +0100)] 
rework automatic creation of built-in table and chains

This patch reworks the automatic creation of built-in table and
chains. Now it initializes all built-in chains belonging a table
at once.

This happens with commands: -P, -A, -I, -N

Note that xtables skips chain initialization if it notices that
the table already exists in the kernel.

Thanks to Tomasz Bursztyka for spotting problems with -N.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoautomatic creation of built-in table and chains
Pablo Neira Ayuso [Wed, 24 Oct 2012 11:40:12 +0000 (13:40 +0200)] 
automatic creation of built-in table and chains

In order to emulate the iptables behaviour, this patch changes
the current behaviour to:

1st) check if the table and chains are built-in.
2nd) If they don't exists, create them. If they exists, don't touch
     them.

The automatic creation happens in the -I and -P paths.

We should provide a new command to allow to delete (unregister)
built-in tables and chains. It would be similar to unloading
the iptable_X module that registers the custom table.

This is not done for other commands like -C or -D since they
will fail while trying to find the rule in the kernel if such
combination of chain and table does not exists.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agouse nf_tables and nf_tables compatibility interface
Pablo Neira Ayuso [Thu, 27 Sep 2012 17:12:53 +0000 (19:12 +0200)] 
use nf_tables and nf_tables compatibility interface

This patch adds the following utilities:

* xtables
* xtables-restore
* xtables-save
* xtables-config

They all use Patrick's nf_tables infrastructure plus my compatibility
layer.

xtables, xtables-restore and xtables-save are syntax compatible with
ip[6]tables, ip[6]tables-restore and ip[6]tables-save.

Semantics aims to be similar, still the main exception is that there
is no commit operation. Thus, we incrementally add/delete rules without
entire table locking.

The following options are also not yet implemented:

-Z (this requires adding expr->ops->reset(...) so nft_counters can reset
    internal state of expressions while dumping it)

-R and -E (this requires adding this feature to nf_tables)

-f (can be implemented with expressions: payload 6 (2-bytes) + bitwise a&b^!b + cmp neq 0)

-IPv6 support.

But those are a matter of time to get them done.

A new utility, xtables-config, is available to register tables and
chains. By default there is a configuration file that adds backward
compatible tables and chains under iptables/etc/xtables.conf. You have
to call this utility first to register tables and chains.

However, it would be possible to automagically register tables and
chains while using xtables and xtables-restore to get similar operation
than with iptables.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables-save: remove dlfcn.h include
Gustavo Zacarias [Wed, 27 Nov 2013 13:21:12 +0000 (10:21 -0300)] 
iptables-save: remove dlfcn.h include

It's not required and breaks on static-only uClibc builds which don't
have the header file.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Florian Westphal <fw@strlen.de>
11 years agoMerge branch 'stable-1.4.20'
Florian Westphal [Sat, 23 Nov 2013 22:50:17 +0000 (23:50 +0100)] 
Merge branch 'stable-1.4.20'

... to get 76e230e ('iptables: link against libnetfilter_conntrack'),
else static build doesn't work.

Conflicts:
extensions/GNUmakefile.in

[ CPPFLAGS was added in master, so keep it ]

Reported-By: Gustavo Zacarias <gustavo@zacarias.com.ar>
11 years agoiptables 1.4.21 release v1.4.21
Pablo Neira Ayuso [Fri, 22 Nov 2013 11:17:58 +0000 (12:17 +0100)] 
iptables 1.4.21 release

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoutils: nfsynproxy: fix error while compiling the BPF filter
Pablo Neira Ayuso [Mon, 18 Nov 2013 18:06:06 +0000 (19:06 +0100)] 
utils: nfsynproxy: fix error while compiling the BPF filter

Fix the following error while running nfsynproxy here:

 pcap_compile: not-yet-activated pcap_t passed to pcap_compile

According to what I have read, we have to compile the filter
once the pcap_t handle has been activated.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoextensions: libxt_set, libxt_SET: check the set family too
Jozsef Kadlecsik [Wed, 4 Sep 2013 15:43:49 +0000 (17:43 +0200)] 
extensions: libxt_set, libxt_SET: check the set family too

Do not accept silently sets with wrong protocol family but reject
them with an error message. It makes straightforward to catch user
errors.

[ Use afinfo instead to avoid a binary interface update --pablo ]

Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoutils: add nfsynproxy tool
Patrick McHardy [Wed, 28 Aug 2013 07:32:44 +0000 (09:32 +0200)] 
utils: add nfsynproxy tool

[ Originally synconf, but Jesper D. Brouer suggested to change
  the name to avoid a possible filename clash. I also include
  nfsynproxy in the final configure report --pablo ]

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoextensions: add SYNPROXY extension
Patrick McHardy [Wed, 28 Aug 2013 06:44:42 +0000 (08:44 +0200)] 
extensions: add SYNPROXY extension

Signed-off-by: Patrick McHardy <kaber@trash.net>
11 years agoextensions: libxt_cluster: add note on arptables-jf
Pablo Neira Ayuso [Mon, 4 Nov 2013 10:35:01 +0000 (11:35 +0100)] 
extensions: libxt_cluster: add note on arptables-jf

Gao feng reported problems while getting the cluster match working with
arptables. This patch adds a note in the manpage to warn about the arptables-jf
syntax, which is different from mainstream arptables.

Reported-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoip6tables: Use consistent exit code for EAGAIN
Kevin Cernekee [Sat, 2 Nov 2013 04:08:34 +0000 (21:08 -0700)] 
ip6tables: Use consistent exit code for EAGAIN

As of commit 056564f6a (Add new exit value to indicate concurrency
issues), the IPv4 iptables binary returns exit status 4 to indicate that
the kernel returned EAGAIN when trying to update a table.  But ip6tables
still returns exit status 1 under the same circumstances.  Update
ip6tables to bring it in line with iptables behavior.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: spurious error in load_extension
Phil Oester [Tue, 8 Oct 2013 16:20:15 +0000 (09:20 -0700)] 
iptables: spurious error in load_extension

In commit 927385017047d (iptables: improve error reporting with extension
loading troubles), a new error message was added in an attempt to handle
the case where a match does not support a particular protocol family.
For instance, attempting to use the osf match on IPv6.

Unfortunately, this error message now triggers when creating a new chain
which has the same name as a match extension, because iptables calls
xtables_find_target with the name of the new chain to verify it does not
clash with an existing target.  For example:

    # iptables -N tcp
    /usr/lib/xtables/libxt_tcp.so: no "tcp" extension found for this protocol

I attempted to resolve this by adding a new XTF flag, but that required changes
in many different places (including -j handling).  It seems easiest just to
remove this warning and stick with the original error message of ENOENT, even
if less than precise.

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
11 years agoiptables: improve chain name validation
Phil Oester [Sat, 5 Oct 2013 16:33:15 +0000 (09:33 -0700)] 
iptables: improve chain name validation

As pointed out by Andrew Domaszek, iptables allows whitespace to be included in
chain names.  This causes issues with iptables-restore, and later iptables
actions on the chain.  Attached patch disallows whitespace, and also consolidates
all chain name checking into a new function.

This closes netfilter bugzilla #855.

[ Included ip6tables changed as well --pablo ]

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoiptables: extensions/GNUMakefile.in use CPPFLAGS
Laurence J. Lane [Thu, 22 Aug 2013 16:44:47 +0000 (12:44 -0400)] 
iptables: extensions/GNUMakefile.in use CPPFLAGS

"All other Makefiles add CPPFLAGS to ${COMPILE} (automake), but GNUmakefile.in
 doesn't set it."

http://bugs.debian.org/665286

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoextensions: libxt_LOG: use generic syslog reference in manpage
Laurence J. Lane [Fri, 6 Sep 2013 21:46:00 +0000 (17:46 -0400)] 
extensions: libxt_LOG: use generic syslog reference in manpage

Fedora, ArchLinux, Ubuntu, and Debian, at the least, use
alternative syslog daemons by default these days. Let's make
the syslog reference generic.

Reference: http://bugs.debian.org/567564

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agolibxtables: xtables_ipmask_to_numeric incorrect with non-CIDR masks
Phil Oester [Thu, 26 Sep 2013 16:06:58 +0000 (09:06 -0700)] 
libxtables: xtables_ipmask_to_numeric incorrect with non-CIDR masks

As pointed out by Peter Hoelsken, rules created with non-standard
masks such as 0.255.0.0, 0.0.255.0, etc. are displayed when output
with iptables -L in CIDR notation as -1.  This is because the cidr
variable in xtables_ipmask_to_numeric is unsigned, and the return
value of -1 from xtables_ipmask_to_cidr is therefore converted to
UINT_MAX. Add a cast to workaround the issue.

This closes netfilter bugzilla #854.

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoiptables: libxt_string.man add examples
Laurence J. Lane [Sat, 24 Aug 2013 21:37:55 +0000 (17:37 -0400)] 
iptables: libxt_string.man add examples

Add usage examples for string and hex string patterns.

References: http://bugs.debian.org/699904
Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
12 years agoiptables: libxt_recent.{c,man} dead URL
Laurence J. Lane [Fri, 23 Aug 2013 20:55:55 +0000 (16:55 -0400)] 
iptables: libxt_recent.{c,man} dead URL

Remove it.

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
12 years agoiptables: link against libnetfilter_conntrack
Jan Engelhardt [Tue, 13 Aug 2013 19:02:06 +0000 (21:02 +0200)] 
iptables: link against libnetfilter_conntrack

Linking currently fails in --enable-static case:

../extensions/libext.a(libxt_connlabel.o): In function `connlabel_get_name':
iptables/extensions/libxt_connlabel.c:57: undefined reference to `nfct_labelmap_get_name'
[..]
It's libxtables.la(libxt_connlabel.o) using libnetfilter_conntrack.

If libnetfilter_conntrack is not found, @libnetfilter_conntrack_CFLAGS@
and @libnetfilter_conntrack_LIBS@ (and their ${} ones) should be empty,
therefore producing no harm to include unconditionally.

Reported-and-tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Florian Westphal <fw@strlen.de>
12 years agobuild: add software version to manpage first line at configure stage
Pablo Neira Ayuso [Thu, 22 Aug 2013 11:11:45 +0000 (13:11 +0200)] 
build: add software version to manpage first line at configure stage

This patch adds the software version to the first line of the
following manpages:

iptables-save.8
iptables-restore.8
iptables-apply.8
iptables-xml.1

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoiptables: iptables-xm1.1 correct man section
Laurence J. Lane [Mon, 19 Aug 2013 16:54:35 +0000 (12:54 -0400)] 
iptables: iptables-xm1.1 correct man section

iptables-xml.8 was moved to iptables-xm1.1.

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoiptables: libip(6)t_REJECT.man default icmp types
Laurence J. Lane [Sun, 18 Aug 2013 23:41:40 +0000 (19:41 -0400)] 
iptables: libip(6)t_REJECT.man default icmp types

The extension man page shows "port-unreach" and "port-unreachable" as
default icmpv6 and icomp reject-with types. Either and variations work
fine for writing rules, but they are displayed as "icmp6-port-unreachable"
and "icmp-port-unreachable". Let's make that consistent.

http://bugs.debian.org/644819

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoiptables: libxt_conntrack.man extraneous commas
Laurence J. Lane [Sun, 18 Aug 2013 19:44:13 +0000 (15:44 -0400)] 
iptables: libxt_conntrack.man extraneous commas

The first might work. The second doesn't.

(The other corrections in the bug report are already implemented.)

http://bugs.debian.org/654983

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoiptables: libxt_hashlimit.man: correct address
Laurence J. Lane [Sat, 17 Aug 2013 23:08:59 +0000 (19:08 -0400)] 
iptables: libxt_hashlimit.man: correct address

Corrects an example address with subnet mask.

http://bugs.debian.org/698393

Signed-off-by: Laurence J. Lane <ljlane@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoip[6]tables: fix incorrect alignment in commands_v_options
Pablo Neira Ayuso [Fri, 9 Aug 2013 16:00:22 +0000 (18:00 +0200)] 
ip[6]tables: fix incorrect alignment in commands_v_options

CMD_ZERO_NUM is 14, so it has to be defined in position 15 in the
commands_v_options array. This does not manifests easily since
commands from 9 to 14 have a very similar pattern in such array.

Based on this patch: http://patchwork.ozlabs.org/patch/188153/

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoMerge branch 'stable-1.4.20'
Pablo Neira Ayuso [Thu, 8 Aug 2013 16:16:36 +0000 (18:16 +0200)] 
Merge branch 'stable-1.4.20'

To retrieve:

iptables: state match incompatibilty across versions

12 years agoiptables: state match incompatibilty across versions
Phil Oester [Wed, 7 Aug 2013 23:44:49 +0000 (16:44 -0700)] 
iptables: state match incompatibilty across versions

As reported in Debian bug #718810 [1], state match rules added in < 1.4.16
iptables versions are incorrectly displayed by >= 1.4.16 iptables versions.
Issue bisected to commit 0d701631 (libxt_state: replace as an alias to
xt_conntrack).

Fix this by adding the missing .print and .save functions for state match
aliases in the conntrack match.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718810

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
12 years agoMerge branch 'stable-1.4.20'
Pablo Neira Ayuso [Thu, 8 Aug 2013 10:37:31 +0000 (12:37 +0200)] 
Merge branch 'stable-1.4.20'

To retrieve:

iptables: correctly reference generated file

12 years agoiptables: correctly reference generated file
Lutz Jaenicke [Wed, 7 Aug 2013 08:09:16 +0000 (10:09 +0200)] 
iptables: correctly reference generated file

Since (14bca55 iptables: use autoconf to process .in man pages),
the file "iptables-extensions.8.tmpl" is generated from
"iptables-extensions.8.tmpl.in" and is consequently no
longer found in ${srcdir} but in the build directory.
(Becomes visible with builddir != srcdir)

Signed-off-by: Lutz Jaenicke <ljaenicke@innominate.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>