d191dacead5e345f231125018a676ea194d9f3b9
[safe/jmp/linux-2.6] / net / netfilter / Kconfig
1 menu "Core Netfilter Configuration"
2         depends on NET && NETFILTER
3
4 config NETFILTER_NETLINK
5        tristate "Netfilter netlink interface"
6        help
7          If this option is enabled, the kernel will include support
8          for the new netfilter netlink interface.
9
10 config NETFILTER_NETLINK_QUEUE
11         tristate "Netfilter NFQUEUE over NFNETLINK interface"
12         depends on NETFILTER_NETLINK
13         help
14           If this option is enabled, the kernel will include support
15           for queueing packets via NFNETLINK.
16           
17 config NETFILTER_NETLINK_LOG
18         tristate "Netfilter LOG over NFNETLINK interface"
19         depends on NETFILTER_NETLINK
20         help
21           If this option is enabled, the kernel will include support
22           for logging packets via NFNETLINK.
23
24           This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms,
25           and is also scheduled to replace the old syslog-based ipt_LOG
26           and ip6t_LOG modules.
27
28 config NF_CONNTRACK
29         tristate "Layer 3 Independent Connection tracking (EXPERIMENTAL)"
30         depends on EXPERIMENTAL && IP_NF_CONNTRACK=n
31         default n
32         ---help---
33           Connection tracking keeps a record of what packets have passed
34           through your machine, in order to figure out how they are related
35           into connections.
36
37           Layer 3 independent connection tracking is experimental scheme
38           which generalize ip_conntrack to support other layer 3 protocols.
39
40           To compile it as a module, choose M here.  If unsure, say N.
41
42 config NF_CT_ACCT
43         bool "Connection tracking flow accounting"
44         depends on NF_CONNTRACK
45         help
46           If this option is enabled, the connection tracking code will
47           keep per-flow packet and byte counters.
48
49           Those counters can be used for flow-based accounting or the
50           `connbytes' match.
51
52           If unsure, say `N'.
53
54 config NF_CONNTRACK_MARK
55         bool  'Connection mark tracking support'
56         depends on NF_CONNTRACK
57         help
58           This option enables support for connection marks, used by the
59           `CONNMARK' target and `connmark' match. Similar to the mark value
60           of packets, but this mark value is kept in the conntrack session
61           instead of the individual packets.
62
63 config NF_CONNTRACK_SECMARK
64         bool  'Connection tracking security mark support'
65         depends on NF_CONNTRACK && NETWORK_SECMARK
66         help
67           This option enables security markings to be applied to
68           connections.  Typically they are copied to connections from
69           packets using the CONNSECMARK target and copied back from
70           connections to packets with the same target, with the packets
71           being originally labeled via SECMARK.
72
73           If unsure, say 'N'.
74
75 config NF_CONNTRACK_EVENTS
76         bool "Connection tracking events (EXPERIMENTAL)"
77         depends on EXPERIMENTAL && NF_CONNTRACK
78         help
79           If this option is enabled, the connection tracking code will
80           provide a notifier chain that can be used by other kernel code
81           to get notified about changes in the connection tracking state.
82
83           If unsure, say `N'.
84
85 config NF_CT_PROTO_SCTP
86         tristate 'SCTP protocol on new connection tracking support (EXPERIMENTAL)'
87         depends on EXPERIMENTAL && NF_CONNTRACK
88         default n
89         help
90           With this option enabled, the layer 3 independent connection
91           tracking code will be able to do state tracking on SCTP connections.
92
93           If you want to compile it as a module, say M here and read
94           Documentation/modules.txt.  If unsure, say `N'.
95
96 config NF_CONNTRACK_FTP
97         tristate "FTP support on new connection tracking (EXPERIMENTAL)"
98         depends on EXPERIMENTAL && NF_CONNTRACK
99         help
100           Tracking FTP connections is problematic: special helpers are
101           required for tracking them, and doing masquerading and other forms
102           of Network Address Translation on them.
103
104           This is FTP support on Layer 3 independent connection tracking.
105           Layer 3 independent connection tracking is experimental scheme
106           which generalize ip_conntrack to support other layer 3 protocols.
107
108           To compile it as a module, choose M here.  If unsure, say N.
109
110 config NF_CT_NETLINK
111         tristate 'Connection tracking netlink interface (EXPERIMENTAL)'
112         depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
113         depends on NF_CONNTRACK!=y || NETFILTER_NETLINK!=m
114         help
115           This option enables support for a netlink-based userspace interface
116
117 config NETFILTER_XTABLES
118         tristate "Netfilter Xtables support (required for ip_tables)"
119         help
120           This is required if you intend to use any of ip_tables,
121           ip6_tables or arp_tables.
122
123 # alphabetically ordered list of targets
124
125 config NETFILTER_XT_TARGET_CLASSIFY
126         tristate '"CLASSIFY" target support'
127         depends on NETFILTER_XTABLES
128         help
129           This option adds a `CLASSIFY' target, which enables the user to set
130           the priority of a packet. Some qdiscs can use this value for
131           classification, among these are:
132
133           atm, cbq, dsmark, pfifo_fast, htb, prio
134
135           To compile it as a module, choose M here.  If unsure, say N.
136
137 config NETFILTER_XT_TARGET_CONNMARK
138         tristate  '"CONNMARK" target support'
139         depends on NETFILTER_XTABLES
140         depends on IP_NF_MANGLE || IP6_NF_MANGLE
141         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK)
142         help
143           This option adds a `CONNMARK' target, which allows one to manipulate
144           the connection mark value.  Similar to the MARK target, but
145           affects the connection mark value rather than the packet mark value.
146         
147           If you want to compile it as a module, say M here and read
148           <file:Documentation/modules.txt>.  The module will be called
149           ipt_CONNMARK.o.  If unsure, say `N'.
150
151 config NETFILTER_XT_TARGET_DSCP
152         tristate '"DSCP" target support'
153         depends on NETFILTER_XTABLES
154         depends on IP_NF_MANGLE || IP6_NF_MANGLE
155         help
156           This option adds a `DSCP' target, which allows you to manipulate
157           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
158
159           The DSCP field can have any value between 0x0 and 0x3f inclusive.
160
161           To compile it as a module, choose M here.  If unsure, say N.
162
163 config NETFILTER_XT_TARGET_MARK
164         tristate '"MARK" target support'
165         depends on NETFILTER_XTABLES
166         help
167           This option adds a `MARK' target, which allows you to create rules
168           in the `mangle' table which alter the netfilter mark (nfmark) field
169           associated with the packet prior to routing. This can change
170           the routing method (see `Use netfilter MARK value as routing
171           key') and can also be used by other subsystems to change their
172           behavior.
173
174           To compile it as a module, choose M here.  If unsure, say N.
175
176 config NETFILTER_XT_TARGET_NFQUEUE
177         tristate '"NFQUEUE" target Support'
178         depends on NETFILTER_XTABLES
179         help
180           This target replaced the old obsolete QUEUE target.
181
182           As opposed to QUEUE, it supports 65535 different queues,
183           not just one.
184
185           To compile it as a module, choose M here.  If unsure, say N.
186
187 config NETFILTER_XT_TARGET_NFLOG
188         tristate '"NFLOG" target support'
189         depends on NETFILTER_XTABLES
190         help
191           This option enables the NFLOG target, which allows to LOG
192           messages through the netfilter logging API, which can use
193           either the old LOG target, the old ULOG target or nfnetlink_log
194           as backend.
195
196           To compile it as a module, choose M here.  If unsure, say N.
197
198 config NETFILTER_XT_TARGET_NOTRACK
199         tristate  '"NOTRACK" target support'
200         depends on NETFILTER_XTABLES
201         depends on IP_NF_RAW || IP6_NF_RAW
202         depends on IP_NF_CONNTRACK || NF_CONNTRACK
203         help
204           The NOTRACK target allows a select rule to specify
205           which packets *not* to enter the conntrack/NAT
206           subsystem with all the consequences (no ICMP error tracking,
207           no protocol helpers for the selected packets).
208         
209           If you want to compile it as a module, say M here and read
210           <file:Documentation/modules.txt>.  If unsure, say `N'.
211
212 config NETFILTER_XT_TARGET_SECMARK
213         tristate '"SECMARK" target support'
214         depends on NETFILTER_XTABLES && NETWORK_SECMARK
215         help
216           The SECMARK target allows security marking of network
217           packets, for use with security subsystems.
218
219           To compile it as a module, choose M here.  If unsure, say N.
220
221 config NETFILTER_XT_TARGET_CONNSECMARK
222         tristate '"CONNSECMARK" target support'
223         depends on NETFILTER_XTABLES && \
224                    ((NF_CONNTRACK && NF_CONNTRACK_SECMARK) || \
225                     (IP_NF_CONNTRACK && IP_NF_CONNTRACK_SECMARK))
226         help
227           The CONNSECMARK target copies security markings from packets
228           to connections, and restores security markings from connections
229           to packets (if the packets are not already marked).  This would
230           normally be used in conjunction with the SECMARK target.
231
232           To compile it as a module, choose M here.  If unsure, say N.
233
234 config NETFILTER_XT_MATCH_COMMENT
235         tristate  '"comment" match support'
236         depends on NETFILTER_XTABLES
237         help
238           This option adds a `comment' dummy-match, which allows you to put
239           comments in your iptables ruleset.
240
241           If you want to compile it as a module, say M here and read
242           <file:Documentation/modules.txt>.  If unsure, say `N'.
243
244 config NETFILTER_XT_MATCH_CONNBYTES
245         tristate  '"connbytes" per-connection counter match support'
246         depends on NETFILTER_XTABLES
247         depends on (IP_NF_CONNTRACK && IP_NF_CT_ACCT) || (NF_CT_ACCT && NF_CONNTRACK)
248         help
249           This option adds a `connbytes' match, which allows you to match the
250           number of bytes and/or packets for each direction within a connection.
251
252           If you want to compile it as a module, say M here and read
253           <file:Documentation/modules.txt>.  If unsure, say `N'.
254
255 config NETFILTER_XT_MATCH_CONNMARK
256         tristate  '"connmark" connection mark match support'
257         depends on NETFILTER_XTABLES
258         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK)
259         help
260           This option adds a `connmark' match, which allows you to match the
261           connection mark value previously set for the session by `CONNMARK'. 
262         
263           If you want to compile it as a module, say M here and read
264           <file:Documentation/modules.txt>.  The module will be called
265           ipt_connmark.o.  If unsure, say `N'.
266
267 config NETFILTER_XT_MATCH_CONNTRACK
268         tristate '"conntrack" connection tracking match support'
269         depends on NETFILTER_XTABLES
270         depends on IP_NF_CONNTRACK || NF_CONNTRACK
271         help
272           This is a general conntrack match module, a superset of the state match.
273
274           It allows matching on additional conntrack information, which is
275           useful in complex configurations, such as NAT gateways with multiple
276           internet links or tunnels.
277
278           To compile it as a module, choose M here.  If unsure, say N.
279
280 config NETFILTER_XT_MATCH_DCCP
281         tristate  '"DCCP" protocol match support'
282         depends on NETFILTER_XTABLES
283         help
284           With this option enabled, you will be able to use the iptables
285           `dccp' match in order to match on DCCP source/destination ports
286           and DCCP flags.
287
288           If you want to compile it as a module, say M here and read
289           <file:Documentation/modules.txt>.  If unsure, say `N'.
290
291 config NETFILTER_XT_MATCH_DSCP
292         tristate '"DSCP" match support'
293         depends on NETFILTER_XTABLES
294         help
295           This option adds a `DSCP' match, which allows you to match against
296           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
297
298           The DSCP field can have any value between 0x0 and 0x3f inclusive.
299
300           To compile it as a module, choose M here.  If unsure, say N.
301
302 config NETFILTER_XT_MATCH_ESP
303         tristate '"ESP" match support'
304         depends on NETFILTER_XTABLES
305         help
306           This match extension allows you to match a range of SPIs
307           inside ESP header of IPSec packets.
308
309           To compile it as a module, choose M here.  If unsure, say N.
310
311 config NETFILTER_XT_MATCH_HELPER
312         tristate '"helper" match support'
313         depends on NETFILTER_XTABLES
314         depends on IP_NF_CONNTRACK || NF_CONNTRACK
315         help
316           Helper matching allows you to match packets in dynamic connections
317           tracked by a conntrack-helper, ie. ip_conntrack_ftp
318
319           To compile it as a module, choose M here.  If unsure, say Y.
320
321 config NETFILTER_XT_MATCH_LENGTH
322         tristate '"length" match support'
323         depends on NETFILTER_XTABLES
324         help
325           This option allows you to match the length of a packet against a
326           specific value or range of values.
327
328           To compile it as a module, choose M here.  If unsure, say N.
329
330 config NETFILTER_XT_MATCH_LIMIT
331         tristate '"limit" match support'
332         depends on NETFILTER_XTABLES
333         help
334           limit matching allows you to control the rate at which a rule can be
335           matched: mainly useful in combination with the LOG target ("LOG
336           target support", below) and to avoid some Denial of Service attacks.
337
338           To compile it as a module, choose M here.  If unsure, say N.
339
340 config NETFILTER_XT_MATCH_MAC
341         tristate '"mac" address match support'
342         depends on NETFILTER_XTABLES
343         help
344           MAC matching allows you to match packets based on the source
345           Ethernet address of the packet.
346
347           To compile it as a module, choose M here.  If unsure, say N.
348
349 config NETFILTER_XT_MATCH_MARK
350         tristate '"mark" match support'
351         depends on NETFILTER_XTABLES
352         help
353           Netfilter mark matching allows you to match packets based on the
354           `nfmark' value in the packet.  This can be set by the MARK target
355           (see below).
356
357           To compile it as a module, choose M here.  If unsure, say N.
358
359 config NETFILTER_XT_MATCH_POLICY
360         tristate 'IPsec "policy" match support'
361         depends on NETFILTER_XTABLES && XFRM
362         help
363           Policy matching allows you to match packets based on the
364           IPsec policy that was used during decapsulation/will
365           be used during encapsulation.
366
367           To compile it as a module, choose M here.  If unsure, say N.
368
369 config NETFILTER_XT_MATCH_MULTIPORT
370         tristate "Multiple port match support"
371         depends on NETFILTER_XTABLES
372         help
373           Multiport matching allows you to match TCP or UDP packets based on
374           a series of source or destination ports: normally a rule can only
375           match a single range of ports.
376
377           To compile it as a module, choose M here.  If unsure, say N.
378
379 config NETFILTER_XT_MATCH_PHYSDEV
380         tristate '"physdev" match support'
381         depends on NETFILTER_XTABLES && BRIDGE && BRIDGE_NETFILTER
382         help
383           Physdev packet matching matches against the physical bridge ports
384           the IP packet arrived on or will leave by.
385
386           To compile it as a module, choose M here.  If unsure, say N.
387
388 config NETFILTER_XT_MATCH_PKTTYPE
389         tristate '"pkttype" packet type match support'
390         depends on NETFILTER_XTABLES
391         help
392           Packet type matching allows you to match a packet by
393           its "class", eg. BROADCAST, MULTICAST, ...
394
395           Typical usage:
396           iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
397
398           To compile it as a module, choose M here.  If unsure, say N.
399
400 config NETFILTER_XT_MATCH_QUOTA
401         tristate '"quota" match support'
402         depends on NETFILTER_XTABLES
403         help
404           This option adds a `quota' match, which allows to match on a
405           byte counter.
406
407           If you want to compile it as a module, say M here and read
408           <file:Documentation/modules.txt>.  If unsure, say `N'.
409
410 config NETFILTER_XT_MATCH_REALM
411         tristate  '"realm" match support'
412         depends on NETFILTER_XTABLES
413         select NET_CLS_ROUTE
414         help
415           This option adds a `realm' match, which allows you to use the realm
416           key from the routing subsystem inside iptables.
417         
418           This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option 
419           in tc world.
420         
421           If you want to compile it as a module, say M here and read
422           <file:Documentation/modules.txt>.  If unsure, say `N'.
423
424 config NETFILTER_XT_MATCH_SCTP
425         tristate  '"sctp" protocol match support (EXPERIMENTAL)'
426         depends on NETFILTER_XTABLES && EXPERIMENTAL
427         help
428           With this option enabled, you will be able to use the 
429           `sctp' match in order to match on SCTP source/destination ports
430           and SCTP chunk types.
431
432           If you want to compile it as a module, say M here and read
433           <file:Documentation/modules.txt>.  If unsure, say `N'.
434
435 config NETFILTER_XT_MATCH_STATE
436         tristate '"state" match support'
437         depends on NETFILTER_XTABLES
438         depends on IP_NF_CONNTRACK || NF_CONNTRACK
439         help
440           Connection state matching allows you to match packets based on their
441           relationship to a tracked connection (ie. previous packets).  This
442           is a powerful tool for packet classification.
443
444           To compile it as a module, choose M here.  If unsure, say N.
445
446 config NETFILTER_XT_MATCH_STATISTIC
447         tristate '"statistic" match support'
448         depends on NETFILTER_XTABLES
449         help
450           This option adds a `statistic' match, which allows you to match
451           on packets periodically or randomly with a given percentage.
452
453           To compile it as a module, choose M here.  If unsure, say N.
454
455 config NETFILTER_XT_MATCH_STRING
456         tristate  '"string" match support'
457         depends on NETFILTER_XTABLES
458         select TEXTSEARCH
459         select TEXTSEARCH_KMP
460         select TEXTSEARCH_BM
461         select TEXTSEARCH_FSM
462         help
463           This option adds a `string' match, which allows you to look for
464           pattern matchings in packets.
465
466           To compile it as a module, choose M here.  If unsure, say N.
467
468 config NETFILTER_XT_MATCH_TCPMSS
469         tristate '"tcpmss" match support'
470         depends on NETFILTER_XTABLES
471         help
472           This option adds a `tcpmss' match, which allows you to examine the
473           MSS value of TCP SYN packets, which control the maximum packet size
474           for that connection.
475
476           To compile it as a module, choose M here.  If unsure, say N.
477
478 config NETFILTER_XT_MATCH_HASHLIMIT
479         tristate '"hashlimit" match support'
480         depends on NETFILTER_XTABLES
481         help
482           This option adds a `hashlimit' match.
483
484           As opposed to `limit', this match dynamically creates a hash table
485           of limit buckets, based on your selection of source/destination
486           addresses and/or ports.
487
488           It enables you to express policies like `10kpps for any given
489           destination address' or `500pps from any given source address'
490           with a single rule.
491
492 endmenu
493