Yolinux.com

ip6tables manpage

Search topic Section


IP6TABLES(8)			iptables 1.4.18			  IP6TABLES(8)



NAME
       ip6tables -- IPv6 packet filter administration

SYNOPSIS
       ip6tables [-t table] {-A|-C|-D} chain rule-specification [options...]

       ip6tables [-t table] -I chain [rulenum] rule-specification [options...]

       ip6tables [-t table] -R chain rulenum rule-specification [options...]

       ip6tables [-t table] -D chain rulenum [options...]

       ip6tables [-t table] -S [chain [rulenum]]

       ip6tables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]

       ip6tables [-t table] -N chain

       ip6tables [-t table] -X [chain]

       ip6tables [-t table] -P chain target [options...]

       ip6tables [-t table] -E old-chain-name new-chain-name

DESCRIPTION
       Ip6tables  is  used to set up, maintain, and inspect the tables of IPv6
       packet filter rules in the Linux kernel.	 Several different tables  may
       be  defined.   Each  table contains a number of built-in chains and may
       also contain user-defined chains.

       Each chain is a list of rules which can match a set of  packets.	  Each
       rule specifies what to do with a packet that matches.  This is called a
       `target', which may be a jump to a user-defined chain in the  same  ta-
       ble.

TARGETS
       A  firewall  rule specifies criteria for a packet and a target.	If the
       packet does not match, the next rule in the chain is the	 examined;  if
       it does match, then the next rule is specified by the value of the tar-
       get, which can be the name of a user-defined chain or one of  the  spe-
       cial values ACCEPT, DROP, QUEUE or RETURN.

       ACCEPT  means to let the packet through.	 DROP means to drop the packet
       on the floor.  QUEUE means to pass the packet to userspace.   (How  the
       packet can be received by a userspace process differs by the particular
       queue handler.  2.4.x and  2.6.x	 kernels  up  to  2.6.13  include  the
       ip_queue	 queue handler.	 Kernels 2.6.14 and later additionally include
       the nfnetlink_queue queue handler.  Packets with a target of QUEUE will
       be  sent	 to queue number '0' in this case. Please also see the NFQUEUE
       target as described  later  in  this  man  page.)   RETURN  means  stop
       traversing  this	 chain	and  resume  at	 the next rule in the previous
       (calling) chain.	 If the end of a built-in chain is reached or  a  rule
       in a built-in chain with target RETURN is matched, the target specified
       by the chain policy determines the fate of the packet.

TABLES
       There are currently five independent tables (which tables  are  present
       at  any time depends on the kernel configuration options and which mod-
       ules are present).

       -t, --table table
	      This option specifies the packet matching table which  the  com-
	      mand  should operate on.	If the kernel is configured with auto-
	      matic module loading, an attempt will be made to load the appro-
	      priate module for that table if it is not already there.

	      The tables are as follows:

	      filter:
		  This	is  the	 default table (if no -t option is passed). It
		  contains the built-in chains INPUT (for packets destined  to
		  local	 sockets),  FORWARD  (for packets being routed through
		  the box), and OUTPUT (for locally-generated packets).

	      nat:
		  This table is consulted when a packet	 that  creates	a  new
		  connection  is encountered.  It consists of three built-ins:
		  PREROUTING (for altering packets as soon as they  come  in),
		  OUTPUT  (for altering locally-generated packets before rout-
		  ing), and POSTROUTING (for  altering	packets	 as  they  are
		  about to go out). Available since kernel 3.7.

	      mangle:
		  This table is used for specialized packet alteration.	 Until
		  kernel 2.4.17 it had two built-in  chains:  PREROUTING  (for
		  altering  incoming  packets  before routing) and OUTPUT (for
		  altering locally-generated packets before  routing).	 Since
		  kernel  2.4.18,  three  other	 built-in chains are also sup-
		  ported: INPUT (for packets coming into the box itself), FOR-
		  WARD	(for  altering	packets being routed through the box),
		  and POSTROUTING (for altering packets as they are  about  to
		  go out).

	      raw:
		  This	table  is  used mainly for configuring exemptions from
		  connection tracking in combination with the NOTRACK  target.
		  It registers at the netfilter hooks with higher priority and
		  is thus called before ip_conntrack, or any other IP  tables.
		  It  provides	the following built-in chains: PREROUTING (for
		  packets arriving via	any  network  interface)  OUTPUT  (for
		  packets generated by local processes)

	      security:
		  This	table  is used for Mandatory Access Control (MAC) net-
		  working rules, such as those	enabled	 by  the  SECMARK  and
		  CONNSECMARK  targets.	  Mandatory  Access  Control is imple-
		  mented by Linux Security Modules such as SELinux.  The secu-
		  rity	table  is  called after the filter table, allowing any
		  Discretionary Access Control (DAC) rules in the filter table
		  to  take  effect  before MAC rules.  This table provides the
		  following built-in chains: INPUT (for	 packets  coming  into
		  the  box  itself),  OUTPUT  (for  altering locally-generated
		  packets before routing), and FORWARD (for  altering  packets
		  being routed through the box).

OPTIONS
       The  options  that are recognized by ip6tables can be divided into sev-
       eral different groups.

   COMMANDS
       These options specify the specific action to perform.  Only one of them
       can  be specified on the command line unless otherwise specified below.
       For all the long versions of the command and option names, you need  to
       use  only  enough letters to ensure that ip6tables can differentiate it
       from all other options.

       -A, --append chain rule-specification
	      Append one or more rules to the end of the selected chain.  When
	      the  source  and/or  destination	names resolve to more than one
	      address, a rule will be added for each possible address combina-
	      tion.

       -C, --check chain rule-specification
	      Check  whether  a	 rule matching the specification does exist in
	      the selected chain. This command uses the same logic  as	-D  to
	      find  a matching entry, but does not alter the existing iptables
	      configuration and uses its exit  code  to	 indicate  success  or
	      failure.

       -D, --delete chain rule-specification
       -D, --delete chain rulenum
	      Delete one or more rules from the selected chain.	 There are two
	      versions of this command: the rule can be specified as a	number
	      in  the  chain  (starting	 at 1 for the first rule) or a rule to
	      match.

       -I, --insert chain [rulenum] rule-specification
	      Insert one or more rules in the selected chain as the given rule
	      number.	So,  if	 the  rule  number is 1, the rule or rules are
	      inserted at the head of the chain.  This is also the default  if
	      no rule number is specified.

       -R, --replace chain rulenum rule-specification
	      Replace a rule in the selected chain.  If the source and/or des-
	      tination names resolve to multiple addresses, the	 command  will
	      fail.  Rules are numbered starting at 1.

       -L, --list [chain]
	      List  all rules in the selected chain.  If no chain is selected,
	      all chains are listed. Like every other  ip6tables  command,  it
	      applies to the specified table (filter is the default).

	      Please  note  that it is often used with the -n option, in order
	      to avoid long reverse DNS lookups.  It is legal to  specify  the
	      -Z  (zero)  option  as  well, in which case the chain(s) will be
	      atomically listed and zeroed.  The exact output is  affected  by
	      the  other arguments given. The exact rules are suppressed until
	      you use
	       ip6tables -L -v

       -S, --list-rules [chain]
	      Print all rules in the selected chain.  If no chain is selected,
	      all  chains  are	printed	 like ip6tables-save. Like every other
	      ip6tables command, it applies to the specified table (filter  is
	      the default).

       -F, --flush [chain]
	      Flush the selected chain (all the chains in the table if none is
	      given).  This is equivalent to deleting all  the	rules  one  by
	      one.

       -Z, --zero [chain [rulenum]]
	      Zero  the	 packet	 and  byte counters in all chains, or only the
	      given chain, or only the given rule in a chain. It is  legal  to
	      specify  the  -L, --list (list) option as well, to see the coun-
	      ters immediately before they are cleared. (See above.)

       -N, --new-chain chain
	      Create a new user-defined chain by the given name.   There  must
	      be no target of that name already.

       -X, --delete-chain [chain]
	      Delete the optional user-defined chain specified.	 There must be
	      no references to the chain.  If there are, you  must  delete  or
	      replace  the  referring  rules  before the chain can be deleted.
	      The chain must be empty, i.e. not	 contain  any  rules.	If  no
	      argument	is  given, it will attempt to delete every non-builtin
	      chain in the table.

       -P, --policy chain target
	      Set the policy for the chain to the given target.	 See the  sec-
	      tion  TARGETS  for  the legal targets.  Only built-in (non-user-
	      defined) chains can have	policies,  and	neither	 built-in  nor
	      user-defined chains can be policy targets.

       -E, --rename-chain old-chain new-chain
	      Rename the user specified chain to the user supplied name.  This
	      is cosmetic, and has no effect on the structure of the table.

       -A, --append chain rule-specification
	      Append one or more rules to the end of the selected chain.  When
	      the  source  and/or  destination	names resolve to more than one
	      address, a rule will be added for each possible address combina-
	      tion.

       -h     Help.   Give a (currently very brief) description of the command
	      syntax.

   PARAMETERS
       The following parameters make up a rule specification (as used  in  the
       add, delete, insert, replace and append commands).

       -4, --ipv4
	      If  a  rule using the -4 option is inserted with (and only with)
	      ip6tables-restore, it will be silently ignored. Any  other  uses
	      will  throw  an  error.  This option allows to put both IPv4 and
	      IPv6 rules in a single rule file for  use	 with  both  iptables-
	      restore and ip6tables-restore.

       -6, --ipv6
	      This option has no effect in ip6tables and ip6tables-restore.

       [!] -p, --protocol protocol
	      The  protocol of the rule or of the packet to check.  The speci-
	      fied protocol can be one of tcp, udp, udplite, icmpv6,  esp,  mh
	      or the special keyword "all", or it can be a numeric value, rep-
	      resenting one of these protocols or a different one. A  protocol
	      name  from  /etc/protocols  is also allowed.  But IPv6 extension
	      headers except esp are not allowed.  esp and ipv6-nonext can  be
	      used with Kernel version 2.6.11 or later.	 A "!" argument before
	      the protocol inverts the test.  The number zero is equivalent to
	      all, which means that you cannot test the protocol field for the
	      value 0 directly. To match on a HBH header, even if it were  the
	      last,  you  cannot use -p 0, but always need -m hbh.  "all" will
	      match with all protocols and  is	taken  as  default  when  this
	      option is omitted.

       [!] -s, --source address[/mask]
	      Source  specification.   Address	can be either be a hostname, a
	      network IP address (with /mask), or a plain IP  address.	 Names
	      will  be resolved once only, before the rule is submitted to the
	      kernel.  Please note that specifying any	name  to  be  resolved
	      with  a remote query such as DNS is a really bad idea.  (Resolv-
	      ing network names is not supported at this time.)	 The mask is a
	      plain  number,  specifying the number of 1's at the left side of
	      the network mask.	 A "!" argument before the address  specifica-
	      tion  inverts  the  sense	 of  the address. The flag --src is an
	      alias for this option.  Multiple addresses can be specified, but
	      this  will  expand  to  multiple rules (when adding with -A), or
	      will cause multiple rules to be deleted (with -D).

       [!] -d, --destination address[/mask]
	      Destination  specification.   See	 the  description  of  the  -s
	      (source)	flag  for  a  detailed description of the syntax.  The
	      flag --dst is an alias for this option.

       -m, --match match
	      Specifies a match to use, that  is,  an  extension  module  that
	      tests  for  a  specific property. The set of matches make up the
	      condition under which a target is invoked. Matches are evaluated
	      first  to	 last  as  specified  on  the command line and work in
	      short-circuit fashion, i.e. if one extension yields false, eval-
	      uation will stop.

       -j, --jump target
	      This  specifies  the target of the rule; i.e., what to do if the
	      packet matches it.  The  target  can  be	a  user-defined	 chain
	      (other than the one this rule is in), one of the special builtin
	      targets which decide the fate of the packet immediately,	or  an
	      extension	 (see EXTENSIONS below).  If this option is omitted in
	      a rule (and -g is not used), then matching the rule will have no
	      effect  on  the packet's fate, but the counters on the rule will
	      be incremented.

       -g, --goto chain
	      This specifies that the processing should	 continue  in  a  user
	      specified	 chain.	 Unlike the --jump option return will not con-
	      tinue processing in this chain but instead  in  the  chain  that
	      called us via --jump.

       [!] -i, --in-interface name
	      Name  of	an interface via which a packet was received (only for
	      packets entering the  INPUT,  FORWARD  and  PREROUTING  chains).
	      When  the	 "!"  argument	is used before the interface name, the
	      sense is inverted.  If the interface name ends in	 a  "+",  then
	      any  interface  which begins with this name will match.  If this
	      option is omitted, any interface name will match.

       [!] -o, --out-interface name
	      Name of an interface via which a packet is going to be sent (for
	      packets  entering	 the  FORWARD, OUTPUT and POSTROUTING chains).
	      When the "!" argument is used before  the	 interface  name,  the
	      sense  is	 inverted.   If the interface name ends in a "+", then
	      any interface which begins with this name will match.   If  this
	      option is omitted, any interface name will match.

       -c, --set-counters packets bytes
	      This enables the administrator to initialize the packet and byte
	      counters of a rule (during INSERT, APPEND, REPLACE operations).

   OTHER OPTIONS
       The following additional options can be specified:

       -v, --verbose
	      Verbose output.  This option makes the  list  command  show  the
	      interface	 name,	the  rule options (if any), and the TOS masks.
	      The packet and byte counters are also listed,  with  the	suffix
	      'K',  'M' or 'G' for 1000, 1,000,000 and 1,000,000,000 multipli-
	      ers respectively (but see the -x	flag  to  change  this).   For
	      appending,  insertion,  deletion	and  replacement,  this causes
	      detailed information on the rule or rules to be printed. -v  may
	      be specified multiple times to possibly emit more detailed debug
	      statements.

       -n, --numeric
	      Numeric output.  IP addresses and port numbers will  be  printed
	      in  numeric format.  By default, the program will try to display
	      them as host names, network names, or services (whenever	appli-
	      cable).

       -x, --exact
	      Expand  numbers.	Display the exact value of the packet and byte
	      counters, instead of only the rounded number in  K's  (multiples
	      of  1000)	 M's (multiples of 1000K) or G's (multiples of 1000M).
	      This option is only relevant for the -L command.

       --line-numbers
	      When listing rules, add line numbers to the  beginning  of  each
	      rule, corresponding to that rule's position in the chain.

       --modprobe=command
	      When adding or inserting rules into a chain, use command to load
	      any necessary modules (targets, match extensions, etc).

MATCH EXTENSIONS
       iptables can use extended packet matching and target modules.   A  list
       of these is available in the iptables-extensions(8) manpage.

DIAGNOSTICS
       Various error messages are printed to standard error.  The exit code is
       0 for correct functioning.  Errors which appear to be caused by invalid
       or  abused  command  line parameters cause an exit code of 2, and other
       errors cause an exit code of 1.

BUGS
       Bugs?  What's this? ;-)	Well...	 the  counters	are  not  reliable  on
       sparc64.

COMPATIBILITY WITH IPCHAINS
       This  ip6tables is very similar to ipchains by Rusty Russell.  The main
       difference is that the chains INPUT and OUTPUT are only	traversed  for
       packets	coming into the local host and originating from the local host
       respectively.  Hence every packet only passes through one of the	 three
       chains  (except	loopback traffic, which involves both INPUT and OUTPUT
       chains); previously a forwarded packet would pass through all three.

       The other main difference is that -i refers to the input interface;  -o
       refers  to  the	output	interface,  and both are available for packets
       entering the  FORWARD  chain.   There  are  several  other  changes  in
       ip6tables.

SEE ALSO
       ip6tables-save(8),     ip6tables-restore(8),	iptables(8),	 ipta-
       bles-apply(8),	 iptables-extensions(8),    iptables-save(8),	 ipta-
       bles-restore(8), libipq(3).

       The packet-filtering-HOWTO details iptables usage for packet filtering,
       the netfilter-extensions-HOWTO details the extensions that are  not  in
       the  standard distribution, and the netfilter-hacking-HOWTO details the
       netfilter internals.
       See http://www.netfilter.org/.

AUTHORS
       Rusty Russell wrote iptables, in early consultation with Michael	 Neul-
       ing.

       Marc  Boucher  made  Rusty  abandon  ipnatctl by lobbying for a generic
       packet selection framework in iptables, then wrote  the	mangle	table,
       the owner match, the mark stuff, and ran around doing cool stuff every-
       where.

       James Morris wrote the TOS target, and tos match.

       Jozsef Kadlecsik wrote the REJECT target.

       Harald Welte wrote the ULOG and NFQUEUE target,	the  new  libiptc,  as
       well as TTL match+target and libipulog.

       The  Netfilter  Core  Team is: Marc Boucher, Martin Josefsson, Yasuyuki
       Kozakai, Jozsef Kadlecsik, Patrick McHardy, James Morris,  Pablo	 Neira
       Ayuso, Harald Welte and Rusty Russell.

       ip6tables  man  page created by Andras Kis-Szabo, based on iptables man
       page written by Herve Eychenne <rv@wallfire.org>.

VERSION
       This manual page applies to ip6tables @PACKAGE_VERSION@.



iptables 1.4.18							  IP6TABLES(8)