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