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