Merge tag 'asoc-fix-v4.2-rc3' into asoc-fix-topology
[firefly-linux-kernel-4.4.55.git] / net / ipv4 / netfilter / Kconfig
1 #
2 # IP netfilter configuration
3 #
4
5 menu "IP: Netfilter Configuration"
6         depends on INET && NETFILTER
7
8 config NF_DEFRAG_IPV4
9         tristate
10         default n
11
12 config NF_CONNTRACK_IPV4
13         tristate "IPv4 connection tracking support (required for NAT)"
14         depends on NF_CONNTRACK
15         default m if NETFILTER_ADVANCED=n
16         select NF_DEFRAG_IPV4
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 IPv4 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_CONNTRACK_PROC_COMPAT
29         bool "proc/sysctl compatibility with old connection tracking"
30         depends on NF_CONNTRACK_PROCFS && NF_CONNTRACK_IPV4
31         default y
32         help
33           This option enables /proc and sysctl compatibility with the old
34           layer 3 dependent connection tracking. This is needed to keep
35           old programs that have not been adapted to the new names working.
36
37           If unsure, say Y.
38
39 if NF_TABLES
40
41 config NF_TABLES_IPV4
42         tristate "IPv4 nf_tables support"
43         help
44           This option enables the IPv4 support for nf_tables.
45
46 if NF_TABLES_IPV4
47
48 config NFT_CHAIN_ROUTE_IPV4
49         tristate "IPv4 nf_tables route chain support"
50         help
51           This option enables the "route" chain for IPv4 in nf_tables. This
52           chain type is used to force packet re-routing after mangling header
53           fields such as the source, destination, type of service and
54           the packet mark.
55
56 config NFT_REJECT_IPV4
57         select NF_REJECT_IPV4
58         default NFT_REJECT
59         tristate
60
61 endif # NF_TABLES_IPV4
62
63 config NF_TABLES_ARP
64         tristate "ARP nf_tables support"
65         help
66           This option enables the ARP support for nf_tables.
67
68 endif # NF_TABLES
69
70 config NF_LOG_ARP
71         tristate "ARP packet logging"
72         default m if NETFILTER_ADVANCED=n
73         select NF_LOG_COMMON
74
75 config NF_LOG_IPV4
76         tristate "IPv4 packet logging"
77         default m if NETFILTER_ADVANCED=n
78         select NF_LOG_COMMON
79
80 config NF_REJECT_IPV4
81         tristate "IPv4 packet rejection"
82         default m if NETFILTER_ADVANCED=n
83
84 config NF_NAT_IPV4
85         tristate "IPv4 NAT"
86         depends on NF_CONNTRACK_IPV4
87         default m if NETFILTER_ADVANCED=n
88         select NF_NAT
89         help
90           The IPv4 NAT option allows masquerading, port forwarding and other
91           forms of full Network Address Port Translation. This can be
92           controlled by iptables or nft.
93
94 if NF_NAT_IPV4
95
96 config NFT_CHAIN_NAT_IPV4
97         depends on NF_TABLES_IPV4
98         tristate "IPv4 nf_tables nat chain support"
99         help
100           This option enables the "nat" chain for IPv4 in nf_tables. This
101           chain type is used to perform Network Address Translation (NAT)
102           packet transformations such as the source, destination address and
103           source and destination ports.
104
105 config NF_NAT_MASQUERADE_IPV4
106         tristate "IPv4 masquerade support"
107         help
108           This is the kernel functionality to provide NAT in the masquerade
109           flavour (automatic source address selection).
110
111 config NFT_MASQ_IPV4
112         tristate "IPv4 masquerading support for nf_tables"
113         depends on NF_TABLES_IPV4
114         depends on NFT_MASQ
115         select NF_NAT_MASQUERADE_IPV4
116         help
117           This is the expression that provides IPv4 masquerading support for
118           nf_tables.
119
120 config NFT_REDIR_IPV4
121         tristate "IPv4 redirect support for nf_tables"
122         depends on NF_TABLES_IPV4
123         depends on NFT_REDIR
124         select NF_NAT_REDIRECT
125         help
126           This is the expression that provides IPv4 redirect support for
127           nf_tables.
128
129 config NF_NAT_SNMP_BASIC
130         tristate "Basic SNMP-ALG support"
131         depends on NF_CONNTRACK_SNMP
132         depends on NETFILTER_ADVANCED
133         default NF_NAT && NF_CONNTRACK_SNMP
134         ---help---
135
136           This module implements an Application Layer Gateway (ALG) for
137           SNMP payloads.  In conjunction with NAT, it allows a network
138           management system to access multiple private networks with
139           conflicting addresses.  It works by modifying IP addresses
140           inside SNMP payloads to match IP-layer NAT mapping.
141
142           This is the "basic" form of SNMP-ALG, as described in RFC 2962
143
144           To compile it as a module, choose M here.  If unsure, say N.
145
146 config NF_NAT_PROTO_GRE
147         tristate
148         depends on NF_CT_PROTO_GRE
149
150 config NF_NAT_PPTP
151         tristate
152         depends on NF_CONNTRACK
153         default NF_CONNTRACK_PPTP
154         select NF_NAT_PROTO_GRE
155
156 config NF_NAT_H323
157         tristate
158         depends on NF_CONNTRACK
159         default NF_CONNTRACK_H323
160
161 endif # NF_NAT_IPV4
162
163 config IP_NF_IPTABLES
164         tristate "IP tables support (required for filtering/masq/NAT)"
165         default m if NETFILTER_ADVANCED=n
166         select NETFILTER_XTABLES
167         help
168           iptables is a general, extensible packet identification framework.
169           The packet filtering and full NAT (masquerading, port forwarding,
170           etc) subsystems now use this: say `Y' or `M' here if you want to use
171           either of those.
172
173           To compile it as a module, choose M here.  If unsure, say N.
174
175 if IP_NF_IPTABLES
176
177 # The matches.
178 config IP_NF_MATCH_AH
179         tristate '"ah" match support'
180         depends on NETFILTER_ADVANCED
181         help
182           This match extension allows you to match a range of SPIs
183           inside AH header of IPSec packets.
184
185           To compile it as a module, choose M here.  If unsure, say N.
186
187 config IP_NF_MATCH_ECN
188         tristate '"ecn" match support'
189         depends on NETFILTER_ADVANCED
190         select NETFILTER_XT_MATCH_ECN
191         ---help---
192         This is a backwards-compat option for the user's convenience
193         (e.g. when running oldconfig). It selects
194         CONFIG_NETFILTER_XT_MATCH_ECN.
195
196 config IP_NF_MATCH_RPFILTER
197         tristate '"rpfilter" reverse path filter match support'
198         depends on NETFILTER_ADVANCED
199         depends on IP_NF_MANGLE || IP_NF_RAW
200         ---help---
201           This option allows you to match packets whose replies would
202           go out via the interface the packet came in.
203
204           To compile it as a module, choose M here.  If unsure, say N.
205           The module will be called ipt_rpfilter.
206
207 config IP_NF_MATCH_TTL
208         tristate '"ttl" match support'
209         depends on NETFILTER_ADVANCED
210         select NETFILTER_XT_MATCH_HL
211         ---help---
212         This is a backwards-compat option for the user's convenience
213         (e.g. when running oldconfig). It selects
214         CONFIG_NETFILTER_XT_MATCH_HL.
215
216 # `filter', generic and specific targets
217 config IP_NF_FILTER
218         tristate "Packet filtering"
219         default m if NETFILTER_ADVANCED=n
220         help
221           Packet filtering defines a table `filter', which has a series of
222           rules for simple packet filtering at local input, forwarding and
223           local output.  See the man page for iptables(8).
224
225           To compile it as a module, choose M here.  If unsure, say N.
226
227 config IP_NF_TARGET_REJECT
228         tristate "REJECT target support"
229         depends on IP_NF_FILTER
230         select NF_REJECT_IPV4
231         default m if NETFILTER_ADVANCED=n
232         help
233           The REJECT target allows a filtering rule to specify that an ICMP
234           error should be issued in response to an incoming packet, rather
235           than silently being dropped.
236
237           To compile it as a module, choose M here.  If unsure, say N.
238
239 config IP_NF_TARGET_SYNPROXY
240         tristate "SYNPROXY target support"
241         depends on NF_CONNTRACK && NETFILTER_ADVANCED
242         select NETFILTER_SYNPROXY
243         select SYN_COOKIES
244         help
245           The SYNPROXY target allows you to intercept TCP connections and
246           establish them using syncookies before they are passed on to the
247           server. This allows to avoid conntrack and server resource usage
248           during SYN-flood attacks.
249
250           To compile it as a module, choose M here. If unsure, say N.
251
252 # NAT + specific targets: nf_conntrack
253 config IP_NF_NAT
254         tristate "iptables NAT support"
255         depends on NF_CONNTRACK_IPV4
256         default m if NETFILTER_ADVANCED=n
257         select NF_NAT
258         select NF_NAT_IPV4
259         select NETFILTER_XT_NAT
260         help
261           This enables the `nat' table in iptables. This allows masquerading,
262           port forwarding and other forms of full Network Address Port
263           Translation.
264
265           To compile it as a module, choose M here.  If unsure, say N.
266
267 if IP_NF_NAT
268
269 config IP_NF_TARGET_MASQUERADE
270         tristate "MASQUERADE target support"
271         select NF_NAT_MASQUERADE_IPV4
272         default m if NETFILTER_ADVANCED=n
273         help
274           Masquerading is a special case of NAT: all outgoing connections are
275           changed to seem to come from a particular interface's address, and
276           if the interface goes down, those connections are lost.  This is
277           only useful for dialup accounts with dynamic IP address (ie. your IP
278           address will be different on next dialup).
279
280           To compile it as a module, choose M here.  If unsure, say N.
281
282 config IP_NF_TARGET_NETMAP
283         tristate "NETMAP target support"
284         depends on NETFILTER_ADVANCED
285         select NETFILTER_XT_TARGET_NETMAP
286         ---help---
287         This is a backwards-compat option for the user's convenience
288         (e.g. when running oldconfig). It selects
289         CONFIG_NETFILTER_XT_TARGET_NETMAP.
290
291 config IP_NF_TARGET_REDIRECT
292         tristate "REDIRECT target support"
293         depends on NETFILTER_ADVANCED
294         select NETFILTER_XT_TARGET_REDIRECT
295         ---help---
296         This is a backwards-compat option for the user's convenience
297         (e.g. when running oldconfig). It selects
298         CONFIG_NETFILTER_XT_TARGET_REDIRECT.
299
300 endif # IP_NF_NAT
301
302 # mangle + specific targets
303 config IP_NF_MANGLE
304         tristate "Packet mangling"
305         default m if NETFILTER_ADVANCED=n
306         help
307           This option adds a `mangle' table to iptables: see the man page for
308           iptables(8).  This table is used for various packet alterations
309           which can effect how the packet is routed.
310
311           To compile it as a module, choose M here.  If unsure, say N.
312
313 config IP_NF_TARGET_CLUSTERIP
314         tristate "CLUSTERIP target support"
315         depends on IP_NF_MANGLE
316         depends on NF_CONNTRACK_IPV4
317         depends on NETFILTER_ADVANCED
318         select NF_CONNTRACK_MARK
319         help
320           The CLUSTERIP target allows you to build load-balancing clusters of
321           network servers without having a dedicated load-balancing
322           router/server/switch.
323         
324           To compile it as a module, choose M here.  If unsure, say N.
325
326 config IP_NF_TARGET_ECN
327         tristate "ECN target support"
328         depends on IP_NF_MANGLE
329         depends on NETFILTER_ADVANCED
330         ---help---
331           This option adds a `ECN' target, which can be used in the iptables mangle
332           table.  
333
334           You can use this target to remove the ECN bits from the IPv4 header of
335           an IP packet.  This is particularly useful, if you need to work around
336           existing ECN blackholes on the internet, but don't want to disable
337           ECN support in general.
338
339           To compile it as a module, choose M here.  If unsure, say N.
340
341 config IP_NF_TARGET_TTL
342         tristate '"TTL" target support'
343         depends on NETFILTER_ADVANCED && IP_NF_MANGLE
344         select NETFILTER_XT_TARGET_HL
345         ---help---
346         This is a backwards-compatible option for the user's convenience
347         (e.g. when running oldconfig). It selects
348         CONFIG_NETFILTER_XT_TARGET_HL.
349
350 # raw + specific targets
351 config IP_NF_RAW
352         tristate  'raw table support (required for NOTRACK/TRACE)'
353         help
354           This option adds a `raw' table to iptables. This table is the very
355           first in the netfilter framework and hooks in at the PREROUTING
356           and OUTPUT chains.
357         
358           If you want to compile it as a module, say M here and read
359           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
360
361 # security table for MAC policy
362 config IP_NF_SECURITY
363         tristate "Security table"
364         depends on SECURITY
365         depends on NETFILTER_ADVANCED
366         help
367           This option adds a `security' table to iptables, for use
368           with Mandatory Access Control (MAC) policy.
369          
370           If unsure, say N.
371
372 endif # IP_NF_IPTABLES
373
374 # ARP tables
375 config IP_NF_ARPTABLES
376         tristate "ARP tables support"
377         select NETFILTER_XTABLES
378         depends on NETFILTER_ADVANCED
379         help
380           arptables is a general, extensible packet identification framework.
381           The ARP packet filtering and mangling (manipulation)subsystems
382           use this: say Y or M here if you want to use either of those.
383
384           To compile it as a module, choose M here.  If unsure, say N.
385
386 if IP_NF_ARPTABLES
387
388 config IP_NF_ARPFILTER
389         tristate "ARP packet filtering"
390         help
391           ARP packet filtering defines a table `filter', which has a series of
392           rules for simple ARP packet filtering at local input and
393           local output.  On a bridge, you can also specify filtering rules
394           for forwarded ARP packets. See the man page for arptables(8).
395
396           To compile it as a module, choose M here.  If unsure, say N.
397
398 config IP_NF_ARP_MANGLE
399         tristate "ARP payload mangling"
400         help
401           Allows altering the ARP packet payload: source and destination
402           hardware and network addresses.
403
404 endif # IP_NF_ARPTABLES
405
406 endmenu
407