Kconfig 17 KB

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