blob: cf336d670f8be2a887b90468bb6dbaea012cee20 [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
Subash Abhinov Kasiviswanathan5769be32017-04-18 15:22:01 -0600138config IP6_NF_IPTABLES_128
139 tristate "128 bit arithmetic for iptables matching"
140 depends on IP6_NF_IPTABLES
141 help
142 This enables 128 bit matching in ip6tables to help optimize cases
143 where there is no match required. ip6tables matching for ipv6 always
144 has a mask if an address is specified for match. Adding a check for
145 mask prior to that helps to improve performance as it avoids the
146 masked comparison.
147
148 Note that this feature depends on the architecture. If unsure, say N.
149
Linus Torvalds1da177e2005-04-16 15:20:36 -0700150# The simple matches.
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200151config IP6_NF_MATCH_AH
152 tristate '"ah" match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800153 depends on NETFILTER_ADVANCED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700154 help
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200155 This module allows one to match AH packets.
156
157 To compile it as a module, choose M here. If unsure, say N.
158
159config IP6_NF_MATCH_EUI64
160 tristate '"eui64" address check'
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200161 depends on NETFILTER_ADVANCED
162 help
163 This module performs checking on the IPv6 source address
164 Compares the last 64 bits with the EUI64 (delivered
165 from the MAC address) address
166
167 To compile it as a module, choose M here. If unsure, say N.
168
169config IP6_NF_MATCH_FRAG
170 tristate '"frag" Fragmentation header match support'
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200171 depends on NETFILTER_ADVANCED
172 help
173 frag matching allows you to match packets based on the fragmentation
Linus Torvalds1da177e2005-04-16 15:20:36 -0700174 header of the packet.
175
176 To compile it as a module, choose M here. If unsure, say N.
177
178config IP6_NF_MATCH_OPTS
Jan Engelhardt77d73582008-10-08 11:35:17 +0200179 tristate '"hbh" hop-by-hop and "dst" opts header match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800180 depends on NETFILTER_ADVANCED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700181 help
182 This allows one to match packets based on the hop-by-hop
183 and destination options headers of a packet.
184
185 To compile it as a module, choose M here. If unsure, say N.
186
Jan Engelhardt43233622009-02-19 11:16:03 +0100187config IP6_NF_MATCH_HL
188 tristate '"hl" hoplimit match support'
189 depends on NETFILTER_ADVANCED
190 select NETFILTER_XT_MATCH_HL
191 ---help---
192 This is a backwards-compat option for the user's convenience
193 (e.g. when running oldconfig). It selects
Jan Engelhardt8dd1d042009-03-24 13:35:27 -0700194 CONFIG_NETFILTER_XT_MATCH_HL.
Jan Engelhardt43233622009-02-19 11:16:03 +0100195
Linus Torvalds1da177e2005-04-16 15:20:36 -0700196config IP6_NF_MATCH_IPV6HEADER
Jan Engelhardt4c377992007-12-04 23:31:59 -0800197 tristate '"ipv6header" IPv6 Extension Headers Match'
Linus Torvalds44c45eb2008-01-31 00:26:10 +1100198 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700199 help
200 This module allows one to match packets based upon
201 the ipv6 extension headers.
202
203 To compile it as a module, choose M here. If unsure, say N.
204
Masahide NAKAMURAa0ca2152007-02-07 15:12:57 -0800205config IP6_NF_MATCH_MH
Jan Engelhardt4c377992007-12-04 23:31:59 -0800206 tristate '"mh" match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800207 depends on NETFILTER_ADVANCED
Masahide NAKAMURAa0ca2152007-02-07 15:12:57 -0800208 help
209 This module allows one to match MH packets.
210
211 To compile it as a module, choose M here. If unsure, say N.
212
Florian Westphale26f9a42011-08-19 13:52:40 +0200213config IP6_NF_MATCH_RPFILTER
214 tristate '"rpfilter" reverse path filter match support'
Pablo Neira Ayusof09becc2015-06-12 13:58:52 +0200215 depends on NETFILTER_ADVANCED
216 depends on IP6_NF_MANGLE || IP6_NF_RAW
Florian Westphale26f9a42011-08-19 13:52:40 +0200217 ---help---
218 This option allows you to match packets whose replies would
219 go out via the interface the packet came in.
220
221 To compile it as a module, choose M here. If unsure, say N.
222 The module will be called ip6t_rpfilter.
223
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200224config IP6_NF_MATCH_RT
225 tristate '"rt" Routing header match support'
Patrick McHardy33b8e772007-12-17 22:47:05 -0800226 depends on NETFILTER_ADVANCED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700227 help
Jan Engelhardtaba0d342008-10-08 11:35:17 +0200228 rt matching allows you to match packets based on the routing
229 header of the packet.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700230
231 To compile it as a module, choose M here. If unsure, say N.
232
Linus Torvalds1da177e2005-04-16 15:20:36 -0700233# The targets
Jan Engelhardt43233622009-02-19 11:16:03 +0100234config IP6_NF_TARGET_HL
235 tristate '"HL" hoplimit target support'
Randy Dunlap76b67172010-10-18 11:13:30 +0200236 depends on NETFILTER_ADVANCED && IP6_NF_MANGLE
Jan Engelhardt43233622009-02-19 11:16:03 +0100237 select NETFILTER_XT_TARGET_HL
238 ---help---
Randy Dunlap76b67172010-10-18 11:13:30 +0200239 This is a backwards-compatible option for the user's convenience
Jan Engelhardt43233622009-02-19 11:16:03 +0100240 (e.g. when running oldconfig). It selects
Jan Engelhardt8dd1d042009-03-24 13:35:27 -0700241 CONFIG_NETFILTER_XT_TARGET_HL.
Jan Engelhardt43233622009-02-19 11:16:03 +0100242
Linus Torvalds1da177e2005-04-16 15:20:36 -0700243config IP6_NF_FILTER
244 tristate "Packet filtering"
Patrick McHardy33b8e772007-12-17 22:47:05 -0800245 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700246 help
247 Packet filtering defines a table `filter', which has a series of
248 rules for simple packet filtering at local input, forwarding and
249 local output. See the man page for iptables(8).
250
251 To compile it as a module, choose M here. If unsure, say N.
252
Patrick McHardy764d8a92005-08-21 23:31:06 -0700253config IP6_NF_TARGET_REJECT
254 tristate "REJECT target support"
255 depends on IP6_NF_FILTER
Pablo Neira Ayusoc8d7b982014-09-26 14:35:15 +0200256 select NF_REJECT_IPV6
Patrick McHardy33b8e772007-12-17 22:47:05 -0800257 default m if NETFILTER_ADVANCED=n
Patrick McHardy764d8a92005-08-21 23:31:06 -0700258 help
259 The REJECT target allows a filtering rule to specify that an ICMPv6
260 error should be issued in response to an incoming packet, rather
261 than silently being dropped.
262
263 To compile it as a module, choose M here. If unsure, say N.
264
Patrick McHardy4ad36222013-08-27 08:50:16 +0200265config IP6_NF_TARGET_SYNPROXY
266 tristate "SYNPROXY target support"
267 depends on NF_CONNTRACK && NETFILTER_ADVANCED
268 select NETFILTER_SYNPROXY
269 select SYN_COOKIES
270 help
271 The SYNPROXY target allows you to intercept TCP connections and
272 establish them using syncookies before they are passed on to the
273 server. This allows to avoid conntrack and server resource usage
274 during SYN-flood attacks.
275
276 To compile it as a module, choose M here. If unsure, say N.
277
Linus Torvalds1da177e2005-04-16 15:20:36 -0700278config IP6_NF_MANGLE
279 tristate "Packet mangling"
Patrick McHardy33b8e772007-12-17 22:47:05 -0800280 default m if NETFILTER_ADVANCED=n
Linus Torvalds1da177e2005-04-16 15:20:36 -0700281 help
282 This option adds a `mangle' table to iptables: see the man page for
283 iptables(8). This table is used for various packet alterations
284 which can effect how the packet is routed.
285
286 To compile it as a module, choose M here. If unsure, say N.
287
Linus Torvalds1da177e2005-04-16 15:20:36 -0700288config IP6_NF_RAW
289 tristate 'raw table support (required for TRACE)'
Linus Torvalds1da177e2005-04-16 15:20:36 -0700290 help
291 This option adds a `raw' table to ip6tables. This table is the very
292 first in the netfilter framework and hooks in at the PREROUTING
293 and OUTPUT chains.
Patrick McHardy33b8e772007-12-17 22:47:05 -0800294
Linus Torvalds1da177e2005-04-16 15:20:36 -0700295 If you want to compile it as a module, say M here and read
Alexander E. Patrakov39f5fb32007-03-16 18:28:43 +0500296 <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700297
James Morris17e6e592008-06-09 15:58:05 -0700298# security table for MAC policy
299config IP6_NF_SECURITY
300 tristate "Security table"
James Morris17e6e592008-06-09 15:58:05 -0700301 depends on SECURITY
Patrick McHardy70eed752008-07-23 16:42:42 -0700302 depends on NETFILTER_ADVANCED
James Morris17e6e592008-06-09 15:58:05 -0700303 help
304 This option adds a `security' table to iptables, for use
305 with Mandatory Access Control (MAC) policy.
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200306
James Morris17e6e592008-06-09 15:58:05 -0700307 If unsure, say N.
308
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200309config IP6_NF_NAT
310 tristate "ip6tables NAT support"
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200311 depends on NF_CONNTRACK_IPV6
312 depends on NETFILTER_ADVANCED
313 select NF_NAT
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200314 select NF_NAT_IPV6
315 select NETFILTER_XT_NAT
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200316 help
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200317 This enables the `nat' table in ip6tables. This allows masquerading,
318 port forwarding and other forms of full Network Address Port
319 Translation.
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200320
321 To compile it as a module, choose M here. If unsure, say N.
322
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200323if IP6_NF_NAT
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200324
325config IP6_NF_TARGET_MASQUERADE
326 tristate "MASQUERADE target support"
Arturo Borrerobe6b6352014-09-04 14:06:49 +0200327 select NF_NAT_MASQUERADE_IPV6
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200328 help
329 Masquerading is a special case of NAT: all outgoing connections are
330 changed to seem to come from a particular interface's address, and
331 if the interface goes down, those connections are lost. This is
332 only useful for dialup accounts with dynamic IP address (ie. your IP
333 address will be different on next dialup).
334
335 To compile it as a module, choose M here. If unsure, say N.
336
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200337config IP6_NF_TARGET_NPT
338 tristate "NPT (Network Prefix translation) target support"
339 help
340 This option adds the `SNPT' and `DNPT' target, which perform
341 stateless IPv6-to-IPv6 Network Prefix Translation per RFC 6296.
342
343 To compile it as a module, choose M here. If unsure, say N.
344
Pablo Neira Ayuso8993cf82014-08-11 18:21:49 +0200345endif # IP6_NF_NAT
Pablo Neira Ayusob0041d12012-09-18 21:03:39 +0200346
Jan Engelhardtc2df73d2008-10-08 11:35:18 +0200347endif # IP6_NF_IPTABLES
348
Linus Torvalds1da177e2005-04-16 15:20:36 -0700349endmenu
350