Kconfig 20 KB

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