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