GNU Linux-libre 4.14.251-gnu1
[releases.git] / net / ipv6 / netfilter / Kconfig
1 #
2 # IP netfilter configuration
3 #
4
5 menu "IPv6: Netfilter Configuration"
6         depends on INET && IPV6 && NETFILTER
7
8 config NF_DEFRAG_IPV6
9         tristate
10         default n
11
12 config NF_CONNTRACK_IPV6
13         tristate "IPv6 connection tracking support"
14         depends on INET && IPV6 && NF_CONNTRACK
15         default m if NETFILTER_ADVANCED=n
16         select NF_DEFRAG_IPV6
17         ---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
28 config NF_SOCKET_IPV6
29         tristate "IPv6 socket lookup support"
30         help
31           This option enables the IPv6 socket lookup infrastructure. This
32           is used by the ip6tables socket match.
33
34 if NF_TABLES
35
36 config NF_TABLES_IPV6
37         tristate "IPv6 nf_tables support"
38         help
39           This option enables the IPv6 support for nf_tables.
40
41 if NF_TABLES_IPV6
42
43 config NFT_CHAIN_ROUTE_IPV6
44         tristate "IPv6 nf_tables route chain support"
45         help
46           This option enables the "route" chain for IPv6 in nf_tables. This
47           chain type is used to force packet re-routing after mangling header
48           fields such as the source, destination, flowlabel, hop-limit and
49           the packet mark.
50
51 if NF_NAT_IPV6
52
53 config NFT_CHAIN_NAT_IPV6
54         tristate "IPv6 nf_tables nat chain support"
55         help
56           This option enables the "nat" chain for IPv6 in nf_tables. This
57           chain type is used to perform Network Address Translation (NAT)
58           packet transformations such as the source, destination address and
59           source and destination ports.
60
61 config NFT_MASQ_IPV6
62         tristate "IPv6 masquerade support for nf_tables"
63         depends on NFT_MASQ
64         select NF_NAT_MASQUERADE_IPV6
65         help
66           This is the expression that provides IPv4 masquerading support for
67           nf_tables.
68
69 config NFT_REDIR_IPV6
70         tristate "IPv6 redirect support for nf_tables"
71         depends on NFT_REDIR
72         select NF_NAT_REDIRECT
73         help
74           This is the expression that provides IPv4 redirect support for
75           nf_tables.
76
77 endif # NF_NAT_IPV6
78
79 config NFT_REJECT_IPV6
80         select NF_REJECT_IPV6
81         default NFT_REJECT
82         tristate
83
84 config NFT_DUP_IPV6
85         tristate "IPv6 nf_tables packet duplication support"
86         depends on !NF_CONNTRACK || NF_CONNTRACK
87         select NF_DUP_IPV6
88         help
89           This module enables IPv6 packet duplication support for nf_tables.
90
91 config NFT_FIB_IPV6
92         tristate "nf_tables fib / ipv6 route lookup support"
93         select NFT_FIB
94         help
95           This module enables IPv6 FIB lookups, e.g. for reverse path filtering.
96           It also allows query of the FIB for the route type, e.g. local, unicast,
97           multicast or blackhole.
98
99 endif # NF_TABLES_IPV6
100 endif # NF_TABLES
101
102 config NF_DUP_IPV6
103         tristate "Netfilter IPv6 packet duplication to alternate destination"
104         depends on !NF_CONNTRACK || NF_CONNTRACK
105         help
106           This option enables the nf_dup_ipv6 core, which duplicates an IPv6
107           packet to be rerouted to another destination.
108
109 config NF_REJECT_IPV6
110         tristate "IPv6 packet rejection"
111         default m if NETFILTER_ADVANCED=n
112
113 config NF_LOG_IPV6
114         tristate "IPv6 packet logging"
115         default m if NETFILTER_ADVANCED=n
116         select NF_LOG_COMMON
117
118 config NF_NAT_IPV6
119         tristate "IPv6 NAT"
120         depends on NF_CONNTRACK_IPV6
121         depends on NETFILTER_ADVANCED
122         select NF_NAT
123         help
124           The IPv6 NAT option allows masquerading, port forwarding and other
125           forms of full Network Address Port Translation. This can be
126           controlled by iptables or nft.
127
128 if NF_NAT_IPV6
129
130 config NF_NAT_MASQUERADE_IPV6
131         tristate "IPv6 masquerade support"
132         help
133           This is the kernel functionality to provide NAT in the masquerade
134           flavour (automatic source address selection) for IPv6.
135
136 endif # NF_NAT_IPV6
137
138 config IP6_NF_IPTABLES
139         tristate "IP6 tables support (required for filtering)"
140         depends on INET && IPV6
141         select NETFILTER_XTABLES
142         default m if NETFILTER_ADVANCED=n
143         help
144           ip6tables is a general, extensible packet identification framework.
145           Currently only the packet filtering and packet mangling subsystem
146           for IPv6 use this, but connection tracking is going to follow.
147           Say 'Y' or 'M' here if you want to use either of those.
148
149           To compile it as a module, choose M here.  If unsure, say N.
150
151 if IP6_NF_IPTABLES
152
153 # The simple matches.
154 config IP6_NF_MATCH_AH
155         tristate '"ah" match support'
156         depends on NETFILTER_ADVANCED
157         help
158           This module allows one to match AH packets.
159
160           To compile it as a module, choose M here.  If unsure, say N.
161
162 config IP6_NF_MATCH_EUI64
163         tristate '"eui64" address check'
164         depends on NETFILTER_ADVANCED
165         help
166           This module performs checking on the IPv6 source address
167           Compares the last 64 bits with the EUI64 (delivered
168           from the MAC address) address
169
170           To compile it as a module, choose M here.  If unsure, say N.
171
172 config IP6_NF_MATCH_FRAG
173         tristate '"frag" Fragmentation header match support'
174         depends on NETFILTER_ADVANCED
175         help
176           frag matching allows you to match packets based on the fragmentation
177           header of the packet.
178
179           To compile it as a module, choose M here.  If unsure, say N.
180
181 config IP6_NF_MATCH_OPTS
182         tristate '"hbh" hop-by-hop and "dst" opts header match support'
183         depends on NETFILTER_ADVANCED
184         help
185           This allows one to match packets based on the hop-by-hop
186           and destination options headers of a packet.
187
188           To compile it as a module, choose M here.  If unsure, say N.
189
190 config IP6_NF_MATCH_HL
191         tristate '"hl" hoplimit match support'
192         depends on NETFILTER_ADVANCED
193         select NETFILTER_XT_MATCH_HL
194         ---help---
195         This is a backwards-compat option for the user's convenience
196         (e.g. when running oldconfig). It selects
197         CONFIG_NETFILTER_XT_MATCH_HL.
198
199 config IP6_NF_MATCH_IPV6HEADER
200         tristate '"ipv6header" IPv6 Extension Headers Match'
201         default m if NETFILTER_ADVANCED=n
202         help
203           This module allows one to match packets based upon
204           the ipv6 extension headers.
205
206           To compile it as a module, choose M here.  If unsure, say N.
207
208 config IP6_NF_MATCH_MH
209         tristate '"mh" match support'
210         depends on NETFILTER_ADVANCED
211         help
212           This module allows one to match MH packets.
213
214           To compile it as a module, choose M here.  If unsure, say N.
215
216 config IP6_NF_MATCH_RPFILTER
217         tristate '"rpfilter" reverse path filter match support'
218         depends on NETFILTER_ADVANCED
219         depends on IP6_NF_MANGLE || IP6_NF_RAW
220         ---help---
221           This option allows you to match packets whose replies would
222           go out via the interface the packet came in.
223
224           To compile it as a module, choose M here.  If unsure, say N.
225           The module will be called ip6t_rpfilter.
226
227 config IP6_NF_MATCH_RT
228         tristate '"rt" Routing header match support'
229         depends on NETFILTER_ADVANCED
230         help
231           rt matching allows you to match packets based on the routing
232           header of the packet.
233
234           To compile it as a module, choose M here.  If unsure, say N.
235
236 # The targets
237 config IP6_NF_TARGET_HL
238         tristate '"HL" hoplimit target support'
239         depends on NETFILTER_ADVANCED && IP6_NF_MANGLE
240         select NETFILTER_XT_TARGET_HL
241         ---help---
242         This is a backwards-compatible option for the user's convenience
243         (e.g. when running oldconfig). It selects
244         CONFIG_NETFILTER_XT_TARGET_HL.
245
246 config IP6_NF_FILTER
247         tristate "Packet filtering"
248         default m if NETFILTER_ADVANCED=n
249         help
250           Packet filtering defines a table `filter', which has a series of
251           rules for simple packet filtering at local input, forwarding and
252           local output.  See the man page for iptables(8).
253
254           To compile it as a module, choose M here.  If unsure, say N.
255
256 config IP6_NF_TARGET_REJECT
257         tristate "REJECT target support"
258         depends on IP6_NF_FILTER
259         select NF_REJECT_IPV6
260         default m if NETFILTER_ADVANCED=n
261         help
262           The REJECT target allows a filtering rule to specify that an ICMPv6
263           error should be issued in response to an incoming packet, rather
264           than silently being dropped.
265
266           To compile it as a module, choose M here.  If unsure, say N.
267
268 config IP6_NF_TARGET_SYNPROXY
269         tristate "SYNPROXY target support"
270         depends on NF_CONNTRACK && NETFILTER_ADVANCED
271         select NETFILTER_SYNPROXY
272         select SYN_COOKIES
273         help
274           The SYNPROXY target allows you to intercept TCP connections and
275           establish them using syncookies before they are passed on to the
276           server. This allows to avoid conntrack and server resource usage
277           during SYN-flood attacks.
278
279           To compile it as a module, choose M here. If unsure, say N.
280
281 config IP6_NF_MANGLE
282         tristate "Packet mangling"
283         default m if NETFILTER_ADVANCED=n
284         help
285           This option adds a `mangle' table to iptables: see the man page for
286           iptables(8).  This table is used for various packet alterations
287           which can effect how the packet is routed.
288
289           To compile it as a module, choose M here.  If unsure, say N.
290
291 config IP6_NF_RAW
292         tristate  'raw table support (required for TRACE)'
293         help
294           This option adds a `raw' table to ip6tables. This table is the very
295           first in the netfilter framework and hooks in at the PREROUTING
296           and OUTPUT chains.
297
298           If you want to compile it as a module, say M here and read
299           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
300
301 # security table for MAC policy
302 config IP6_NF_SECURITY
303        tristate "Security table"
304        depends on SECURITY
305        depends on NETFILTER_ADVANCED
306        help
307          This option adds a `security' table to iptables, for use
308          with Mandatory Access Control (MAC) policy.
309
310          If unsure, say N.
311
312 config IP6_NF_NAT
313         tristate "ip6tables NAT support"
314         depends on NF_CONNTRACK_IPV6
315         depends on NETFILTER_ADVANCED
316         select NF_NAT
317         select NF_NAT_IPV6
318         select NETFILTER_XT_NAT
319         help
320           This enables the `nat' table in ip6tables. This allows masquerading,
321           port forwarding and other forms of full Network Address Port
322           Translation.
323
324           To compile it as a module, choose M here.  If unsure, say N.
325
326 if IP6_NF_NAT
327
328 config IP6_NF_TARGET_MASQUERADE
329         tristate "MASQUERADE target support"
330         select NF_NAT_MASQUERADE_IPV6
331         help
332           Masquerading is a special case of NAT: all outgoing connections are
333           changed to seem to come from a particular interface's address, and
334           if the interface goes down, those connections are lost.  This is
335           only useful for dialup accounts with dynamic IP address (ie. your IP
336           address will be different on next dialup).
337
338           To compile it as a module, choose M here.  If unsure, say N.
339
340 config IP6_NF_TARGET_NPT
341         tristate "NPT (Network Prefix translation) target support"
342         help
343           This option adds the `SNPT' and `DNPT' target, which perform
344           stateless IPv6-to-IPv6 Network Prefix Translation per RFC 6296.
345
346           To compile it as a module, choose M here.  If unsure, say N.
347
348 endif # IP6_NF_NAT
349
350 endif # IP6_NF_IPTABLES
351
352 endmenu
353