blob: e10a04c9cdc7be6bd8fc18f960e7bf51f43cbd81 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# IP netfilter configuration
3#
4
Patrick McHardy8ce22fc2008-01-14 23:31:36 -08005menu "IPv6: Netfilter Configuration"
6 depends on INET && IPV6 && NETFILTER
Linus Torvalds1da177e2005-04-16 15:20:36 -07007
KOVACS Krisztianf6318e52010-10-24 23:38:32 +00008config NF_DEFRAG_IPV6
9 tristate
10 default n
11
Yasuyuki Kozakai9bdf87d2005-11-14 15:26:58 -080012config NF_CONNTRACK_IPV6
Patrick McHardy8ce22fc2008-01-14 23:31:36 -080013 tristate "IPv6 connection tracking support"
14 depends on INET && IPV6 && NF_CONNTRACK
Patrick McHardy33b8e772007-12-17 22:47:05 -080015 default m if NETFILTER_ADVANCED=n
KOVACS Krisztianf6318e52010-10-24 23:38:32 +000016 select NF_DEFRAG_IPV6
Yasuyuki Kozakai9bdf87d2005-11-14 15:26:58 -080017 ---help---
18 Connection tracking keeps a record of what packets have passed
19 through your machine, in order to figure out how they are related
20 into connections.
21
22 This is IPv6 support on Layer 3 independent connection tracking.
23 Layer 3 independent connection tracking is experimental scheme
24 which generalize ip_conntrack to support other layer 3 protocols.
25
26 To compile it as a module, choose M here. If unsure, say N.
27
Pablo Neira Ayusof04e5992015-03-05 14:56:15 +010028if NF_TABLES
29
Patrick McHardy96518512013-10-14 11:00:02 +020030config NF_TABLES_IPV6
Patrick McHardy96518512013-10-14 11:00:02 +020031 tristate "IPv6 nf_tables support"
Pablo Neira Ayusod497c632013-12-30 15:09:18 +010032 help
33 This option enables the IPv6 support for nf_tables.
Patrick McHardy96518512013-10-14 11:00:02 +020034
Pablo Neira Ayusof04e5992015-03-05 14:56:15 +010035if NF_TABLES_IPV6
36
Pablo Neira Ayuso93707612013-10-10 23:21:26 +020037config NFT_CHAIN_ROUTE_IPV6
Pablo Neira Ayuso93707612013-10-10 23:21:26 +020038 tristate "IPv6 nf_tables route chain support"
Pablo Neira Ayusod497c632013-12-30 15:09:18 +010039 help
40 This option enables the "route" chain for IPv6 in nf_tables. This
41 chain type is used to force packet re-routing after mangling header
42 fields such as the source, destination, flowlabel, hop-limit and
43 the packet mark.
Patrick McHardy96518512013-10-14 11:00:02 +020044
Patrick McHardycc4723c2014-02-05 15:03:38 +000045config NFT_REJECT_IPV6
Pablo Neira Ayusoc8d7b982014-09-26 14:35:15 +020046 select NF_REJECT_IPV6
Patrick McHardycc4723c2014-02-05 15:03:38 +000047 default NFT_REJECT
48 tristate
49
Pablo Neira Ayusod877f072015-05-31 18:04:11 +020050config NFT_DUP_IPV6
51 tristate "IPv6 nf_tables packet duplication support"
Pablo Neira Ayusod3340b72015-12-09 22:06:59 +010052 depends on !NF_CONNTRACK || NF_CONNTRACK
Pablo Neira Ayusod877f072015-05-31 18:04:11 +020053 select NF_DUP_IPV6
54 help
55 This module enables IPv6 packet duplication support for nf_tables.
56
Pablo Neira Ayusof04e5992015-03-05 14:56:15 +010057endif # NF_TABLES_IPV6
58endif # NF_TABLES
59
Pablo Neira Ayusobbde9fc2015-05-31 17:54:44 +020060config NF_DUP_IPV6
61 tristate "Netfilter IPv6 packet duplication to alternate destination"
Pablo Neira Ayuso6ece90f2015-09-29 21:10:05 +020062 depends on !NF_CONNTRACK || NF_CONNTRACK
Pablo Neira Ayusobbde9fc2015-05-31 17:54:44 +020063 help
64 This option enables the nf_dup_ipv6 core, which duplicates an IPv6
65 packet to be rerouted to another destination.
66
Pablo Neira Ayusof04e5992015-03-05 14:56:15 +010067config NF_REJECT_IPV6
68 tristate "IPv6 packet rejection"
69 default m if NETFILTER_ADVANCED=n
70
Pablo Neira Ayusoc1878862014-06-28 18:39:01 +020071config NF_LOG_IPV6
72 tristate "IPv6 packet logging"
Pablo Neira41ad82f2014-09-02 14:26:17 +020073 default m if NETFILTER_ADVANCED=n
Pablo Neira Ayusoc1878862014-06-28 18:39:01 +020074 select NF_LOG_COMMON
75
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +020076config NF_NAT_IPV6
77 tristate "IPv6 NAT"
78 depends on NF_CONNTRACK_IPV6
79 depends on NETFILTER_ADVANCED
80 select NF_NAT
81 help
82 The IPv6 NAT option allows masquerading, port forwarding and other
83 forms of full Network Address Port Translation. This can be
84 controlled by iptables or nft.
85
Pablo Neira Ayuso3e8dc212014-09-11 17:42:00 +020086if NF_NAT_IPV6
87
88config NFT_CHAIN_NAT_IPV6
89 depends on NF_TABLES_IPV6
90 tristate "IPv6 nf_tables nat chain support"
91 help
92 This option enables the "nat" chain for IPv6 in nf_tables. This
93 chain type is used to perform Network Address Translation (NAT)
94 packet transformations such as the source, destination address and
95 source and destination ports.
96
Pablo Neira Ayuso0bbe80e2014-09-11 17:51:27 +020097config NF_NAT_MASQUERADE_IPV6
98 tristate "IPv6 masquerade support"
99 help
100 This is the kernel functionality to provide NAT in the masquerade
101 flavour (automatic source address selection) for IPv6.
102
103config NFT_MASQ_IPV6
104 tristate "IPv6 masquerade support for nf_tables"
105 depends on NF_TABLES_IPV6
106 depends on NFT_MASQ
107 select NF_NAT_MASQUERADE_IPV6
108 help
109 This is the expression that provides IPv4 masquerading support for
110 nf_tables.
111
Arturo Borreroe9105f12014-10-17 12:39:09 +0200112config NFT_REDIR_IPV6
113 tristate "IPv6 redirect support for nf_tables"
114 depends on NF_TABLES_IPV6
115 depends on NFT_REDIR
Pablo Neira Ayusob59eaf92014-11-26 12:46:50 +0100116 select NF_NAT_REDIRECT
Arturo Borreroe9105f12014-10-17 12:39:09 +0200117 help
118 This is the expression that provides IPv4 redirect support for
119 nf_tables.
120
Pablo Neira Ayuso3e8dc212014-09-11 17:42:00 +0200121endif # NF_NAT_IPV6
122
Linus Torvalds1da177e2005-04-16 15:20:36 -0700123config IP6_NF_IPTABLES
Patrick McHardy844dc7c2006-10-30 15:12:16 -0800124 tristate "IP6 tables support (required for filtering)"
Patrick McHardy8ce22fc2008-01-14 23:31:36 -0800125 depends on INET && IPV6
Patrick McHardya3c941b2007-02-12 11:15:02 -0800126 select NETFILTER_XTABLES
Patrick McHardy33b8e772007-12-17 22:47:05 -0800127 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128 help
129 ip6tables is a general, extensible packet identification framework.
130 Currently only the packet filtering and packet mangling subsystem
131 for IPv6 use this, but connection tracking is going to follow.
132 Say 'Y' or 'M' here if you want to use either of those.
133
134 To compile it as a module, choose M here. If unsure, say N.
135
Jan Engelhardtc2df73d2008-10-08 11:35:18 +0200136if IP6_NF_IPTABLES
137
Linus Torvalds1da177e2005-04-16 15:20:36 -0700138# The simple matches.
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200139config IP6_NF_MATCH_AH
140 tristate '"ah" match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800141 depends on NETFILTER_ADVANCED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700142 help
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200143 This module allows one to match AH packets.
144
145 To compile it as a module, choose M here. If unsure, say N.
146
147config IP6_NF_MATCH_EUI64
148 tristate '"eui64" address check'
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200149 depends on NETFILTER_ADVANCED
150 help
151 This module performs checking on the IPv6 source address
152 Compares the last 64 bits with the EUI64 (delivered
153 from the MAC address) address
154
155 To compile it as a module, choose M here. If unsure, say N.
156
157config IP6_NF_MATCH_FRAG
158 tristate '"frag" Fragmentation header match support'
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200159 depends on NETFILTER_ADVANCED
160 help
161 frag matching allows you to match packets based on the fragmentation
Linus Torvalds1da177e2005-04-16 15:20:36 -0700162 header of the packet.
163
164 To compile it as a module, choose M here. If unsure, say N.
165
166config IP6_NF_MATCH_OPTS
Jan Engelhardt77d73582008-10-08 11:35:17 +0200167 tristate '"hbh" hop-by-hop and "dst" opts header match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800168 depends on NETFILTER_ADVANCED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700169 help
170 This allows one to match packets based on the hop-by-hop
171 and destination options headers of a packet.
172
173 To compile it as a module, choose M here. If unsure, say N.
174
Jan Engelhardt43233622009-02-19 11:16:03 +0100175config IP6_NF_MATCH_HL
176 tristate '"hl" hoplimit match support'
177 depends on NETFILTER_ADVANCED
178 select NETFILTER_XT_MATCH_HL
179 ---help---
180 This is a backwards-compat option for the user's convenience
181 (e.g. when running oldconfig). It selects
Jan Engelhardt8dd1d042009-03-24 13:35:27 -0700182 CONFIG_NETFILTER_XT_MATCH_HL.
Jan Engelhardt43233622009-02-19 11:16:03 +0100183
Linus Torvalds1da177e2005-04-16 15:20:36 -0700184config IP6_NF_MATCH_IPV6HEADER
Jan Engelhardt4c377992007-12-04 23:31:59 -0800185 tristate '"ipv6header" IPv6 Extension Headers Match'
Linus Torvalds44c45eb2008-01-31 00:26:10 +1100186 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700187 help
188 This module allows one to match packets based upon
189 the ipv6 extension headers.
190
191 To compile it as a module, choose M here. If unsure, say N.
192
Masahide NAKAMURAa0ca2152007-02-07 15:12:57 -0800193config IP6_NF_MATCH_MH
Jan Engelhardt4c377992007-12-04 23:31:59 -0800194 tristate '"mh" match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800195 depends on NETFILTER_ADVANCED
Masahide NAKAMURAa0ca2152007-02-07 15:12:57 -0800196 help
197 This module allows one to match MH packets.
198
199 To compile it as a module, choose M here. If unsure, say N.
200
Florian Westphale26f9a42011-08-19 13:52:40 +0200201config IP6_NF_MATCH_RPFILTER
202 tristate '"rpfilter" reverse path filter match support'
Pablo Neira Ayusof09becc2015-06-12 13:58:52 +0200203 depends on NETFILTER_ADVANCED
204 depends on IP6_NF_MANGLE || IP6_NF_RAW
Florian Westphale26f9a42011-08-19 13:52:40 +0200205 ---help---
206 This option allows you to match packets whose replies would
207 go out via the interface the packet came in.
208
209 To compile it as a module, choose M here. If unsure, say N.
210 The module will be called ip6t_rpfilter.
211
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200212config IP6_NF_MATCH_RT
213 tristate '"rt" Routing header match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800214 depends on NETFILTER_ADVANCED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700215 help
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200216 rt matching allows you to match packets based on the routing
217 header of the packet.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700218
219 To compile it as a module, choose M here. If unsure, say N.
220
Linus Torvalds1da177e2005-04-16 15:20:36 -0700221# The targets
Jan Engelhardt43233622009-02-19 11:16:03 +0100222config IP6_NF_TARGET_HL
223 tristate '"HL" hoplimit target support'
Randy Dunlap76b67172010-10-18 11:13:30 +0200224 depends on NETFILTER_ADVANCED && IP6_NF_MANGLE
Jan Engelhardt43233622009-02-19 11:16:03 +0100225 select NETFILTER_XT_TARGET_HL
226 ---help---
Randy Dunlap76b67172010-10-18 11:13:30 +0200227 This is a backwards-compatible option for the user's convenience
Jan Engelhardt43233622009-02-19 11:16:03 +0100228 (e.g. when running oldconfig). It selects
Jan Engelhardt8dd1d042009-03-24 13:35:27 -0700229 CONFIG_NETFILTER_XT_TARGET_HL.
Jan Engelhardt43233622009-02-19 11:16:03 +0100230
Linus Torvalds1da177e2005-04-16 15:20:36 -0700231config IP6_NF_FILTER
232 tristate "Packet filtering"
Patrick McHardy33b8e772007-12-17 22:47:05 -0800233 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700234 help
235 Packet filtering defines a table `filter', which has a series of
236 rules for simple packet filtering at local input, forwarding and
237 local output. See the man page for iptables(8).
238
239 To compile it as a module, choose M here. If unsure, say N.
240
Patrick McHardy764d8a92005-08-21 23:31:06 -0700241config IP6_NF_TARGET_REJECT
242 tristate "REJECT target support"
243 depends on IP6_NF_FILTER
Pablo Neira Ayusoc8d7b982014-09-26 14:35:15 +0200244 select NF_REJECT_IPV6
Patrick McHardy33b8e772007-12-17 22:47:05 -0800245 default m if NETFILTER_ADVANCED=n
Patrick McHardy764d8a92005-08-21 23:31:06 -0700246 help
247 The REJECT target allows a filtering rule to specify that an ICMPv6
248 error should be issued in response to an incoming packet, rather
249 than silently being dropped.
250
251 To compile it as a module, choose M here. If unsure, say N.
252
Patrick McHardy4ad36222013-08-27 08:50:16 +0200253config IP6_NF_TARGET_SYNPROXY
254 tristate "SYNPROXY target support"
255 depends on NF_CONNTRACK && NETFILTER_ADVANCED
256 select NETFILTER_SYNPROXY
257 select SYN_COOKIES
258 help
259 The SYNPROXY target allows you to intercept TCP connections and
260 establish them using syncookies before they are passed on to the
261 server. This allows to avoid conntrack and server resource usage
262 during SYN-flood attacks.
263
264 To compile it as a module, choose M here. If unsure, say N.
265
Linus Torvalds1da177e2005-04-16 15:20:36 -0700266config IP6_NF_MANGLE
267 tristate "Packet mangling"
Patrick McHardy33b8e772007-12-17 22:47:05 -0800268 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700269 help
270 This option adds a `mangle' table to iptables: see the man page for
271 iptables(8). This table is used for various packet alterations
272 which can effect how the packet is routed.
273
274 To compile it as a module, choose M here. If unsure, say N.
275
Linus Torvalds1da177e2005-04-16 15:20:36 -0700276config IP6_NF_RAW
277 tristate 'raw table support (required for TRACE)'
Linus Torvalds1da177e2005-04-16 15:20:36 -0700278 help
279 This option adds a `raw' table to ip6tables. This table is the very
280 first in the netfilter framework and hooks in at the PREROUTING
281 and OUTPUT chains.
Patrick McHardy33b8e772007-12-17 22:47:05 -0800282
Linus Torvalds1da177e2005-04-16 15:20:36 -0700283 If you want to compile it as a module, say M here and read
Alexander E. Patrakov39f5fb32007-03-16 18:28:43 +0500284 <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700285
James Morris17e6e592008-06-09 15:58:05 -0700286# security table for MAC policy
287config IP6_NF_SECURITY
288 tristate "Security table"
James Morris17e6e592008-06-09 15:58:05 -0700289 depends on SECURITY
Patrick McHardy70eed752008-07-23 16:42:42 -0700290 depends on NETFILTER_ADVANCED
James Morris17e6e592008-06-09 15:58:05 -0700291 help
292 This option adds a `security' table to iptables, for use
293 with Mandatory Access Control (MAC) policy.
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200294
James Morris17e6e592008-06-09 15:58:05 -0700295 If unsure, say N.
296
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200297config IP6_NF_NAT
298 tristate "ip6tables NAT support"
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200299 depends on NF_CONNTRACK_IPV6
300 depends on NETFILTER_ADVANCED
301 select NF_NAT
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200302 select NF_NAT_IPV6
303 select NETFILTER_XT_NAT
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200304 help
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200305 This enables the `nat' table in ip6tables. This allows masquerading,
306 port forwarding and other forms of full Network Address Port
307 Translation.
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200308
309 To compile it as a module, choose M here. If unsure, say N.
310
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200311if IP6_NF_NAT
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200312
313config IP6_NF_TARGET_MASQUERADE
314 tristate "MASQUERADE target support"
Arturo Borrerobe6b6352014-09-04 14:06:49 +0200315 select NF_NAT_MASQUERADE_IPV6
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200316 help
317 Masquerading is a special case of NAT: all outgoing connections are
318 changed to seem to come from a particular interface's address, and
319 if the interface goes down, those connections are lost. This is
320 only useful for dialup accounts with dynamic IP address (ie. your IP
321 address will be different on next dialup).
322
323 To compile it as a module, choose M here. If unsure, say N.
324
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200325config IP6_NF_TARGET_NPT
326 tristate "NPT (Network Prefix translation) target support"
327 help
328 This option adds the `SNPT' and `DNPT' target, which perform
329 stateless IPv6-to-IPv6 Network Prefix Translation per RFC 6296.
330
331 To compile it as a module, choose M here. If unsure, say N.
332
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200333endif # IP6_NF_NAT
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200334
Jan Engelhardtc2df73d2008-10-08 11:35:18 +0200335endif # IP6_NF_IPTABLES
336
Linus Torvalds1da177e2005-04-16 15:20:36 -0700337endmenu
338