xref: /linux/net/netfilter/Kconfig (revision f8324e20f8289dffc646d64366332e05eaacab25)
1menu "Core Netfilter Configuration"
2	depends on NET && INET && NETFILTER
3
4config NETFILTER_NETLINK
5	tristate
6
7config NETFILTER_NETLINK_QUEUE
8	tristate "Netfilter NFQUEUE over NFNETLINK interface"
9	depends on NETFILTER_ADVANCED
10	select NETFILTER_NETLINK
11	help
12	  If this option is enabled, the kernel will include support
13	  for queueing packets via NFNETLINK.
14
15config NETFILTER_NETLINK_LOG
16	tristate "Netfilter LOG over NFNETLINK interface"
17	default m if NETFILTER_ADVANCED=n
18	select NETFILTER_NETLINK
19	help
20	  If this option is enabled, the kernel will include support
21	  for logging packets via NFNETLINK.
22
23	  This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms,
24	  and is also scheduled to replace the old syslog-based ipt_LOG
25	  and ip6t_LOG modules.
26
27config NF_CONNTRACK
28	tristate "Netfilter connection tracking support"
29	default m if NETFILTER_ADVANCED=n
30	help
31	  Connection tracking keeps a record of what packets have passed
32	  through your machine, in order to figure out how they are related
33	  into connections.
34
35	  This is required to do Masquerading or other kinds of Network
36	  Address Translation.  It can also be used to enhance packet
37	  filtering (see `Connection state match support' below).
38
39	  To compile it as a module, choose M here.  If unsure, say N.
40
41if NF_CONNTRACK
42
43config NF_CT_ACCT
44	bool "Connection tracking flow accounting"
45	depends on NETFILTER_ADVANCED
46	help
47	  If this option is enabled, the connection tracking code will
48	  keep per-flow packet and byte counters.
49
50	  Those counters can be used for flow-based accounting or the
51	  `connbytes' match.
52
53	  Please note that currently this option only sets a default state.
54	  You may change it at boot time with nf_conntrack.acct=0/1 kernel
55	  parameter or by loading the nf_conntrack module with acct=0/1.
56
57	  You may also disable/enable it on a running system with:
58	   sysctl net.netfilter.nf_conntrack_acct=0/1
59
60	  This option will be removed in 2.6.29.
61
62	  If unsure, say `N'.
63
64config NF_CONNTRACK_MARK
65	bool  'Connection mark tracking support'
66	depends on NETFILTER_ADVANCED
67	help
68	  This option enables support for connection marks, used by the
69	  `CONNMARK' target and `connmark' match. Similar to the mark value
70	  of packets, but this mark value is kept in the conntrack session
71	  instead of the individual packets.
72
73config NF_CONNTRACK_SECMARK
74	bool  'Connection tracking security mark support'
75	depends on NETWORK_SECMARK
76	default m if NETFILTER_ADVANCED=n
77	help
78	  This option enables security markings to be applied to
79	  connections.  Typically they are copied to connections from
80	  packets using the CONNSECMARK target and copied back from
81	  connections to packets with the same target, with the packets
82	  being originally labeled via SECMARK.
83
84	  If unsure, say 'N'.
85
86config NF_CONNTRACK_ZONES
87	bool  'Connection tracking zones'
88	depends on NETFILTER_ADVANCED
89	depends on NETFILTER_XT_TARGET_CT
90	help
91	  This option enables support for connection tracking zones.
92	  Normally, each connection needs to have a unique system wide
93	  identity. Connection tracking zones allow to have multiple
94	  connections using the same identity, as long as they are
95	  contained in different zones.
96
97	  If unsure, say `N'.
98
99config NF_CONNTRACK_EVENTS
100	bool "Connection tracking events"
101	depends on NETFILTER_ADVANCED
102	help
103	  If this option is enabled, the connection tracking code will
104	  provide a notifier chain that can be used by other kernel code
105	  to get notified about changes in the connection tracking state.
106
107	  If unsure, say `N'.
108
109config NF_CT_PROTO_DCCP
110	tristate 'DCCP protocol connection tracking support (EXPERIMENTAL)'
111	depends on EXPERIMENTAL
112	depends on NETFILTER_ADVANCED
113	default IP_DCCP
114	help
115	  With this option enabled, the layer 3 independent connection
116	  tracking code will be able to do state tracking on DCCP connections.
117
118	  If unsure, say 'N'.
119
120config NF_CT_PROTO_GRE
121	tristate
122
123config NF_CT_PROTO_SCTP
124	tristate 'SCTP protocol connection tracking support (EXPERIMENTAL)'
125	depends on EXPERIMENTAL
126	depends on NETFILTER_ADVANCED
127	default IP_SCTP
128	help
129	  With this option enabled, the layer 3 independent connection
130	  tracking code will be able to do state tracking on SCTP connections.
131
132	  If you want to compile it as a module, say M here and read
133	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
134
135config NF_CT_PROTO_UDPLITE
136	tristate 'UDP-Lite protocol connection tracking support'
137	depends on NETFILTER_ADVANCED
138	help
139	  With this option enabled, the layer 3 independent connection
140	  tracking code will be able to do state tracking on UDP-Lite
141	  connections.
142
143	  To compile it as a module, choose M here.  If unsure, say N.
144
145config NF_CONNTRACK_AMANDA
146	tristate "Amanda backup protocol support"
147	depends on NETFILTER_ADVANCED
148	select TEXTSEARCH
149	select TEXTSEARCH_KMP
150	help
151	  If you are running the Amanda backup package <http://www.amanda.org/>
152	  on this machine or machines that will be MASQUERADED through this
153	  machine, then you may want to enable this feature.  This allows the
154	  connection tracking and natting code to allow the sub-channels that
155	  Amanda requires for communication of the backup data, messages and
156	  index.
157
158	  To compile it as a module, choose M here.  If unsure, say N.
159
160config NF_CONNTRACK_FTP
161	tristate "FTP protocol support"
162	default m if NETFILTER_ADVANCED=n
163	help
164	  Tracking FTP connections is problematic: special helpers are
165	  required for tracking them, and doing masquerading and other forms
166	  of Network Address Translation on them.
167
168	  This is FTP support on Layer 3 independent connection tracking.
169	  Layer 3 independent connection tracking is experimental scheme
170	  which generalize ip_conntrack to support other layer 3 protocols.
171
172	  To compile it as a module, choose M here.  If unsure, say N.
173
174config NF_CONNTRACK_H323
175	tristate "H.323 protocol support"
176	depends on (IPV6 || IPV6=n)
177	depends on NETFILTER_ADVANCED
178	help
179	  H.323 is a VoIP signalling protocol from ITU-T. As one of the most
180	  important VoIP protocols, it is widely used by voice hardware and
181	  software including voice gateways, IP phones, Netmeeting, OpenPhone,
182	  Gnomemeeting, etc.
183
184	  With this module you can support H.323 on a connection tracking/NAT
185	  firewall.
186
187	  This module supports RAS, Fast Start, H.245 Tunnelling, Call
188	  Forwarding, RTP/RTCP and T.120 based audio, video, fax, chat,
189	  whiteboard, file transfer, etc. For more information, please
190	  visit http://nath323.sourceforge.net/.
191
192	  To compile it as a module, choose M here.  If unsure, say N.
193
194config NF_CONNTRACK_IRC
195	tristate "IRC protocol support"
196	default m if NETFILTER_ADVANCED=n
197	help
198	  There is a commonly-used extension to IRC called
199	  Direct Client-to-Client Protocol (DCC).  This enables users to send
200	  files to each other, and also chat to each other without the need
201	  of a server.  DCC Sending is used anywhere you send files over IRC,
202	  and DCC Chat is most commonly used by Eggdrop bots.  If you are
203	  using NAT, this extension will enable you to send files and initiate
204	  chats.  Note that you do NOT need this extension to get files or
205	  have others initiate chats, or everything else in IRC.
206
207	  To compile it as a module, choose M here.  If unsure, say N.
208
209config NF_CONNTRACK_NETBIOS_NS
210	tristate "NetBIOS name service protocol support"
211	depends on NETFILTER_ADVANCED
212	help
213	  NetBIOS name service requests are sent as broadcast messages from an
214	  unprivileged port and responded to with unicast messages to the
215	  same port. This make them hard to firewall properly because connection
216	  tracking doesn't deal with broadcasts. This helper tracks locally
217	  originating NetBIOS name service requests and the corresponding
218	  responses. It relies on correct IP address configuration, specifically
219	  netmask and broadcast address. When properly configured, the output
220	  of "ip address show" should look similar to this:
221
222	  $ ip -4 address show eth0
223	  4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
224	      inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
225
226	  To compile it as a module, choose M here.  If unsure, say N.
227
228config NF_CONNTRACK_PPTP
229	tristate "PPtP protocol support"
230	depends on NETFILTER_ADVANCED
231	select NF_CT_PROTO_GRE
232	help
233	  This module adds support for PPTP (Point to Point Tunnelling
234	  Protocol, RFC2637) connection tracking and NAT.
235
236	  If you are running PPTP sessions over a stateful firewall or NAT
237	  box, you may want to enable this feature.
238
239	  Please note that not all PPTP modes of operation are supported yet.
240	  Specifically these limitations exist:
241	    - Blindly assumes that control connections are always established
242	      in PNS->PAC direction. This is a violation of RFC2637.
243	    - Only supports a single call within each session
244
245	  To compile it as a module, choose M here.  If unsure, say N.
246
247config NF_CONNTRACK_SANE
248	tristate "SANE protocol support (EXPERIMENTAL)"
249	depends on EXPERIMENTAL
250	depends on NETFILTER_ADVANCED
251	help
252	  SANE is a protocol for remote access to scanners as implemented
253	  by the 'saned' daemon. Like FTP, it uses separate control and
254	  data connections.
255
256	  With this module you can support SANE on a connection tracking
257	  firewall.
258
259	  To compile it as a module, choose M here.  If unsure, say N.
260
261config NF_CONNTRACK_SIP
262	tristate "SIP protocol support"
263	default m if NETFILTER_ADVANCED=n
264	help
265	  SIP is an application-layer control protocol that can establish,
266	  modify, and terminate multimedia sessions (conferences) such as
267	  Internet telephony calls. With the ip_conntrack_sip and
268	  the nf_nat_sip modules you can support the protocol on a connection
269	  tracking/NATing firewall.
270
271	  To compile it as a module, choose M here.  If unsure, say N.
272
273config NF_CONNTRACK_TFTP
274	tristate "TFTP protocol support"
275	depends on NETFILTER_ADVANCED
276	help
277	  TFTP connection tracking helper, this is required depending
278	  on how restrictive your ruleset is.
279	  If you are using a tftp client behind -j SNAT or -j MASQUERADING
280	  you will need this.
281
282	  To compile it as a module, choose M here.  If unsure, say N.
283
284config NF_CT_NETLINK
285	tristate 'Connection tracking netlink interface'
286	select NETFILTER_NETLINK
287	default m if NETFILTER_ADVANCED=n
288	help
289	  This option enables support for a netlink-based userspace interface
290
291endif # NF_CONNTRACK
292
293# transparent proxy support
294config NETFILTER_TPROXY
295	tristate "Transparent proxying support (EXPERIMENTAL)"
296	depends on EXPERIMENTAL
297	depends on IP_NF_MANGLE
298	depends on NETFILTER_ADVANCED
299	help
300	  This option enables transparent proxying support, that is,
301	  support for handling non-locally bound IPv4 TCP and UDP sockets.
302	  For it to work you will have to configure certain iptables rules
303	  and use policy routing. For more information on how to set it up
304	  see Documentation/networking/tproxy.txt.
305
306	  To compile it as a module, choose M here.  If unsure, say N.
307
308config NETFILTER_XTABLES
309	tristate "Netfilter Xtables support (required for ip_tables)"
310	default m if NETFILTER_ADVANCED=n
311	help
312	  This is required if you intend to use any of ip_tables,
313	  ip6_tables or arp_tables.
314
315if NETFILTER_XTABLES
316
317comment "Xtables combined modules"
318
319config NETFILTER_XT_MARK
320	tristate 'nfmark target and match support'
321	default m if NETFILTER_ADVANCED=n
322	---help---
323	This option adds the "MARK" target and "mark" match.
324
325	Netfilter mark matching allows you to match packets based on the
326	"nfmark" value in the packet.
327	The target allows you to create rules in the "mangle" table which alter
328	the netfilter mark (nfmark) field associated with the packet.
329
330	Prior to routing, the nfmark can influence the routing method (see
331	"Use netfilter MARK value as routing key") and can also be used by
332	other subsystems to change their behavior.
333
334config NETFILTER_XT_CONNMARK
335	tristate 'ctmark target and match support'
336	depends on NF_CONNTRACK
337	depends on NETFILTER_ADVANCED
338	select NF_CONNTRACK_MARK
339	---help---
340	This option adds the "CONNMARK" target and "connmark" match.
341
342	Netfilter allows you to store a mark value per connection (a.k.a.
343	ctmark), similarly to the packet mark (nfmark). Using this
344	target and match, you can set and match on this mark.
345
346# alphabetically ordered list of targets
347
348comment "Xtables targets"
349
350config NETFILTER_XT_TARGET_CLASSIFY
351	tristate '"CLASSIFY" target support'
352	depends on NETFILTER_ADVANCED
353	help
354	  This option adds a `CLASSIFY' target, which enables the user to set
355	  the priority of a packet. Some qdiscs can use this value for
356	  classification, among these are:
357
358  	  atm, cbq, dsmark, pfifo_fast, htb, prio
359
360	  To compile it as a module, choose M here.  If unsure, say N.
361
362config NETFILTER_XT_TARGET_CONNMARK
363	tristate  '"CONNMARK" target support'
364	depends on NF_CONNTRACK
365	depends on NETFILTER_ADVANCED
366	select NETFILTER_XT_CONNMARK
367	---help---
368	This is a backwards-compat option for the user's convenience
369	(e.g. when running oldconfig). It selects
370	CONFIG_NETFILTER_XT_CONNMARK (combined connmark/CONNMARK module).
371
372config NETFILTER_XT_TARGET_CONNSECMARK
373	tristate '"CONNSECMARK" target support'
374	depends on NF_CONNTRACK && NF_CONNTRACK_SECMARK
375	default m if NETFILTER_ADVANCED=n
376	help
377	  The CONNSECMARK target copies security markings from packets
378	  to connections, and restores security markings from connections
379	  to packets (if the packets are not already marked).  This would
380	  normally be used in conjunction with the SECMARK target.
381
382	  To compile it as a module, choose M here.  If unsure, say N.
383
384config NETFILTER_XT_TARGET_CT
385	tristate '"CT" target support'
386	depends on NF_CONNTRACK
387	depends on IP_NF_RAW || IP6_NF_RAW
388	depends on NETFILTER_ADVANCED
389	help
390	  This options adds a `CT' target, which allows to specify initial
391	  connection tracking parameters like events to be delivered and
392	  the helper to be used.
393
394	  To compile it as a module, choose M here.  If unsure, say N.
395
396config NETFILTER_XT_TARGET_DSCP
397	tristate '"DSCP" and "TOS" target support'
398	depends on IP_NF_MANGLE || IP6_NF_MANGLE
399	depends on NETFILTER_ADVANCED
400	help
401	  This option adds a `DSCP' target, which allows you to manipulate
402	  the IPv4/IPv6 header DSCP field (differentiated services codepoint).
403
404	  The DSCP field can have any value between 0x0 and 0x3f inclusive.
405
406	  It also adds the "TOS" target, which allows you to create rules in
407	  the "mangle" table which alter the Type Of Service field of an IPv4
408	  or the Priority field of an IPv6 packet, prior to routing.
409
410	  To compile it as a module, choose M here.  If unsure, say N.
411
412config NETFILTER_XT_TARGET_HL
413	tristate '"HL" hoplimit target support'
414	depends on IP_NF_MANGLE || IP6_NF_MANGLE
415	depends on NETFILTER_ADVANCED
416	---help---
417	This option adds the "HL" (for IPv6) and "TTL" (for IPv4)
418	targets, which enable the user to change the
419	hoplimit/time-to-live value of the IP header.
420
421	While it is safe to decrement the hoplimit/TTL value, the
422	modules also allow to increment and set the hoplimit value of
423	the header to arbitrary values. This is EXTREMELY DANGEROUS
424	since you can easily create immortal packets that loop
425	forever on the network.
426
427config NETFILTER_XT_TARGET_LED
428	tristate '"LED" target support'
429	depends on LEDS_CLASS && LEDS_TRIGGERS
430	depends on NETFILTER_ADVANCED
431	help
432	  This option adds a `LED' target, which allows you to blink LEDs in
433	  response to particular packets passing through your machine.
434
435	  This can be used to turn a spare LED into a network activity LED,
436	  which only flashes in response to FTP transfers, for example.  Or
437	  you could have an LED which lights up for a minute or two every time
438	  somebody connects to your machine via SSH.
439
440	  You will need support for the "led" class to make this work.
441
442	  To create an LED trigger for incoming SSH traffic:
443	    iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000
444
445	  Then attach the new trigger to an LED on your system:
446	    echo netfilter-ssh > /sys/class/leds/<ledname>/trigger
447
448	  For more information on the LEDs available on your system, see
449	  Documentation/leds-class.txt
450
451config NETFILTER_XT_TARGET_MARK
452	tristate '"MARK" target support'
453	depends on NETFILTER_ADVANCED
454	select NETFILTER_XT_MARK
455	---help---
456	This is a backwards-compat option for the user's convenience
457	(e.g. when running oldconfig). It selects
458	CONFIG_NETFILTER_XT_MARK (combined mark/MARK module).
459
460config NETFILTER_XT_TARGET_NFLOG
461	tristate '"NFLOG" target support'
462	default m if NETFILTER_ADVANCED=n
463	select NETFILTER_NETLINK_LOG
464	help
465	  This option enables the NFLOG target, which allows to LOG
466	  messages through nfnetlink_log.
467
468	  To compile it as a module, choose M here.  If unsure, say N.
469
470config NETFILTER_XT_TARGET_NFQUEUE
471	tristate '"NFQUEUE" target Support'
472	depends on NETFILTER_ADVANCED
473	help
474	  This target replaced the old obsolete QUEUE target.
475
476	  As opposed to QUEUE, it supports 65535 different queues,
477	  not just one.
478
479	  To compile it as a module, choose M here.  If unsure, say N.
480
481config NETFILTER_XT_TARGET_NOTRACK
482	tristate  '"NOTRACK" target support'
483	depends on IP_NF_RAW || IP6_NF_RAW
484	depends on NF_CONNTRACK
485	depends on NETFILTER_ADVANCED
486	help
487	  The NOTRACK target allows a select rule to specify
488	  which packets *not* to enter the conntrack/NAT
489	  subsystem with all the consequences (no ICMP error tracking,
490	  no protocol helpers for the selected packets).
491
492	  If you want to compile it as a module, say M here and read
493	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
494
495config NETFILTER_XT_TARGET_RATEEST
496	tristate '"RATEEST" target support'
497	depends on NETFILTER_ADVANCED
498	help
499	  This option adds a `RATEEST' target, which allows to measure
500	  rates similar to TC estimators. The `rateest' match can be
501	  used to match on the measured rates.
502
503	  To compile it as a module, choose M here.  If unsure, say N.
504
505config NETFILTER_XT_TARGET_TEE
506	tristate '"TEE" - packet cloning to alternate destiantion'
507	depends on NETFILTER_ADVANCED
508	depends on (IPV6 || IPV6=n)
509	depends on !NF_CONNTRACK || NF_CONNTRACK
510	---help---
511	This option adds a "TEE" target with which a packet can be cloned and
512	this clone be rerouted to another nexthop.
513
514config NETFILTER_XT_TARGET_TPROXY
515	tristate '"TPROXY" target support (EXPERIMENTAL)'
516	depends on EXPERIMENTAL
517	depends on NETFILTER_TPROXY
518	depends on NETFILTER_XTABLES
519	depends on NETFILTER_ADVANCED
520	select NF_DEFRAG_IPV4
521	help
522	  This option adds a `TPROXY' target, which is somewhat similar to
523	  REDIRECT.  It can only be used in the mangle table and is useful
524	  to redirect traffic to a transparent proxy.  It does _not_ depend
525	  on Netfilter connection tracking and NAT, unlike REDIRECT.
526
527	  To compile it as a module, choose M here.  If unsure, say N.
528
529config NETFILTER_XT_TARGET_TRACE
530	tristate  '"TRACE" target support'
531	depends on IP_NF_RAW || IP6_NF_RAW
532	depends on NETFILTER_ADVANCED
533	help
534	  The TRACE target allows you to mark packets so that the kernel
535	  will log every rule which match the packets as those traverse
536	  the tables, chains, rules.
537
538	  If you want to compile it as a module, say M here and read
539	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
540
541config NETFILTER_XT_TARGET_SECMARK
542	tristate '"SECMARK" target support'
543	depends on NETWORK_SECMARK
544	default m if NETFILTER_ADVANCED=n
545	help
546	  The SECMARK target allows security marking of network
547	  packets, for use with security subsystems.
548
549	  To compile it as a module, choose M here.  If unsure, say N.
550
551config NETFILTER_XT_TARGET_TCPMSS
552	tristate '"TCPMSS" target support'
553	depends on (IPV6 || IPV6=n)
554	default m if NETFILTER_ADVANCED=n
555	---help---
556	  This option adds a `TCPMSS' target, which allows you to alter the
557	  MSS value of TCP SYN packets, to control the maximum size for that
558	  connection (usually limiting it to your outgoing interface's MTU
559	  minus 40).
560
561	  This is used to overcome criminally braindead ISPs or servers which
562	  block ICMP Fragmentation Needed packets.  The symptoms of this
563	  problem are that everything works fine from your Linux
564	  firewall/router, but machines behind it can never exchange large
565	  packets:
566	        1) Web browsers connect, then hang with no data received.
567	        2) Small mail works fine, but large emails hang.
568	        3) ssh works fine, but scp hangs after initial handshaking.
569
570	  Workaround: activate this option and add a rule to your firewall
571	  configuration like:
572
573	  iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
574	                 -j TCPMSS --clamp-mss-to-pmtu
575
576	  To compile it as a module, choose M here.  If unsure, say N.
577
578config NETFILTER_XT_TARGET_TCPOPTSTRIP
579	tristate '"TCPOPTSTRIP" target support (EXPERIMENTAL)'
580	depends on EXPERIMENTAL
581	depends on IP_NF_MANGLE || IP6_NF_MANGLE
582	depends on NETFILTER_ADVANCED
583	help
584	  This option adds a "TCPOPTSTRIP" target, which allows you to strip
585	  TCP options from TCP packets.
586
587# alphabetically ordered list of matches
588
589comment "Xtables matches"
590
591config NETFILTER_XT_MATCH_CLUSTER
592	tristate '"cluster" match support'
593	depends on NF_CONNTRACK
594	depends on NETFILTER_ADVANCED
595	---help---
596	  This option allows you to build work-load-sharing clusters of
597	  network servers/stateful firewalls without having a dedicated
598	  load-balancing router/server/switch. Basically, this match returns
599	  true when the packet must be handled by this cluster node. Thus,
600	  all nodes see all packets and this match decides which node handles
601	  what packets. The work-load sharing algorithm is based on source
602	  address hashing.
603
604	  If you say Y or M here, try `iptables -m cluster --help` for
605	  more information.
606
607config NETFILTER_XT_MATCH_COMMENT
608	tristate  '"comment" match support'
609	depends on NETFILTER_ADVANCED
610	help
611	  This option adds a `comment' dummy-match, which allows you to put
612	  comments in your iptables ruleset.
613
614	  If you want to compile it as a module, say M here and read
615	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
616
617config NETFILTER_XT_MATCH_CONNBYTES
618	tristate  '"connbytes" per-connection counter match support'
619	depends on NF_CONNTRACK
620	depends on NETFILTER_ADVANCED
621	select NF_CT_ACCT
622	help
623	  This option adds a `connbytes' match, which allows you to match the
624	  number of bytes and/or packets for each direction within a connection.
625
626	  If you want to compile it as a module, say M here and read
627	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
628
629config NETFILTER_XT_MATCH_CONNLIMIT
630	tristate '"connlimit" match support"'
631	depends on NF_CONNTRACK
632	depends on NETFILTER_ADVANCED
633	---help---
634	  This match allows you to match against the number of parallel
635	  connections to a server per client IP address (or address block).
636
637config NETFILTER_XT_MATCH_CONNMARK
638	tristate  '"connmark" connection mark match support'
639	depends on NF_CONNTRACK
640	depends on NETFILTER_ADVANCED
641	select NETFILTER_XT_CONNMARK
642	---help---
643	This is a backwards-compat option for the user's convenience
644	(e.g. when running oldconfig). It selects
645	CONFIG_NETFILTER_XT_CONNMARK (combined connmark/CONNMARK module).
646
647config NETFILTER_XT_MATCH_CONNTRACK
648	tristate '"conntrack" connection tracking match support'
649	depends on NF_CONNTRACK
650	default m if NETFILTER_ADVANCED=n
651	help
652	  This is a general conntrack match module, a superset of the state match.
653
654	  It allows matching on additional conntrack information, which is
655	  useful in complex configurations, such as NAT gateways with multiple
656	  internet links or tunnels.
657
658	  To compile it as a module, choose M here.  If unsure, say N.
659
660config NETFILTER_XT_MATCH_DCCP
661	tristate '"dccp" protocol match support'
662	depends on NETFILTER_ADVANCED
663	default IP_DCCP
664	help
665	  With this option enabled, you will be able to use the iptables
666	  `dccp' match in order to match on DCCP source/destination ports
667	  and DCCP flags.
668
669	  If you want to compile it as a module, say M here and read
670	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
671
672config NETFILTER_XT_MATCH_DSCP
673	tristate '"dscp" and "tos" match support'
674	depends on NETFILTER_ADVANCED
675	help
676	  This option adds a `DSCP' match, which allows you to match against
677	  the IPv4/IPv6 header DSCP field (differentiated services codepoint).
678
679	  The DSCP field can have any value between 0x0 and 0x3f inclusive.
680
681	  It will also add a "tos" match, which allows you to match packets
682	  based on the Type Of Service fields of the IPv4 packet (which share
683	  the same bits as DSCP).
684
685	  To compile it as a module, choose M here.  If unsure, say N.
686
687config NETFILTER_XT_MATCH_ESP
688	tristate '"esp" match support'
689	depends on NETFILTER_ADVANCED
690	help
691	  This match extension allows you to match a range of SPIs
692	  inside ESP header of IPSec packets.
693
694	  To compile it as a module, choose M here.  If unsure, say N.
695
696config NETFILTER_XT_MATCH_HASHLIMIT
697	tristate '"hashlimit" match support'
698	depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
699	depends on NETFILTER_ADVANCED
700	help
701	  This option adds a `hashlimit' match.
702
703	  As opposed to `limit', this match dynamically creates a hash table
704	  of limit buckets, based on your selection of source/destination
705	  addresses and/or ports.
706
707	  It enables you to express policies like `10kpps for any given
708	  destination address' or `500pps from any given source address'
709	  with a single rule.
710
711config NETFILTER_XT_MATCH_HELPER
712	tristate '"helper" match support'
713	depends on NF_CONNTRACK
714	depends on NETFILTER_ADVANCED
715	help
716	  Helper matching allows you to match packets in dynamic connections
717	  tracked by a conntrack-helper, ie. ip_conntrack_ftp
718
719	  To compile it as a module, choose M here.  If unsure, say Y.
720
721config NETFILTER_XT_MATCH_HL
722	tristate '"hl" hoplimit/TTL match support'
723	depends on NETFILTER_ADVANCED
724	---help---
725	HL matching allows you to match packets based on the hoplimit
726	in the IPv6 header, or the time-to-live field in the IPv4
727	header of the packet.
728
729config NETFILTER_XT_MATCH_IPRANGE
730	tristate '"iprange" address range match support'
731	depends on NETFILTER_ADVANCED
732	---help---
733	This option adds a "iprange" match, which allows you to match based on
734	an IP address range. (Normal iptables only matches on single addresses
735	with an optional mask.)
736
737	If unsure, say M.
738
739config NETFILTER_XT_MATCH_LENGTH
740	tristate '"length" match support'
741	depends on NETFILTER_ADVANCED
742	help
743	  This option allows you to match the length of a packet against a
744	  specific value or range of values.
745
746	  To compile it as a module, choose M here.  If unsure, say N.
747
748config NETFILTER_XT_MATCH_LIMIT
749	tristate '"limit" match support'
750	depends on NETFILTER_ADVANCED
751	help
752	  limit matching allows you to control the rate at which a rule can be
753	  matched: mainly useful in combination with the LOG target ("LOG
754	  target support", below) and to avoid some Denial of Service attacks.
755
756	  To compile it as a module, choose M here.  If unsure, say N.
757
758config NETFILTER_XT_MATCH_MAC
759	tristate '"mac" address match support'
760	depends on NETFILTER_ADVANCED
761	help
762	  MAC matching allows you to match packets based on the source
763	  Ethernet address of the packet.
764
765	  To compile it as a module, choose M here.  If unsure, say N.
766
767config NETFILTER_XT_MATCH_MARK
768	tristate '"mark" match support'
769	depends on NETFILTER_ADVANCED
770	select NETFILTER_XT_MARK
771	---help---
772	This is a backwards-compat option for the user's convenience
773	(e.g. when running oldconfig). It selects
774	CONFIG_NETFILTER_XT_MARK (combined mark/MARK module).
775
776config NETFILTER_XT_MATCH_MULTIPORT
777	tristate '"multiport" Multiple port match support'
778	depends on NETFILTER_ADVANCED
779	help
780	  Multiport matching allows you to match TCP or UDP packets based on
781	  a series of source or destination ports: normally a rule can only
782	  match a single range of ports.
783
784	  To compile it as a module, choose M here.  If unsure, say N.
785
786config NETFILTER_XT_MATCH_OSF
787	tristate '"osf" Passive OS fingerprint match'
788	depends on NETFILTER_ADVANCED && NETFILTER_NETLINK
789	help
790	  This option selects the Passive OS Fingerprinting match module
791	  that allows to passively match the remote operating system by
792	  analyzing incoming TCP SYN packets.
793
794	  Rules and loading software can be downloaded from
795	  http://www.ioremap.net/projects/osf
796
797	  To compile it as a module, choose M here.  If unsure, say N.
798
799config NETFILTER_XT_MATCH_OWNER
800	tristate '"owner" match support'
801	depends on NETFILTER_ADVANCED
802	---help---
803	Socket owner matching allows you to match locally-generated packets
804	based on who created the socket: the user or group. It is also
805	possible to check whether a socket actually exists.
806
807config NETFILTER_XT_MATCH_POLICY
808	tristate 'IPsec "policy" match support'
809	depends on XFRM
810	default m if NETFILTER_ADVANCED=n
811	help
812	  Policy matching allows you to match packets based on the
813	  IPsec policy that was used during decapsulation/will
814	  be used during encapsulation.
815
816	  To compile it as a module, choose M here.  If unsure, say N.
817
818config NETFILTER_XT_MATCH_PHYSDEV
819	tristate '"physdev" match support'
820	depends on BRIDGE && BRIDGE_NETFILTER
821	depends on NETFILTER_ADVANCED
822	help
823	  Physdev packet matching matches against the physical bridge ports
824	  the IP packet arrived on or will leave by.
825
826	  To compile it as a module, choose M here.  If unsure, say N.
827
828config NETFILTER_XT_MATCH_PKTTYPE
829	tristate '"pkttype" packet type match support'
830	depends on NETFILTER_ADVANCED
831	help
832	  Packet type matching allows you to match a packet by
833	  its "class", eg. BROADCAST, MULTICAST, ...
834
835	  Typical usage:
836	  iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
837
838	  To compile it as a module, choose M here.  If unsure, say N.
839
840config NETFILTER_XT_MATCH_QUOTA
841	tristate '"quota" match support'
842	depends on NETFILTER_ADVANCED
843	help
844	  This option adds a `quota' match, which allows to match on a
845	  byte counter.
846
847	  If you want to compile it as a module, say M here and read
848	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
849
850config NETFILTER_XT_MATCH_RATEEST
851	tristate '"rateest" match support'
852	depends on NETFILTER_ADVANCED
853	select NETFILTER_XT_TARGET_RATEEST
854	help
855	  This option adds a `rateest' match, which allows to match on the
856	  rate estimated by the RATEEST target.
857
858	  To compile it as a module, choose M here.  If unsure, say N.
859
860config NETFILTER_XT_MATCH_REALM
861	tristate  '"realm" match support'
862	depends on NETFILTER_ADVANCED
863	select NET_CLS_ROUTE
864	help
865	  This option adds a `realm' match, which allows you to use the realm
866	  key from the routing subsystem inside iptables.
867
868	  This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option
869	  in tc world.
870
871	  If you want to compile it as a module, say M here and read
872	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
873
874config NETFILTER_XT_MATCH_RECENT
875	tristate '"recent" match support'
876	depends on NETFILTER_ADVANCED
877	---help---
878	This match is used for creating one or many lists of recently
879	used addresses and then matching against that/those list(s).
880
881	Short options are available by using 'iptables -m recent -h'
882	Official Website: <http://snowman.net/projects/ipt_recent/>
883
884config NETFILTER_XT_MATCH_SCTP
885	tristate  '"sctp" protocol match support (EXPERIMENTAL)'
886	depends on EXPERIMENTAL
887	depends on NETFILTER_ADVANCED
888	default IP_SCTP
889	help
890	  With this option enabled, you will be able to use the
891	  `sctp' match in order to match on SCTP source/destination ports
892	  and SCTP chunk types.
893
894	  If you want to compile it as a module, say M here and read
895	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
896
897config NETFILTER_XT_MATCH_SOCKET
898	tristate '"socket" match support (EXPERIMENTAL)'
899	depends on EXPERIMENTAL
900	depends on NETFILTER_TPROXY
901	depends on NETFILTER_XTABLES
902	depends on NETFILTER_ADVANCED
903	depends on !NF_CONNTRACK || NF_CONNTRACK
904	select NF_DEFRAG_IPV4
905	help
906	  This option adds a `socket' match, which can be used to match
907	  packets for which a TCP or UDP socket lookup finds a valid socket.
908	  It can be used in combination with the MARK target and policy
909	  routing to implement full featured non-locally bound sockets.
910
911	  To compile it as a module, choose M here.  If unsure, say N.
912
913config NETFILTER_XT_MATCH_STATE
914	tristate '"state" match support'
915	depends on NF_CONNTRACK
916	default m if NETFILTER_ADVANCED=n
917	help
918	  Connection state matching allows you to match packets based on their
919	  relationship to a tracked connection (ie. previous packets).  This
920	  is a powerful tool for packet classification.
921
922	  To compile it as a module, choose M here.  If unsure, say N.
923
924config NETFILTER_XT_MATCH_STATISTIC
925	tristate '"statistic" match support'
926	depends on NETFILTER_ADVANCED
927	help
928	  This option adds a `statistic' match, which allows you to match
929	  on packets periodically or randomly with a given percentage.
930
931	  To compile it as a module, choose M here.  If unsure, say N.
932
933config NETFILTER_XT_MATCH_STRING
934	tristate  '"string" match support'
935	depends on NETFILTER_ADVANCED
936	select TEXTSEARCH
937	select TEXTSEARCH_KMP
938	select TEXTSEARCH_BM
939	select TEXTSEARCH_FSM
940	help
941	  This option adds a `string' match, which allows you to look for
942	  pattern matchings in packets.
943
944	  To compile it as a module, choose M here.  If unsure, say N.
945
946config NETFILTER_XT_MATCH_TCPMSS
947	tristate '"tcpmss" match support'
948	depends on NETFILTER_ADVANCED
949	help
950	  This option adds a `tcpmss' match, which allows you to examine the
951	  MSS value of TCP SYN packets, which control the maximum packet size
952	  for that connection.
953
954	  To compile it as a module, choose M here.  If unsure, say N.
955
956config NETFILTER_XT_MATCH_TIME
957	tristate '"time" match support'
958	depends on NETFILTER_ADVANCED
959	---help---
960	  This option adds a "time" match, which allows you to match based on
961	  the packet arrival time (at the machine which netfilter is running)
962	  on) or departure time/date (for locally generated packets).
963
964	  If you say Y here, try `iptables -m time --help` for
965	  more information.
966
967	  If you want to compile it as a module, say M here.
968	  If unsure, say N.
969
970config NETFILTER_XT_MATCH_U32
971	tristate '"u32" match support'
972	depends on NETFILTER_ADVANCED
973	---help---
974	  u32 allows you to extract quantities of up to 4 bytes from a packet,
975	  AND them with specified masks, shift them by specified amounts and
976	  test whether the results are in any of a set of specified ranges.
977	  The specification of what to extract is general enough to skip over
978	  headers with lengths stored in the packet, as in IP or TCP header
979	  lengths.
980
981	  Details and examples are in the kernel module source.
982
983endif # NETFILTER_XTABLES
984
985endmenu
986
987source "net/netfilter/ipvs/Kconfig"
988