Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. #
  2. # IP netfilter configuration
  3. #
  4. menu "IP: Netfilter Configuration"
  5. depends on INET && NETFILTER
  6. config NF_DEFRAG_IPV4
  7. tristate
  8. default n
  9. config NF_CONNTRACK_IPV4
  10. tristate "IPv4 connection tracking support (required for NAT)"
  11. depends on NF_CONNTRACK
  12. default m if NETFILTER_ADVANCED=n
  13. select NF_DEFRAG_IPV4
  14. ---help---
  15. Connection tracking keeps a record of what packets have passed
  16. through your machine, in order to figure out how they are related
  17. into connections.
  18. This is IPv4 support on Layer 3 independent connection tracking.
  19. Layer 3 independent connection tracking is experimental scheme
  20. which generalize ip_conntrack to support other layer 3 protocols.
  21. To compile it as a module, choose M here. If unsure, say N.
  22. config NF_CONNTRACK_PROC_COMPAT
  23. bool "proc/sysctl compatibility with old connection tracking"
  24. depends on NF_CONNTRACK_IPV4
  25. default y
  26. help
  27. This option enables /proc and sysctl compatibility with the old
  28. layer 3 dependent connection tracking. This is needed to keep
  29. old programs that have not been adapted to the new names working.
  30. If unsure, say Y.
  31. config IP_NF_QUEUE
  32. tristate "IP Userspace queueing via NETLINK (OBSOLETE)"
  33. depends on NETFILTER_ADVANCED
  34. help
  35. Netfilter has the ability to queue packets to user space: the
  36. netlink device can be used to access them using this driver.
  37. This option enables the old IPv4-only "ip_queue" implementation
  38. which has been obsoleted by the new "nfnetlink_queue" code (see
  39. CONFIG_NETFILTER_NETLINK_QUEUE).
  40. To compile it as a module, choose M here. If unsure, say N.
  41. config IP_NF_IPTABLES
  42. tristate "IP tables support (required for filtering/masq/NAT)"
  43. default m if NETFILTER_ADVANCED=n
  44. select NETFILTER_XTABLES
  45. help
  46. iptables is a general, extensible packet identification framework.
  47. The packet filtering and full NAT (masquerading, port forwarding,
  48. etc) subsystems now use this: say `Y' or `M' here if you want to use
  49. either of those.
  50. To compile it as a module, choose M here. If unsure, say N.
  51. if IP_NF_IPTABLES
  52. # The matches.
  53. config IP_NF_MATCH_AH
  54. tristate '"ah" match support'
  55. depends on NETFILTER_ADVANCED
  56. help
  57. This match extension allows you to match a range of SPIs
  58. inside AH header of IPSec packets.
  59. To compile it as a module, choose M here. If unsure, say N.
  60. config IP_NF_MATCH_ECN
  61. tristate '"ecn" match support'
  62. depends on NETFILTER_ADVANCED
  63. help
  64. This option adds a `ECN' match, which allows you to match against
  65. the IPv4 and TCP header ECN fields.
  66. To compile it as a module, choose M here. If unsure, say N.
  67. config IP_NF_MATCH_TTL
  68. tristate '"ttl" match support'
  69. depends on NETFILTER_ADVANCED
  70. select NETFILTER_XT_MATCH_HL
  71. ---help---
  72. This is a backwards-compat option for the user's convenience
  73. (e.g. when running oldconfig). It selects
  74. CONFIG_NETFILTER_XT_MATCH_HL.
  75. # `filter', generic and specific targets
  76. config IP_NF_FILTER
  77. tristate "Packet filtering"
  78. default m if NETFILTER_ADVANCED=n
  79. help
  80. Packet filtering defines a table `filter', which has a series of
  81. rules for simple packet filtering at local input, forwarding and
  82. local output. See the man page for iptables(8).
  83. To compile it as a module, choose M here. If unsure, say N.
  84. config IP_NF_TARGET_REJECT
  85. tristate "REJECT target support"
  86. depends on IP_NF_FILTER
  87. default m if NETFILTER_ADVANCED=n
  88. help
  89. The REJECT target allows a filtering rule to specify that an ICMP
  90. error should be issued in response to an incoming packet, rather
  91. than silently being dropped.
  92. To compile it as a module, choose M here. If unsure, say N.
  93. config IP_NF_TARGET_REJECT_SKERR
  94. bool "Force socket error when rejecting with icmp*"
  95. depends on IP_NF_TARGET_REJECT
  96. default n
  97. help
  98. This option enables turning a "--reject-with icmp*" into a matching
  99. socket error also.
  100. The REJECT target normally allows sending an ICMP message. But it
  101. leaves the local socket unaware of any ingress rejects.
  102. If unsure, say N.
  103. config IP_NF_TARGET_LOG
  104. tristate "LOG target support"
  105. default m if NETFILTER_ADVANCED=n
  106. help
  107. This option adds a `LOG' target, which allows you to create rules in
  108. any iptables table which records the packet header to the syslog.
  109. To compile it as a module, choose M here. If unsure, say N.
  110. config IP_NF_TARGET_ULOG
  111. tristate "ULOG target support"
  112. default m if NETFILTER_ADVANCED=n
  113. ---help---
  114. This option enables the old IPv4-only "ipt_ULOG" implementation
  115. which has been obsoleted by the new "nfnetlink_log" code (see
  116. CONFIG_NETFILTER_NETLINK_LOG).
  117. This option adds a `ULOG' target, which allows you to create rules in
  118. any iptables table. The packet is passed to a userspace logging
  119. daemon using netlink multicast sockets; unlike the LOG target
  120. which can only be viewed through syslog.
  121. The appropriate userspace logging daemon (ulogd) may be obtained from
  122. <http://www.netfilter.org/projects/ulogd/index.html>
  123. To compile it as a module, choose M here. If unsure, say N.
  124. # NAT + specific targets: nf_conntrack
  125. config NF_NAT
  126. tristate "Full NAT"
  127. depends on NF_CONNTRACK_IPV4
  128. default m if NETFILTER_ADVANCED=n
  129. help
  130. The Full NAT option allows masquerading, port forwarding and other
  131. forms of full Network Address Port Translation. It is controlled by
  132. the `nat' table in iptables: see the man page for iptables(8).
  133. To compile it as a module, choose M here. If unsure, say N.
  134. config NF_NAT_NEEDED
  135. bool
  136. depends on NF_NAT
  137. default y
  138. config IP_NF_TARGET_MASQUERADE
  139. tristate "MASQUERADE target support"
  140. depends on NF_NAT
  141. default m if NETFILTER_ADVANCED=n
  142. help
  143. Masquerading is a special case of NAT: all outgoing connections are
  144. changed to seem to come from a particular interface's address, and
  145. if the interface goes down, those connections are lost. This is
  146. only useful for dialup accounts with dynamic IP address (ie. your IP
  147. address will be different on next dialup).
  148. To compile it as a module, choose M here. If unsure, say N.
  149. config IP_NF_TARGET_NETMAP
  150. tristate "NETMAP target support"
  151. depends on NF_NAT
  152. depends on NETFILTER_ADVANCED
  153. help
  154. NETMAP is an implementation of static 1:1 NAT mapping of network
  155. addresses. It maps the network address part, while keeping the host
  156. address part intact.
  157. To compile it as a module, choose M here. If unsure, say N.
  158. config IP_NF_TARGET_REDIRECT
  159. tristate "REDIRECT target support"
  160. depends on NF_NAT
  161. depends on NETFILTER_ADVANCED
  162. help
  163. REDIRECT is a special case of NAT: all incoming connections are
  164. mapped onto the incoming interface's address, causing the packets to
  165. come to the local machine instead of passing through. This is
  166. useful for transparent proxies.
  167. To compile it as a module, choose M here. If unsure, say N.
  168. config NF_NAT_SNMP_BASIC
  169. tristate "Basic SNMP-ALG support"
  170. depends on NF_CONNTRACK_SNMP && NF_NAT
  171. depends on NETFILTER_ADVANCED
  172. default NF_NAT && NF_CONNTRACK_SNMP
  173. ---help---
  174. This module implements an Application Layer Gateway (ALG) for
  175. SNMP payloads. In conjunction with NAT, it allows a network
  176. management system to access multiple private networks with
  177. conflicting addresses. It works by modifying IP addresses
  178. inside SNMP payloads to match IP-layer NAT mapping.
  179. This is the "basic" form of SNMP-ALG, as described in RFC 2962
  180. To compile it as a module, choose M here. If unsure, say N.
  181. # If they want FTP, set to $CONFIG_IP_NF_NAT (m or y),
  182. # or $CONFIG_IP_NF_FTP (m or y), whichever is weaker.
  183. # From kconfig-language.txt:
  184. #
  185. # <expr> '&&' <expr> (6)
  186. #
  187. # (6) Returns the result of min(/expr/, /expr/).
  188. config NF_NAT_PROTO_DCCP
  189. tristate
  190. depends on NF_NAT && NF_CT_PROTO_DCCP
  191. default NF_NAT && NF_CT_PROTO_DCCP
  192. config NF_NAT_PROTO_GRE
  193. tristate
  194. depends on NF_NAT && NF_CT_PROTO_GRE
  195. config NF_NAT_PROTO_UDPLITE
  196. tristate
  197. depends on NF_NAT && NF_CT_PROTO_UDPLITE
  198. default NF_NAT && NF_CT_PROTO_UDPLITE
  199. config NF_NAT_PROTO_SCTP
  200. tristate
  201. default NF_NAT && NF_CT_PROTO_SCTP
  202. depends on NF_NAT && NF_CT_PROTO_SCTP
  203. select LIBCRC32C
  204. config NF_NAT_FTP
  205. tristate
  206. depends on NF_CONNTRACK && NF_NAT
  207. default NF_NAT && NF_CONNTRACK_FTP
  208. config NF_NAT_IRC
  209. tristate
  210. depends on NF_CONNTRACK && NF_NAT
  211. default NF_NAT && NF_CONNTRACK_IRC
  212. config NF_NAT_TFTP
  213. tristate
  214. depends on NF_CONNTRACK && NF_NAT
  215. default NF_NAT && NF_CONNTRACK_TFTP
  216. config NF_NAT_AMANDA
  217. tristate
  218. depends on NF_CONNTRACK && NF_NAT
  219. default NF_NAT && NF_CONNTRACK_AMANDA
  220. config NF_NAT_PPTP
  221. tristate
  222. depends on NF_CONNTRACK && NF_NAT
  223. default NF_NAT && NF_CONNTRACK_PPTP
  224. select NF_NAT_PROTO_GRE
  225. config NF_NAT_H323
  226. tristate
  227. depends on NF_CONNTRACK && NF_NAT
  228. default NF_NAT && NF_CONNTRACK_H323
  229. config NF_NAT_SIP
  230. tristate
  231. depends on NF_CONNTRACK && NF_NAT
  232. default NF_NAT && NF_CONNTRACK_SIP
  233. # mangle + specific targets
  234. config IP_NF_MANGLE
  235. tristate "Packet mangling"
  236. default m if NETFILTER_ADVANCED=n
  237. help
  238. This option adds a `mangle' table to iptables: see the man page for
  239. iptables(8). This table is used for various packet alterations
  240. which can effect how the packet is routed.
  241. To compile it as a module, choose M here. If unsure, say N.
  242. config IP_NF_TARGET_CLUSTERIP
  243. tristate "CLUSTERIP target support (EXPERIMENTAL)"
  244. depends on IP_NF_MANGLE && EXPERIMENTAL
  245. depends on NF_CONNTRACK_IPV4
  246. depends on NETFILTER_ADVANCED
  247. select NF_CONNTRACK_MARK
  248. help
  249. The CLUSTERIP target allows you to build load-balancing clusters of
  250. network servers without having a dedicated load-balancing
  251. router/server/switch.
  252. To compile it as a module, choose M here. If unsure, say N.
  253. config IP_NF_TARGET_ECN
  254. tristate "ECN target support"
  255. depends on IP_NF_MANGLE
  256. depends on NETFILTER_ADVANCED
  257. ---help---
  258. This option adds a `ECN' target, which can be used in the iptables mangle
  259. table.
  260. You can use this target to remove the ECN bits from the IPv4 header of
  261. an IP packet. This is particularly useful, if you need to work around
  262. existing ECN blackholes on the internet, but don't want to disable
  263. ECN support in general.
  264. To compile it as a module, choose M here. If unsure, say N.
  265. config IP_NF_TARGET_TTL
  266. tristate '"TTL" target support'
  267. depends on NETFILTER_ADVANCED && IP_NF_MANGLE
  268. select NETFILTER_XT_TARGET_HL
  269. ---help---
  270. This is a backwards-compatible option for the user's convenience
  271. (e.g. when running oldconfig). It selects
  272. CONFIG_NETFILTER_XT_TARGET_HL.
  273. # raw + specific targets
  274. config IP_NF_RAW
  275. tristate 'raw table support (required for NOTRACK/TRACE)'
  276. depends on NETFILTER_ADVANCED
  277. help
  278. This option adds a `raw' table to iptables. This table is the very
  279. first in the netfilter framework and hooks in at the PREROUTING
  280. and OUTPUT chains.
  281. If you want to compile it as a module, say M here and read
  282. <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
  283. # security table for MAC policy
  284. config IP_NF_SECURITY
  285. tristate "Security table"
  286. depends on SECURITY
  287. depends on NETFILTER_ADVANCED
  288. help
  289. This option adds a `security' table to iptables, for use
  290. with Mandatory Access Control (MAC) policy.
  291. If unsure, say N.
  292. endif # IP_NF_IPTABLES
  293. # ARP tables
  294. config IP_NF_ARPTABLES
  295. tristate "ARP tables support"
  296. select NETFILTER_XTABLES
  297. depends on NETFILTER_ADVANCED
  298. help
  299. arptables is a general, extensible packet identification framework.
  300. The ARP packet filtering and mangling (manipulation)subsystems
  301. use this: say Y or M here if you want to use either of those.
  302. To compile it as a module, choose M here. If unsure, say N.
  303. if IP_NF_ARPTABLES
  304. config IP_NF_ARPFILTER
  305. tristate "ARP packet filtering"
  306. help
  307. ARP packet filtering defines a table `filter', which has a series of
  308. rules for simple ARP packet filtering at local input and
  309. local output. On a bridge, you can also specify filtering rules
  310. for forwarded ARP packets. See the man page for arptables(8).
  311. To compile it as a module, choose M here. If unsure, say N.
  312. config IP_NF_ARP_MANGLE
  313. tristate "ARP payload mangling"
  314. help
  315. Allows altering the ARP packet payload: source and destination
  316. hardware and network addresses.
  317. endif # IP_NF_ARPTABLES
  318. endmenu