Jan Engelhardt | 8d67190 | 2009-01-08 18:03:45 +0100 | [diff] [blame^] | 1 | .TH IP6TABLES 8 "" "@PACKAGE_AND_VERSION@" "@PACKAGE_AND_VERSION@" |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 2 | .\" |
| 3 | .\" Man page written by Andras Kis-Szabo <kisza@sch.bme.hu> |
| 4 | .\" It is based on iptables man page. |
| 5 | .\" |
| 6 | .\" iptables page by Herve Eychenne <rv@wallfire.org> |
| 7 | .\" It is based on ipchains man page. |
| 8 | .\" |
| 9 | .\" ipchains page by Paul ``Rusty'' Russell March 1997 |
| 10 | .\" Based on the original ipfwadm man page by Jos Vos <jos@xos.nl> |
| 11 | .\" |
| 12 | .\" This program is free software; you can redistribute it and/or modify |
| 13 | .\" it under the terms of the GNU General Public License as published by |
| 14 | .\" the Free Software Foundation; either version 2 of the License, or |
| 15 | .\" (at your option) any later version. |
| 16 | .\" |
| 17 | .\" This program is distributed in the hope that it will be useful, |
| 18 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 19 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 20 | .\" GNU General Public License for more details. |
| 21 | .\" |
| 22 | .\" You should have received a copy of the GNU General Public License |
| 23 | .\" along with this program; if not, write to the Free Software |
| 24 | .\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| 25 | .\" |
| 26 | .\" |
| 27 | .SH NAME |
| 28 | ip6tables \- IPv6 packet filter administration |
| 29 | .SH SYNOPSIS |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 30 | \fBip6tables\fP [\fB-t\fP \fItable\fP] {\fB-A\fP|\fB-D\fP} \fIchain rule-specification\fP [\fIoptions...\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 31 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 32 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-I\fP [\fIrulenum\fP] \fIrule-specification\fP [\fIoptions...\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 33 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 34 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-R\fP \fIrulenum rule-specification\fP [\fIoptions...\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 35 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 36 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-D\fP \fIchain rulenum\fP [\fIoptions...\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 37 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 38 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-S\fP [\fIchain\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 39 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 40 | \fBip6tables\fP [\fB-t\fP \fItable\fP] {\fB-F\fP|\fB-L\fP|\fB-Z\fP} [\fIchain\fP] [\fIoptions...\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 41 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 42 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-N\fP \fIchain\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 43 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 44 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-X\fP [\fIchain\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 45 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 46 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-P\fP \fIchain target\fP [\fIoptions...\fP] |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 47 | .br |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 48 | \fBip6tables\fP [\fB-t\fP \fItable\fP] \fB-E\fP \fIold-chain-name new-chain-name\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 49 | .SH DESCRIPTION |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 50 | \fBIp6tables\fP is used to set up, maintain, and inspect the |
| 51 | tables of IPv6 packet |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 52 | filter rules in the Linux kernel. Several different tables |
| 53 | may be defined. Each table contains a number of built-in |
| 54 | chains and may also contain user-defined chains. |
| 55 | |
| 56 | Each chain is a list of rules which can match a set of packets. Each |
| 57 | rule specifies what to do with a packet that matches. This is called |
| 58 | a `target', which may be a jump to a user-defined chain in the same |
| 59 | table. |
| 60 | |
| 61 | .SH TARGETS |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 62 | A firewall rule specifies criteria for a packet and a target. If the |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 63 | packet does not match, the next rule in the chain is the examined; if |
| 64 | it does match, then the next rule is specified by the value of the |
| 65 | target, which can be the name of a user-defined chain or one of the |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 66 | special values \fBACCEPT\fP, \fBDROP\fP, \fBQUEUE\fP or \fBRETURN\fP. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 67 | .PP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 68 | \fBACCEPT\fP means to let the packet through. |
| 69 | \fBDROP\fP means to drop the packet on the floor. |
| 70 | \fBQUEUE\fP means to pass the packet to userspace. |
| 71 | (How the packet can be received |
Harald Welte | 7bdfca4 | 2005-07-28 15:24:02 +0000 | [diff] [blame] | 72 | by a userspace process differs by the particular queue handler. 2.4.x |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 73 | and 2.6.x kernels up to 2.6.13 include the \fBip_queue\fP |
| 74 | queue handler. Kernels 2.6.14 and later additionally include the |
| 75 | \fBnfnetlink_queue\fP queue handler. Packets with a target of QUEUE will be |
| 76 | sent to queue number '0' in this case. Please also see the \fBNFQUEUE\fP |
Harald Welte | 7bdfca4 | 2005-07-28 15:24:02 +0000 | [diff] [blame] | 77 | target as described later in this man page.) |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 78 | \fBRETURN\fP means stop traversing this chain and resume at the next |
| 79 | rule in the |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 80 | previous (calling) chain. If the end of a built-in chain is reached |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 81 | or a rule in a built-in chain with target \fBRETURN\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 82 | is matched, the target specified by the chain policy determines the |
| 83 | fate of the packet. |
| 84 | .SH TABLES |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 85 | There are currently three independent tables (which tables are present |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 86 | at any time depends on the kernel configuration options and which |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 87 | modules are present). |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 88 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 89 | \fB-t\fP, \fB--table\fP \fItable\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 90 | This option specifies the packet matching table which the command |
| 91 | should operate on. If the kernel is configured with automatic module |
| 92 | loading, an attempt will be made to load the appropriate module for |
| 93 | that table if it is not already there. |
| 94 | |
| 95 | The tables are as follows: |
| 96 | .RS |
| 97 | .TP .4i |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 98 | \fBfilter\fP: |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 99 | This is the default table (if no -t option is passed). It contains |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 100 | the built-in chains \fBINPUT\fP (for packets destined to local sockets), |
| 101 | \fBFORWARD\fP (for packets being routed through the box), and |
| 102 | \fBOUTPUT\fP (for locally-generated packets). |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 103 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 104 | \fBmangle\fP: |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 105 | This table is used for specialized packet alteration. Until kernel |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 106 | 2.4.17 it had two built-in chains: \fBPREROUTING\fP |
| 107 | (for altering incoming packets before routing) and \fBOUTPUT\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 108 | (for altering locally-generated packets before routing). |
| 109 | Since kernel 2.4.18, three other built-in chains are also supported: |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 110 | \fBINPUT\fP (for packets coming into the box itself), \fBFORWARD\fP |
| 111 | (for altering packets being routed through the box), and \fBPOSTROUTING\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 112 | (for altering packets as they are about to go out). |
Yasuyuki KOZAKAI | 28e5b79 | 2006-01-30 08:50:09 +0000 | [diff] [blame] | 113 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 114 | \fBraw\fP: |
Yasuyuki KOZAKAI | 28e5b79 | 2006-01-30 08:50:09 +0000 | [diff] [blame] | 115 | This table is used mainly for configuring exemptions from connection |
| 116 | tracking in combination with the NOTRACK target. It registers at the netfilter |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 117 | hooks with higher priority and is thus called before ip_conntrack, or any other |
| 118 | IP tables. It provides the following built-in chains: \fBPREROUTING\fP |
| 119 | (for packets arriving via any network interface) \fBOUTPUT\fP |
Yasuyuki KOZAKAI | 28e5b79 | 2006-01-30 08:50:09 +0000 | [diff] [blame] | 120 | (for packets generated by local processes) |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 121 | .RE |
| 122 | .SH OPTIONS |
| 123 | The options that are recognized by |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 124 | \fBip6tables\fP can be divided into several different groups. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 125 | .SS COMMANDS |
| 126 | These options specify the specific action to perform. Only one of them |
| 127 | can be specified on the command line unless otherwise specified |
| 128 | below. For all the long versions of the command and option names, you |
| 129 | need to use only enough letters to ensure that |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 130 | \fBip6tables\fP can differentiate it from all other options. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 131 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 132 | \fB-A\fP, \fB--append\fP \fIchain rule-specification\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 133 | Append one or more rules to the end of the selected chain. |
| 134 | When the source and/or destination names resolve to more than one |
| 135 | address, a rule will be added for each possible address combination. |
| 136 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 137 | \fB-D\fP, \fB--delete\fP \fIchain rule-specification\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 138 | .ns |
| 139 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 140 | \fB-D\fP, \fB--delete\fP \fIchain rulenum\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 141 | Delete one or more rules from the selected chain. There are two |
| 142 | versions of this command: the rule can be specified as a number in the |
| 143 | chain (starting at 1 for the first rule) or a rule to match. |
| 144 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 145 | \fB-I\fP, \fB--insert\fP \fIchain\fP [\fIrulenum\fP] \fIrule-specification\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 146 | Insert one or more rules in the selected chain as the given rule |
| 147 | number. So, if the rule number is 1, the rule or rules are inserted |
| 148 | at the head of the chain. This is also the default if no rule number |
| 149 | is specified. |
| 150 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 151 | \fB-R\fP, \fB--replace\fP \fIchain rulenum rule-specification\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 152 | Replace a rule in the selected chain. If the source and/or |
| 153 | destination names resolve to multiple addresses, the command will |
| 154 | fail. Rules are numbered starting at 1. |
| 155 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 156 | \fB-L\fP, \fB--list\fP [\fIchain\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 157 | List all rules in the selected chain. If no chain is selected, all |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 158 | chains are listed. Like every other ip6tables command, it applies to the |
Jan Engelhardt | 9c6ff6b | 2008-09-08 15:42:41 +0200 | [diff] [blame] | 159 | specified table (filter is the default). |
| 160 | .IP "" |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 161 | Please note that it is often used with the \fB-n\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 162 | option, in order to avoid long reverse DNS lookups. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 163 | It is legal to specify the \fB-Z\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 164 | (zero) option as well, in which case the chain(s) will be atomically |
| 165 | listed and zeroed. The exact output is affected by the other |
| 166 | arguments given. The exact rules are suppressed until you use |
| 167 | .nf |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 168 | ip6tables -L -v |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 169 | .fi |
| 170 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 171 | \fB-S\fP, \fB--list-rules\fP [\fIchain\fP] |
Henrik Nordstrom | 96296cf | 2008-05-13 13:08:26 +0200 | [diff] [blame] | 172 | Print all rules in the selected chain. If no chain is selected, all |
Jan Engelhardt | d9842a6 | 2008-07-30 12:49:47 +0200 | [diff] [blame] | 173 | chains are printed like ip6tables-save. Like every other ip6tables command, |
Henrik Nordstrom | 96296cf | 2008-05-13 13:08:26 +0200 | [diff] [blame] | 174 | it applies to the specified table (filter is the default). |
| 175 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 176 | \fB-F\fP, \fB--flush\fP [\fIchain\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 177 | Flush the selected chain (all the chains in the table if none is given). |
| 178 | This is equivalent to deleting all the rules one by one. |
| 179 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 180 | \fB-Z\fP, \fB--zero\fP [\fIchain\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 181 | Zero the packet and byte counters in all chains. It is legal to |
| 182 | specify the |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 183 | \fB-L\fP, \fB--list\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 184 | (list) option as well, to see the counters immediately before they are |
| 185 | cleared. (See above.) |
| 186 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 187 | \fB-N\fP, \fB--new-chain\fP \fIchain\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 188 | Create a new user-defined chain by the given name. There must be no |
| 189 | target of that name already. |
| 190 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 191 | \fB-X\fP, \fB--delete-chain\fP [\fIchain\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 192 | Delete the optional user-defined chain specified. There must be no references |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 193 | to the chain. If there are, you must delete or replace the referring rules |
| 194 | before the chain can be deleted. The chain must be empty, i.e. not contain |
| 195 | any rules. If no argument is given, it will attempt to delete every |
| 196 | non-builtin chain in the table. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 197 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 198 | \fB-P\fP, \fB--policy\fP \fIchain target\fP |
| 199 | Set the policy for the chain to the given target. See the section \fBTARGETS\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 200 | for the legal targets. Only built-in (non-user-defined) chains can have |
| 201 | policies, and neither built-in nor user-defined chains can be policy |
| 202 | targets. |
| 203 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 204 | \fB-E\fP, \fB--rename-chain\fP \fIold-chain new-chain\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 205 | Rename the user specified chain to the user supplied name. This is |
| 206 | cosmetic, and has no effect on the structure of the table. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 207 | .BI "-A, --append " "chain rule-specification" |
| 208 | Append one or more rules to the end of the selected chain. |
| 209 | When the source and/or destination names resolve to more than one |
| 210 | address, a rule will be added for each possible address combination. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 211 | .TP |
| 212 | .B -h |
| 213 | Help. |
| 214 | Give a (currently very brief) description of the command syntax. |
| 215 | .SS PARAMETERS |
| 216 | The following parameters make up a rule specification (as used in the |
| 217 | add, delete, insert, replace and append commands). |
| 218 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 219 | [\fB!\fP] \fB-p\fP, \fB--protocol\fP \fIprotocol\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 220 | The protocol of the rule or of the packet to check. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 221 | The specified protocol can be one of \fBtcp\fP, \fBudp\fP, \fBudplite\fP, |
| 222 | \fBicmpv6\fP, \fBesp\fP, \fBmh\fP or \fBall\fP, |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 223 | or it can be a numeric value, representing one of these protocols or a |
Yasuyuki KOZAKAI | 28e5b79 | 2006-01-30 08:50:09 +0000 | [diff] [blame] | 224 | different one. A protocol name from /etc/protocols is also allowed. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 225 | But IPv6 extension headers except \fBesp\fP are not allowed. |
| 226 | \fBesp\fP and \fBipv6-nonext\fP |
Yasuyuki KOZAKAI | 28e5b79 | 2006-01-30 08:50:09 +0000 | [diff] [blame] | 227 | can be used with Kernel version 2.6.11 or later. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 228 | A "!" argument before the protocol inverts the |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 229 | test. The number zero is equivalent to \fBall\fP. |
| 230 | Protocol \fBall\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 231 | will match with all protocols and is taken as default when this |
| 232 | option is omitted. |
| 233 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 234 | [\fB!\fP] \fB-s\fP, \fB--source\fP \fIaddress\fP[\fB/\fP\fImask\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 235 | Source specification. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 236 | \fIAddress\fP can be either a hostname (please note that specifying |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 237 | any name to be resolved with a remote query such as DNS is a really bad idea), |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 238 | a network IPv6 address (with \fB/\fP\fImask\fP), or a plain IPv6 address. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 239 | (the network name isn't supported now). |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 240 | The \fImask\fP is a plain number, |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 241 | specifying the number of 1's at the left side of the network mask. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 242 | A "!" argument before the address specification inverts the sense of |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 243 | the address. The flag \fB--src\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 244 | is an alias for this option. |
| 245 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 246 | [\fB!\fP] \fB-d\fP, \fB--destination\fP \fIaddress\fP[\fB/\fP\fImask\fP] |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 247 | Destination specification. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 248 | See the description of the \fB-s\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 249 | (source) flag for a detailed description of the syntax. The flag |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 250 | \fB--dst\fP is an alias for this option. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 251 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 252 | \fB-j\fP, \fB--jump\fP \fItarget\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 253 | This specifies the target of the rule; i.e., what to do if the packet |
| 254 | matches it. The target can be a user-defined chain (other than the |
| 255 | one this rule is in), one of the special builtin targets which decide |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 256 | the fate of the packet immediately, or an extension (see \fBEXTENSIONS\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 257 | below). If this |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 258 | option is omitted in a rule (and \fB-g\fP |
Thomas Jacob | eaf831e | 2008-06-23 11:35:29 +0200 | [diff] [blame] | 259 | is not used), then matching the rule will have no |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 260 | effect on the packet's fate, but the counters on the rule will be |
| 261 | incremented. |
| 262 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 263 | \fB-g\fP, \fB--goto\fP \fIchain\fP |
Thomas Jacob | eaf831e | 2008-06-23 11:35:29 +0200 | [diff] [blame] | 264 | This specifies that the processing should continue in a user |
| 265 | specified chain. Unlike the --jump option return will not continue |
| 266 | processing in this chain but instead in the chain that called us via |
| 267 | --jump. |
| 268 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 269 | [\fB!\fP] \fB-i\fP, \fB--in-interface\fP \fIname\fP |
| 270 | Name of an interface via which a packet was received (only for |
| 271 | packets entering the \fBINPUT\fP, \fBFORWARD\fP and \fBPREROUTING\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 272 | chains). When the "!" argument is used before the interface name, the |
| 273 | sense is inverted. If the interface name ends in a "+", then any |
| 274 | interface which begins with this name will match. If this option is |
| 275 | omitted, any interface name will match. |
| 276 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 277 | [\fB!\fP] \fB-o\fP, \fB--out-interface\fP \fIname\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 278 | Name of an interface via which a packet is going to be sent (for packets |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 279 | entering the \fBFORWARD\fP, \fBOUTPUT\fP and \fBPOSTROUTING\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 280 | chains). When the "!" argument is used before the interface name, the |
| 281 | sense is inverted. If the interface name ends in a "+", then any |
| 282 | interface which begins with this name will match. If this option is |
| 283 | omitted, any interface name will match. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 284 | .\" Currently not supported (header-based) |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 285 | .\" .TP |
| 286 | .\" [\fB!\fP] \fB-f\fP, \fB--fragment\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 287 | .\" This means that the rule only refers to second and further fragments |
| 288 | .\" of fragmented packets. Since there is no way to tell the source or |
| 289 | .\" destination ports of such a packet (or ICMP type), such a packet will |
| 290 | .\" not match any rules which specify them. When the "!" argument |
| 291 | .\" precedes the "-f" flag, the rule will only match head fragments, or |
| 292 | .\" unfragmented packets. |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 293 | .TP |
| 294 | \fB-c\fP, \fB--set-counters\fP \fIpackets bytes\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 295 | This enables the administrator to initialize the packet and byte |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 296 | counters of a rule (during \fBINSERT\fP, \fBAPPEND\fP, \fBREPLACE\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 297 | operations). |
| 298 | .SS "OTHER OPTIONS" |
| 299 | The following additional options can be specified: |
| 300 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 301 | \fB-v\fP, \fB--verbose\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 302 | Verbose output. This option makes the list command show the interface |
| 303 | name, the rule options (if any), and the TOS masks. The packet and |
| 304 | byte counters are also listed, with the suffix 'K', 'M' or 'G' for |
| 305 | 1000, 1,000,000 and 1,000,000,000 multipliers respectively (but see |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 306 | the \fB-x\fP flag to change this). |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 307 | For appending, insertion, deletion and replacement, this causes |
| 308 | detailed information on the rule or rules to be printed. |
| 309 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 310 | \fB-n\fP, \fB--numeric\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 311 | Numeric output. |
| 312 | IP addresses and port numbers will be printed in numeric format. |
| 313 | By default, the program will try to display them as host names, |
| 314 | network names, or services (whenever applicable). |
| 315 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 316 | \fB-x\fP, \fB--exact\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 317 | Expand numbers. |
| 318 | Display the exact value of the packet and byte counters, |
| 319 | instead of only the rounded number in K's (multiples of 1000) |
| 320 | M's (multiples of 1000K) or G's (multiples of 1000M). This option is |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 321 | only relevant for the \fB-L\fP command. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 322 | .TP |
| 323 | .B "--line-numbers" |
| 324 | When listing rules, add line numbers to the beginning of each rule, |
| 325 | corresponding to that rule's position in the chain. |
| 326 | .TP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 327 | \fB--modprobe=\fP\fIcommand\fP |
| 328 | When adding or inserting rules into a chain, use \fIcommand\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 329 | to load any necessary modules (targets, match extensions, etc). |
| 330 | .SH MATCH EXTENSIONS |
| 331 | ip6tables can use extended packet matching modules. These are loaded |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 332 | in two ways: implicitly, when \fB-p\fP or \fB--protocol\fP |
| 333 | is specified, or with the \fB-m\fP or \fB--match\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 334 | options, followed by the matching module name; after these, various |
| 335 | extra command line options become available, depending on the specific |
| 336 | module. You can specify multiple extended match modules in one line, |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 337 | and you can use the \fB-h\fP or \fB--help\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 338 | options after the module has been specified to receive help specific |
| 339 | to that module. |
| 340 | |
| 341 | The following are included in the base package, and most of these can |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 342 | be preceded by a "\fB!\fP" to invert the sense of the match. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 343 | .\" @MATCH@ |
| 344 | .SH TARGET EXTENSIONS |
| 345 | ip6tables can use extended target modules: the following are included |
| 346 | in the standard distribution. |
| 347 | .\" @TARGET@ |
| 348 | .SH DIAGNOSTICS |
| 349 | Various error messages are printed to standard error. The exit code |
| 350 | is 0 for correct functioning. Errors which appear to be caused by |
| 351 | invalid or abused command line parameters cause an exit code of 2, and |
| 352 | other errors cause an exit code of 1. |
| 353 | .SH BUGS |
| 354 | Bugs? What's this? ;-) |
| 355 | Well... the counters are not reliable on sparc64. |
| 356 | .SH COMPATIBILITY WITH IPCHAINS |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 357 | This \fBip6tables\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 358 | is very similar to ipchains by Rusty Russell. The main difference is |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 359 | that the chains \fBINPUT\fP and \fBOUTPUT\fP |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 360 | are only traversed for packets coming into the local host and |
| 361 | originating from the local host respectively. Hence every packet only |
| 362 | passes through one of the three chains (except loopback traffic, which |
| 363 | involves both INPUT and OUTPUT chains); previously a forwarded packet |
| 364 | would pass through all three. |
| 365 | .PP |
Jan Engelhardt | 55dffef | 2008-07-03 20:27:50 +0200 | [diff] [blame] | 366 | The other main difference is that \fB-i\fP refers to the input interface; |
| 367 | \fB-o\fP refers to the output interface, and both are available for packets |
| 368 | entering the \fBFORWARD\fP chain. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 369 | There are several other changes in ip6tables. |
| 370 | .SH SEE ALSO |
| 371 | .BR ip6tables-save (8), |
| 372 | .BR ip6tables-restore(8), |
| 373 | .BR iptables (8), |
| 374 | .BR iptables-save (8), |
Harald Welte | 7bdfca4 | 2005-07-28 15:24:02 +0000 | [diff] [blame] | 375 | .BR iptables-restore (8), |
| 376 | .BR libipq (3). |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 377 | .P |
| 378 | The packet-filtering-HOWTO details iptables usage for |
Jan Engelhardt | 9c6ff6b | 2008-09-08 15:42:41 +0200 | [diff] [blame] | 379 | packet filtering, |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 380 | the netfilter-extensions-HOWTO details the extensions that are |
| 381 | not in the standard distribution, |
| 382 | and the netfilter-hacking-HOWTO details the netfilter internals. |
| 383 | .br |
| 384 | See |
| 385 | .BR "http://www.netfilter.org/" . |
| 386 | .SH AUTHORS |
| 387 | Rusty Russell wrote iptables, in early consultation with Michael |
| 388 | Neuling. |
| 389 | .PP |
| 390 | Marc Boucher made Rusty abandon ipnatctl by lobbying for a generic packet |
| 391 | selection framework in iptables, then wrote the mangle table, the owner match, |
| 392 | the mark stuff, and ran around doing cool stuff everywhere. |
| 393 | .PP |
| 394 | James Morris wrote the TOS target, and tos match. |
| 395 | .PP |
| 396 | Jozsef Kadlecsik wrote the REJECT target. |
| 397 | .PP |
Jan Engelhardt | 6cf172e | 2008-03-10 17:48:59 +0100 | [diff] [blame] | 398 | Harald Welte wrote the ULOG and NFQUEUE target, the new libiptc, as well as TTL match+target and libipulog. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 399 | .PP |
Patrick McHardy | 110a89a | 2007-01-28 01:24:55 +0000 | [diff] [blame] | 400 | The Netfilter Core Team is: Marc Boucher, Martin Josefsson, Yasuyuki Kozakai, |
Yasuyuki KOZAKAI | e605d76 | 2007-02-15 06:41:58 +0000 | [diff] [blame] | 401 | Jozsef Kadlecsik, Patrick McHardy, James Morris, Pablo Neira Ayuso, |
| 402 | Harald Welte and Rusty Russell. |
Henrik Nordstrom | c279413 | 2004-01-22 15:04:24 +0000 | [diff] [blame] | 403 | .PP |
| 404 | ip6tables man page created by Andras Kis-Szabo, based on |
| 405 | iptables man page written by Herve Eychenne <rv@wallfire.org>. |
| 406 | .\" .. and did I mention that we are incredibly cool people? |
| 407 | .\" .. sexy, too .. |
| 408 | .\" .. witty, charming, powerful .. |
| 409 | .\" .. and most of all, modest .. |