fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / net / netfilter / Kconfig
index a8e5544..80107d4 100644 (file)
@@ -1,5 +1,5 @@
 menu "Core Netfilter Configuration"
-       depends on NET && NETFILTER
+       depends on NET && INET && NETFILTER
 
 config NETFILTER_NETLINK
        tristate "Netfilter netlink interface"
@@ -11,7 +11,7 @@ config NETFILTER_NETLINK_QUEUE
        tristate "Netfilter NFQUEUE over NFNETLINK interface"
        depends on NETFILTER_NETLINK
        help
-         If this option isenabled, the kernel will include support
+         If this option is enabled, the kernel will include support
          for queueing packets via NFNETLINK.
          
 config NETFILTER_NETLINK_LOG
@@ -25,19 +25,56 @@ config NETFILTER_NETLINK_LOG
          and is also scheduled to replace the old syslog-based ipt_LOG
          and ip6t_LOG modules.
 
-config NF_CONNTRACK
-       tristate "Layer 3 Independent Connection tracking (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && IP_NF_CONNTRACK=n
-       default n
-       ---help---
+config NF_CONNTRACK_ENABLED
+       tristate "Netfilter connection tracking support"
+       help
          Connection tracking keeps a record of what packets have passed
          through your machine, in order to figure out how they are related
          into connections.
 
+         This is required to do Masquerading or other kinds of Network
+         Address Translation (except for Fast NAT).  It can also be used to
+         enhance packet filtering (see `Connection state match support'
+         below).
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+choice
+       prompt "Netfilter connection tracking support"
+       depends on NF_CONNTRACK_ENABLED
+
+config NF_CONNTRACK_SUPPORT
+       bool "Layer 3 Independent Connection tracking"
+       help
          Layer 3 independent connection tracking is experimental scheme
          which generalize ip_conntrack to support other layer 3 protocols.
 
-         To compile it as a module, choose M here.  If unsure, say N.
+         This is required to do Masquerading or other kinds of Network
+         Address Translation (except for Fast NAT).  It can also be used to
+         enhance packet filtering (see `Connection state match support'
+         below).
+
+config IP_NF_CONNTRACK_SUPPORT
+       bool "Layer 3 Dependent Connection tracking (OBSOLETE)"
+       help
+         The old, Layer 3 dependent ip_conntrack subsystem of netfilter.
+
+         This is required to do Masquerading or other kinds of Network
+         Address Translation (except for Fast NAT).  It can also be used to
+         enhance packet filtering (see `Connection state match support'
+         below).
+
+endchoice
+
+config NF_CONNTRACK
+       tristate
+       default m if NF_CONNTRACK_SUPPORT && NF_CONNTRACK_ENABLED=m
+       default y if NF_CONNTRACK_SUPPORT && NF_CONNTRACK_ENABLED=y
+
+config IP_NF_CONNTRACK
+       tristate
+       default m if IP_NF_CONNTRACK_SUPPORT && NF_CONNTRACK_ENABLED=m
+       default y if IP_NF_CONNTRACK_SUPPORT && NF_CONNTRACK_ENABLED=y
 
 config NF_CT_ACCT
        bool "Connection tracking flow accounting"
@@ -60,18 +97,34 @@ config NF_CONNTRACK_MARK
          of packets, but this mark value is kept in the conntrack session
          instead of the individual packets.
 
+config NF_CONNTRACK_SECMARK
+       bool  'Connection tracking security mark support'
+       depends on NF_CONNTRACK && NETWORK_SECMARK
+       help
+         This option enables security markings to be applied to
+         connections.  Typically they are copied to connections from
+         packets using the CONNSECMARK target and copied back from
+         connections to packets with the same target, with the packets
+         being originally labeled via SECMARK.
+
+         If unsure, say 'N'.
+
 config NF_CONNTRACK_EVENTS
        bool "Connection tracking events (EXPERIMENTAL)"
        depends on EXPERIMENTAL && NF_CONNTRACK
        help
          If this option is enabled, the connection tracking code will
          provide a notifier chain that can be used by other kernel code
-         to get notified aboutchanges in the connection tracking state.
+         to get notified about changes in the connection tracking state.
 
          If unsure, say `N'.
 
+config NF_CT_PROTO_GRE
+       tristate
+       depends on NF_CONNTRACK
+
 config NF_CT_PROTO_SCTP
-       tristate 'SCTP protocol on new connection tracking support (EXPERIMENTAL)'
+       tristate 'SCTP protocol connection tracking support (EXPERIMENTAL)'
        depends on EXPERIMENTAL && NF_CONNTRACK
        default n
        help
@@ -81,9 +134,24 @@ config NF_CT_PROTO_SCTP
          If you want to compile it as a module, say M here and read
          Documentation/modules.txt.  If unsure, say `N'.
 
+config NF_CONNTRACK_AMANDA
+       tristate "Amanda backup protocol support"
+       depends on NF_CONNTRACK
+       select TEXTSEARCH
+       select TEXTSEARCH_KMP
+       help
+         If you are running the Amanda backup package <http://www.amanda.org/>
+         on this machine or machines that will be MASQUERADED through this
+         machine, then you may want to enable this feature.  This allows the
+         connection tracking and natting code to allow the sub-channels that
+         Amanda requires for communication of the backup data, messages and
+         index.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NF_CONNTRACK_FTP
-       tristate "FTP support on new connection tracking (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && NF_CONNTRACK
+       tristate "FTP protocol support"
+       depends on NF_CONNTRACK
        help
          Tracking FTP connections is problematic: special helpers are
          required for tracking them, and doing masquerading and other forms
@@ -95,6 +163,101 @@ config NF_CONNTRACK_FTP
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config NF_CONNTRACK_H323
+       tristate "H.323 protocol support (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && NF_CONNTRACK && (IPV6 || IPV6=n)
+       help
+         H.323 is a VoIP signalling protocol from ITU-T. As one of the most
+         important VoIP protocols, it is widely used by voice hardware and
+         software including voice gateways, IP phones, Netmeeting, OpenPhone,
+         Gnomemeeting, etc.
+
+         With this module you can support H.323 on a connection tracking/NAT
+         firewall.
+
+         This module supports RAS, Fast Start, H.245 Tunnelling, Call
+         Forwarding, RTP/RTCP and T.120 based audio, video, fax, chat,
+         whiteboard, file transfer, etc. For more information, please
+         visit http://nath323.sourceforge.net/.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NF_CONNTRACK_IRC
+       tristate "IRC protocol support"
+       depends on NF_CONNTRACK
+       help
+         There is a commonly-used extension to IRC called
+         Direct Client-to-Client Protocol (DCC).  This enables users to send
+         files to each other, and also chat to each other without the need
+         of a server.  DCC Sending is used anywhere you send files over IRC,
+         and DCC Chat is most commonly used by Eggdrop bots.  If you are
+         using NAT, this extension will enable you to send files and initiate
+         chats.  Note that you do NOT need this extension to get files or
+         have others initiate chats, or everything else in IRC.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NF_CONNTRACK_NETBIOS_NS
+       tristate "NetBIOS name service protocol support (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && NF_CONNTRACK
+       help
+         NetBIOS name service requests are sent as broadcast messages from an
+         unprivileged port and responded to with unicast messages to the
+         same port. This make them hard to firewall properly because connection
+         tracking doesn't deal with broadcasts. This helper tracks locally
+         originating NetBIOS name service requests and the corresponding
+         responses. It relies on correct IP address configuration, specifically
+         netmask and broadcast address. When properly configured, the output
+         of "ip address show" should look similar to this:
+
+         $ ip -4 address show eth0
+         4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
+             inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NF_CONNTRACK_PPTP
+       tristate "PPtP protocol support"
+       depends on NF_CONNTRACK
+       select NF_CT_PROTO_GRE
+       help
+         This module adds support for PPTP (Point to Point Tunnelling
+         Protocol, RFC2637) connection tracking and NAT.
+
+         If you are running PPTP sessions over a stateful firewall or NAT
+         box, you may want to enable this feature.
+
+         Please note that not all PPTP modes of operation are supported yet.
+         Specifically these limitations exist:
+           - Blindy assumes that control connections are always established
+             in PNS->PAC direction. This is a violation of RFC2637.
+           - Only supports a single call within each session
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NF_CONNTRACK_SIP
+       tristate "SIP protocol support (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && NF_CONNTRACK
+       help
+         SIP is an application-layer control protocol that can establish,
+         modify, and terminate multimedia sessions (conferences) such as
+         Internet telephony calls. With the ip_conntrack_sip and
+         the nf_nat_sip modules you can support the protocol on a connection
+         tracking/NATing firewall.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NF_CONNTRACK_TFTP
+       tristate "TFTP protocol support"
+       depends on NF_CONNTRACK
+       help
+         TFTP connection tracking helper, this is required depending
+         on how restrictive your ruleset is.
+         If you are using a tftp client behind -j SNAT or -j MASQUERADING
+         you will need this.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NF_CT_NETLINK
        tristate 'Connection tracking netlink interface (EXPERIMENTAL)'
        depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
@@ -136,6 +299,18 @@ config NETFILTER_XT_TARGET_CONNMARK
          <file:Documentation/modules.txt>.  The module will be called
          ipt_CONNMARK.o.  If unsure, say `N'.
 
+config NETFILTER_XT_TARGET_DSCP
+       tristate '"DSCP" target support'
+       depends on NETFILTER_XTABLES
+       depends on IP_NF_MANGLE || IP6_NF_MANGLE
+       help
+         This option adds a `DSCP' target, which allows you to manipulate
+         the IPv4/IPv6 header DSCP field (differentiated services codepoint).
+
+         The DSCP field can have any value between 0x0 and 0x3f inclusive.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NETFILTER_XT_TARGET_MARK
        tristate '"MARK" target support'
        depends on NETFILTER_XTABLES
@@ -153,13 +328,24 @@ config NETFILTER_XT_TARGET_NFQUEUE
        tristate '"NFQUEUE" target Support'
        depends on NETFILTER_XTABLES
        help
-         This Target replaced the old obsolete QUEUE target.
+         This target replaced the old obsolete QUEUE target.
 
          As opposed to QUEUE, it supports 65535 different queues,
          not just one.
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config NETFILTER_XT_TARGET_NFLOG
+       tristate '"NFLOG" target support'
+       depends on NETFILTER_XTABLES
+       help
+         This option enables the NFLOG target, which allows to LOG
+         messages through the netfilter logging API, which can use
+         either the old LOG target, the old ULOG target or nfnetlink_log
+         as backend.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NETFILTER_XT_TARGET_NOTRACK
        tristate  '"NOTRACK" target support'
        depends on NETFILTER_XTABLES
@@ -174,6 +360,28 @@ config NETFILTER_XT_TARGET_NOTRACK
          If you want to compile it as a module, say M here and read
          <file:Documentation/modules.txt>.  If unsure, say `N'.
 
+config NETFILTER_XT_TARGET_SECMARK
+       tristate '"SECMARK" target support'
+       depends on NETFILTER_XTABLES && NETWORK_SECMARK
+       help
+         The SECMARK target allows security marking of network
+         packets, for use with security subsystems.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NETFILTER_XT_TARGET_CONNSECMARK
+       tristate '"CONNSECMARK" target support'
+       depends on NETFILTER_XTABLES && \
+                  ((NF_CONNTRACK && NF_CONNTRACK_SECMARK) || \
+                   (IP_NF_CONNTRACK && IP_NF_CONNTRACK_SECMARK))
+       help
+         The CONNSECMARK target copies security markings from packets
+         to connections, and restores security markings from connections
+         to packets (if the packets are not already marked).  This would
+         normally be used in conjunction with the SECMARK target.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NETFILTER_XT_MATCH_COMMENT
        tristate  '"comment" match support'
        depends on NETFILTER_XTABLES
@@ -231,6 +439,26 @@ config NETFILTER_XT_MATCH_DCCP
          If you want to compile it as a module, say M here and read
          <file:Documentation/modules.txt>.  If unsure, say `N'.
 
+config NETFILTER_XT_MATCH_DSCP
+       tristate '"DSCP" match support'
+       depends on NETFILTER_XTABLES
+       help
+         This option adds a `DSCP' match, which allows you to match against
+         the IPv4/IPv6 header DSCP field (differentiated services codepoint).
+
+         The DSCP field can have any value between 0x0 and 0x3f inclusive.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NETFILTER_XT_MATCH_ESP
+       tristate '"ESP" match support'
+       depends on NETFILTER_XTABLES
+       help
+         This match extension allows you to match a range of SPIs
+         inside ESP header of IPSec packets.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NETFILTER_XT_MATCH_HELPER
        tristate '"helper" match support'
        depends on NETFILTER_XTABLES
@@ -279,9 +507,29 @@ config NETFILTER_XT_MATCH_MARK
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config NETFILTER_XT_MATCH_POLICY
+       tristate 'IPsec "policy" match support'
+       depends on NETFILTER_XTABLES && XFRM
+       help
+         Policy matching allows you to match packets based on the
+         IPsec policy that was used during decapsulation/will
+         be used during encapsulation.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config NETFILTER_XT_MATCH_MULTIPORT
+       tristate "Multiple port match support"
+       depends on NETFILTER_XTABLES
+       help
+         Multiport matching allows you to match TCP or UDP packets based on
+         a series of source or destination ports: normally a rule can only
+         match a single range of ports.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NETFILTER_XT_MATCH_PHYSDEV
        tristate '"physdev" match support'
-       depends on NETFILTER_XTABLES && BRIDGE_NETFILTER
+       depends on NETFILTER_XTABLES && BRIDGE && BRIDGE_NETFILTER
        help
          Physdev packet matching matches against the physical bridge ports
          the IP packet arrived on or will leave by.
@@ -300,6 +548,16 @@ config NETFILTER_XT_MATCH_PKTTYPE
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config NETFILTER_XT_MATCH_QUOTA
+       tristate '"quota" match support'
+       depends on NETFILTER_XTABLES
+       help
+         This option adds a `quota' match, which allows to match on a
+         byte counter.
+
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
+
 config NETFILTER_XT_MATCH_REALM
        tristate  '"realm" match support'
        depends on NETFILTER_XTABLES
@@ -315,8 +573,8 @@ config NETFILTER_XT_MATCH_REALM
          <file:Documentation/modules.txt>.  If unsure, say `N'.
 
 config NETFILTER_XT_MATCH_SCTP
-       tristate  '"sctp" protocol match support'
-       depends on NETFILTER_XTABLES
+       tristate  '"sctp" protocol match support (EXPERIMENTAL)'
+       depends on NETFILTER_XTABLES && EXPERIMENTAL
        help
          With this option enabled, you will be able to use the 
          `sctp' match in order to match on SCTP source/destination ports
@@ -336,6 +594,15 @@ config NETFILTER_XT_MATCH_STATE
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config NETFILTER_XT_MATCH_STATISTIC
+       tristate '"statistic" match support'
+       depends on NETFILTER_XTABLES
+       help
+         This option adds a `statistic' match, which allows you to match
+         on packets periodically or randomly with a given percentage.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config NETFILTER_XT_MATCH_STRING
        tristate  '"string" match support'
        depends on NETFILTER_XTABLES
@@ -359,5 +626,19 @@ config NETFILTER_XT_MATCH_TCPMSS
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config NETFILTER_XT_MATCH_HASHLIMIT
+       tristate '"hashlimit" match support'
+       depends on NETFILTER_XTABLES && (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
+       help
+         This option adds a `hashlimit' match.
+
+         As opposed to `limit', this match dynamically creates a hash table
+         of limit buckets, based on your selection of source/destination
+         addresses and/or ports.
+
+         It enables you to express policies like `10kpps for any given
+         destination address' or `500pps from any given source address'
+         with a single rule.
+
 endmenu