[NETFILTER]: Add CONFIG_NETFILTER_ADVANCED option
[safe/jmp/linux-2.6] / net / ipv4 / netfilter / Kconfig
1 #
2 # IP netfilter configuration
3 #
4
5 menu "IP: Netfilter Configuration"
6         depends on INET && NETFILTER
7
8 config NF_CONNTRACK_IPV4
9         tristate "IPv4 connection tracking support (required for NAT)"
10         depends on NF_CONNTRACK
11         default m if NETFILTER_ADVANCED=n
12         ---help---
13           Connection tracking keeps a record of what packets have passed
14           through your machine, in order to figure out how they are related
15           into connections.
16
17           This is IPv4 support on Layer 3 independent connection tracking.
18           Layer 3 independent connection tracking is experimental scheme
19           which generalize ip_conntrack to support other layer 3 protocols.
20
21           To compile it as a module, choose M here.  If unsure, say N.
22
23 config NF_CONNTRACK_PROC_COMPAT
24         bool "proc/sysctl compatibility with old connection tracking"
25         depends on NF_CONNTRACK_IPV4
26         default y
27         help
28           This option enables /proc and sysctl compatibility with the old
29           layer 3 dependant connection tracking. This is needed to keep
30           old programs that have not been adapted to the new names working.
31
32           If unsure, say Y.
33
34 config IP_NF_QUEUE
35         tristate "IP Userspace queueing via NETLINK (OBSOLETE)"
36         depends on NETFILTER_ADVANCED
37         help
38           Netfilter has the ability to queue packets to user space: the
39           netlink device can be used to access them using this driver.
40
41           This option enables the old IPv4-only "ip_queue" implementation
42           which has been obsoleted by the new "nfnetlink_queue" code (see
43           CONFIG_NETFILTER_NETLINK_QUEUE).
44
45           To compile it as a module, choose M here.  If unsure, say N.
46
47 config IP_NF_IPTABLES
48         tristate "IP tables support (required for filtering/masq/NAT)"
49         default m if NETFILTER_ADVANCED=n
50         select NETFILTER_XTABLES
51         help
52           iptables is a general, extensible packet identification framework.
53           The packet filtering and full NAT (masquerading, port forwarding,
54           etc) subsystems now use this: say `Y' or `M' here if you want to use
55           either of those.
56
57           To compile it as a module, choose M here.  If unsure, say N.
58
59 # The matches.
60 config IP_NF_MATCH_IPRANGE
61         tristate '"iprange" match support'
62         depends on IP_NF_IPTABLES
63         depends on NETFILTER_ADVANCED
64         help
65           This option makes possible to match IP addresses against IP address
66           ranges.
67
68           To compile it as a module, choose M here.  If unsure, say N.
69
70 config IP_NF_MATCH_RECENT
71         tristate '"recent" match support'
72         depends on IP_NF_IPTABLES
73         depends on NETFILTER_ADVANCED
74         help
75           This match is used for creating one or many lists of recently
76           used addresses and then matching against that/those list(s).
77
78           Short options are available by using 'iptables -m recent -h'
79           Official Website: <http://snowman.net/projects/ipt_recent/>
80
81           To compile it as a module, choose M here.  If unsure, say N.
82
83 config IP_NF_MATCH_ECN
84         tristate '"ecn" match support'
85         depends on IP_NF_IPTABLES
86         depends on NETFILTER_ADVANCED
87         help
88           This option adds a `ECN' match, which allows you to match against
89           the IPv4 and TCP header ECN fields.
90
91           To compile it as a module, choose M here.  If unsure, say N.
92
93 config IP_NF_MATCH_AH
94         tristate '"ah" match support'
95         depends on IP_NF_IPTABLES
96         depends on NETFILTER_ADVANCED
97         help
98           This match extension allows you to match a range of SPIs
99           inside AH header of IPSec packets.
100
101           To compile it as a module, choose M here.  If unsure, say N.
102
103 config IP_NF_MATCH_TTL
104         tristate '"ttl" match support'
105         depends on IP_NF_IPTABLES
106         depends on NETFILTER_ADVANCED
107         help
108           This adds CONFIG_IP_NF_MATCH_TTL option, which enabled the user
109           to match packets by their TTL value.
110
111           To compile it as a module, choose M here.  If unsure, say N.
112
113 config IP_NF_MATCH_ADDRTYPE
114         tristate '"addrtype" address type match support'
115         depends on IP_NF_IPTABLES
116         depends on NETFILTER_ADVANCED
117         help
118           This option allows you to match what routing thinks of an address,
119           eg. UNICAST, LOCAL, BROADCAST, ...
120
121           If you want to compile it as a module, say M here and read
122           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
123
124 # `filter', generic and specific targets
125 config IP_NF_FILTER
126         tristate "Packet filtering"
127         depends on IP_NF_IPTABLES
128         default m if NETFILTER_ADVANCED=n
129         help
130           Packet filtering defines a table `filter', which has a series of
131           rules for simple packet filtering at local input, forwarding and
132           local output.  See the man page for iptables(8).
133
134           To compile it as a module, choose M here.  If unsure, say N.
135
136 config IP_NF_TARGET_REJECT
137         tristate "REJECT target support"
138         depends on IP_NF_FILTER
139         default m if NETFILTER_ADVANCED=n
140         help
141           The REJECT target allows a filtering rule to specify that an ICMP
142           error should be issued in response to an incoming packet, rather
143           than silently being dropped.
144
145           To compile it as a module, choose M here.  If unsure, say N.
146
147 config IP_NF_TARGET_LOG
148         tristate "LOG target support"
149         depends on IP_NF_IPTABLES
150         default m if NETFILTER_ADVANCED=n
151         help
152           This option adds a `LOG' target, which allows you to create rules in
153           any iptables table which records the packet header to the syslog.
154
155           To compile it as a module, choose M here.  If unsure, say N.
156
157 config IP_NF_TARGET_ULOG
158         tristate "ULOG target support"
159         depends on IP_NF_IPTABLES
160         default m if NETFILTER_ADVANCED=n
161         ---help---
162
163           This option enables the old IPv4-only "ipt_ULOG" implementation
164           which has been obsoleted by the new "nfnetlink_log" code (see
165           CONFIG_NETFILTER_NETLINK_LOG).
166
167           This option adds a `ULOG' target, which allows you to create rules in
168           any iptables table. The packet is passed to a userspace logging
169           daemon using netlink multicast sockets; unlike the LOG target
170           which can only be viewed through syslog.
171
172           The appropriate userspace logging daemon (ulogd) may be obtained from
173           <http://www.gnumonks.org/projects/ulogd/>
174
175           To compile it as a module, choose M here.  If unsure, say N.
176
177 # NAT + specific targets: nf_conntrack
178 config NF_NAT
179         tristate "Full NAT"
180         depends on IP_NF_IPTABLES && NF_CONNTRACK_IPV4
181         default m if NETFILTER_ADVANCED=n
182         help
183           The Full NAT option allows masquerading, port forwarding and other
184           forms of full Network Address Port Translation.  It is controlled by
185           the `nat' table in iptables: see the man page for iptables(8).
186
187           To compile it as a module, choose M here.  If unsure, say N.
188
189 config NF_NAT_NEEDED
190         bool
191         depends on NF_NAT
192         default y
193
194 config IP_NF_TARGET_MASQUERADE
195         tristate "MASQUERADE target support"
196         depends on NF_NAT
197         default m if NETFILTER_ADVANCED=n
198         help
199           Masquerading is a special case of NAT: all outgoing connections are
200           changed to seem to come from a particular interface's address, and
201           if the interface goes down, those connections are lost.  This is
202           only useful for dialup accounts with dynamic IP address (ie. your IP
203           address will be different on next dialup).
204
205           To compile it as a module, choose M here.  If unsure, say N.
206
207 config IP_NF_TARGET_REDIRECT
208         tristate "REDIRECT target support"
209         depends on NF_NAT
210         depends on NETFILTER_ADVANCED
211         help
212           REDIRECT is a special case of NAT: all incoming connections are
213           mapped onto the incoming interface's address, causing the packets to
214           come to the local machine instead of passing through.  This is
215           useful for transparent proxies.
216
217           To compile it as a module, choose M here.  If unsure, say N.
218
219 config IP_NF_TARGET_NETMAP
220         tristate "NETMAP target support"
221         depends on NF_NAT
222         depends on NETFILTER_ADVANCED
223         help
224           NETMAP is an implementation of static 1:1 NAT mapping of network
225           addresses. It maps the network address part, while keeping the host
226           address part intact. It is similar to Fast NAT, except that
227           Netfilter's connection tracking doesn't work well with Fast NAT.
228
229           To compile it as a module, choose M here.  If unsure, say N.
230
231 config NF_NAT_SNMP_BASIC
232         tristate "Basic SNMP-ALG support (EXPERIMENTAL)"
233         depends on EXPERIMENTAL && NF_NAT
234         depends on NETFILTER_ADVANCED
235         ---help---
236
237           This module implements an Application Layer Gateway (ALG) for
238           SNMP payloads.  In conjunction with NAT, it allows a network
239           management system to access multiple private networks with
240           conflicting addresses.  It works by modifying IP addresses
241           inside SNMP payloads to match IP-layer NAT mapping.
242
243           This is the "basic" form of SNMP-ALG, as described in RFC 2962
244
245           To compile it as a module, choose M here.  If unsure, say N.
246
247 # If they want FTP, set to $CONFIG_IP_NF_NAT (m or y),
248 # or $CONFIG_IP_NF_FTP (m or y), whichever is weaker.
249 # From kconfig-language.txt:
250 #
251 #           <expr> '&&' <expr>                   (6)
252 #
253 # (6) Returns the result of min(/expr/, /expr/).
254 config NF_NAT_PROTO_GRE
255         tristate
256         depends on NF_NAT && NF_CT_PROTO_GRE
257
258 config NF_NAT_FTP
259         tristate
260         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
261         default NF_NAT && NF_CONNTRACK_FTP
262
263 config NF_NAT_IRC
264         tristate
265         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
266         default NF_NAT && NF_CONNTRACK_IRC
267
268 config NF_NAT_TFTP
269         tristate
270         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
271         default NF_NAT && NF_CONNTRACK_TFTP
272
273 config NF_NAT_AMANDA
274         tristate
275         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
276         default NF_NAT && NF_CONNTRACK_AMANDA
277
278 config NF_NAT_PPTP
279         tristate
280         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
281         default NF_NAT && NF_CONNTRACK_PPTP
282         select NF_NAT_PROTO_GRE
283
284 config NF_NAT_H323
285         tristate
286         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
287         default NF_NAT && NF_CONNTRACK_H323
288
289 config NF_NAT_SIP
290         tristate
291         depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
292         default NF_NAT && NF_CONNTRACK_SIP
293
294 # mangle + specific targets
295 config IP_NF_MANGLE
296         tristate "Packet mangling"
297         depends on IP_NF_IPTABLES
298         default m if NETFILTER_ADVANCED=n
299         help
300           This option adds a `mangle' table to iptables: see the man page for
301           iptables(8).  This table is used for various packet alterations
302           which can effect how the packet is routed.
303
304           To compile it as a module, choose M here.  If unsure, say N.
305
306 config IP_NF_TARGET_ECN
307         tristate "ECN target support"
308         depends on IP_NF_MANGLE
309         depends on NETFILTER_ADVANCED
310         ---help---
311           This option adds a `ECN' target, which can be used in the iptables mangle
312           table.  
313
314           You can use this target to remove the ECN bits from the IPv4 header of
315           an IP packet.  This is particularly useful, if you need to work around
316           existing ECN blackholes on the internet, but don't want to disable
317           ECN support in general.
318
319           To compile it as a module, choose M here.  If unsure, say N.
320
321 config IP_NF_TARGET_TTL
322         tristate  'TTL target support'
323         depends on IP_NF_MANGLE
324         depends on NETFILTER_ADVANCED
325         help
326           This option adds a `TTL' target, which enables the user to modify
327           the TTL value of the IP header.
328
329           While it is safe to decrement/lower the TTL, this target also enables
330           functionality to increment and set the TTL value of the IP header to
331           arbitrary values.  This is EXTREMELY DANGEROUS since you can easily
332           create immortal packets that loop forever on the network.
333
334           To compile it as a module, choose M here.  If unsure, say N.
335
336 config IP_NF_TARGET_CLUSTERIP
337         tristate "CLUSTERIP target support (EXPERIMENTAL)"
338         depends on IP_NF_MANGLE && EXPERIMENTAL
339         depends on NF_CONNTRACK_IPV4
340         depends on NETFILTER_ADVANCED
341         select NF_CONNTRACK_MARK
342         help
343           The CLUSTERIP target allows you to build load-balancing clusters of
344           network servers without having a dedicated load-balancing
345           router/server/switch.
346         
347           To compile it as a module, choose M here.  If unsure, say N.
348
349 # raw + specific targets
350 config IP_NF_RAW
351         tristate  'raw table support (required for NOTRACK/TRACE)'
352         depends on IP_NF_IPTABLES
353         depends on NETFILTER_ADVANCED
354         help
355           This option adds a `raw' table to iptables. This table is the very
356           first in the netfilter framework and hooks in at the PREROUTING
357           and OUTPUT chains.
358         
359           If you want to compile it as a module, say M here and read
360           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
361
362 # ARP tables
363 config IP_NF_ARPTABLES
364         tristate "ARP tables support"
365         select NETFILTER_XTABLES
366         depends on NETFILTER_ADVANCED
367         help
368           arptables is a general, extensible packet identification framework.
369           The ARP packet filtering and mangling (manipulation)subsystems
370           use this: say Y or M here if you want to use either of those.
371
372           To compile it as a module, choose M here.  If unsure, say N.
373
374 config IP_NF_ARPFILTER
375         tristate "ARP packet filtering"
376         depends on IP_NF_ARPTABLES
377         help
378           ARP packet filtering defines a table `filter', which has a series of
379           rules for simple ARP packet filtering at local input and
380           local output.  On a bridge, you can also specify filtering rules
381           for forwarded ARP packets. See the man page for arptables(8).
382
383           To compile it as a module, choose M here.  If unsure, say N.
384
385 config IP_NF_ARP_MANGLE
386         tristate "ARP payload mangling"
387         depends on IP_NF_ARPTABLES
388         help
389           Allows altering the ARP packet payload: source and destination
390           hardware and network addresses.
391
392 endmenu
393