Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  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_PROCFS && 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. if NF_TABLES
  32. config NF_TABLES_IPV4
  33. tristate "IPv4 nf_tables support"
  34. help
  35. This option enables the IPv4 support for nf_tables.
  36. if NF_TABLES_IPV4
  37. config NFT_CHAIN_ROUTE_IPV4
  38. tristate "IPv4 nf_tables route chain support"
  39. help
  40. This option enables the "route" chain for IPv4 in nf_tables. This
  41. chain type is used to force packet re-routing after mangling header
  42. fields such as the source, destination, type of service and
  43. the packet mark.
  44. config NFT_REJECT_IPV4
  45. select NF_REJECT_IPV4
  46. default NFT_REJECT
  47. tristate
  48. config NFT_DUP_IPV4
  49. tristate "IPv4 nf_tables packet duplication support"
  50. depends on !NF_CONNTRACK || NF_CONNTRACK
  51. select NF_DUP_IPV4
  52. help
  53. This module enables IPv4 packet duplication support for nf_tables.
  54. endif # NF_TABLES_IPV4
  55. config NF_TABLES_ARP
  56. tristate "ARP nf_tables support"
  57. help
  58. This option enables the ARP support for nf_tables.
  59. endif # NF_TABLES
  60. config NF_DUP_IPV4
  61. tristate "Netfilter IPv4 packet duplication to alternate destination"
  62. depends on !NF_CONNTRACK || NF_CONNTRACK
  63. help
  64. This option enables the nf_dup_ipv4 core, which duplicates an IPv4
  65. packet to be rerouted to another destination.
  66. config NF_LOG_ARP
  67. tristate "ARP packet logging"
  68. default m if NETFILTER_ADVANCED=n
  69. select NF_LOG_COMMON
  70. config NF_LOG_IPV4
  71. tristate "IPv4 packet logging"
  72. default m if NETFILTER_ADVANCED=n
  73. select NF_LOG_COMMON
  74. config NF_REJECT_IPV4
  75. tristate "IPv4 packet rejection"
  76. default m if NETFILTER_ADVANCED=n
  77. config NF_NAT_IPV4
  78. tristate "IPv4 NAT"
  79. depends on NF_CONNTRACK_IPV4
  80. default m if NETFILTER_ADVANCED=n
  81. select NF_NAT
  82. help
  83. The IPv4 NAT option allows masquerading, port forwarding and other
  84. forms of full Network Address Port Translation. This can be
  85. controlled by iptables or nft.
  86. if NF_NAT_IPV4
  87. config NFT_CHAIN_NAT_IPV4
  88. depends on NF_TABLES_IPV4
  89. tristate "IPv4 nf_tables nat chain support"
  90. help
  91. This option enables the "nat" chain for IPv4 in nf_tables. This
  92. chain type is used to perform Network Address Translation (NAT)
  93. packet transformations such as the source, destination address and
  94. source and destination ports.
  95. config NF_NAT_MASQUERADE_IPV4
  96. tristate "IPv4 masquerade support"
  97. help
  98. This is the kernel functionality to provide NAT in the masquerade
  99. flavour (automatic source address selection).
  100. config NFT_MASQ_IPV4
  101. tristate "IPv4 masquerading support for nf_tables"
  102. depends on NF_TABLES_IPV4
  103. depends on NFT_MASQ
  104. select NF_NAT_MASQUERADE_IPV4
  105. help
  106. This is the expression that provides IPv4 masquerading support for
  107. nf_tables.
  108. config NFT_REDIR_IPV4
  109. tristate "IPv4 redirect support for nf_tables"
  110. depends on NF_TABLES_IPV4
  111. depends on NFT_REDIR
  112. select NF_NAT_REDIRECT
  113. help
  114. This is the expression that provides IPv4 redirect support for
  115. nf_tables.
  116. config NF_NAT_SNMP_BASIC
  117. tristate "Basic SNMP-ALG support"
  118. depends on NF_CONNTRACK_SNMP
  119. depends on NETFILTER_ADVANCED
  120. default NF_NAT && NF_CONNTRACK_SNMP
  121. ---help---
  122. This module implements an Application Layer Gateway (ALG) for
  123. SNMP payloads. In conjunction with NAT, it allows a network
  124. management system to access multiple private networks with
  125. conflicting addresses. It works by modifying IP addresses
  126. inside SNMP payloads to match IP-layer NAT mapping.
  127. This is the "basic" form of SNMP-ALG, as described in RFC 2962
  128. To compile it as a module, choose M here. If unsure, say N.
  129. config NF_NAT_PROTO_GRE
  130. tristate
  131. depends on NF_CT_PROTO_GRE
  132. config NF_NAT_PPTP
  133. tristate
  134. depends on NF_CONNTRACK
  135. default NF_CONNTRACK_PPTP
  136. select NF_NAT_PROTO_GRE
  137. config NF_NAT_H323
  138. tristate
  139. depends on NF_CONNTRACK
  140. default NF_CONNTRACK_H323
  141. endif # NF_NAT_IPV4
  142. config IP_NF_IPTABLES
  143. tristate "IP tables support (required for filtering/masq/NAT)"
  144. default m if NETFILTER_ADVANCED=n
  145. select NETFILTER_XTABLES
  146. help
  147. iptables is a general, extensible packet identification framework.
  148. The packet filtering and full NAT (masquerading, port forwarding,
  149. etc) subsystems now use this: say `Y' or `M' here if you want to use
  150. either of those.
  151. To compile it as a module, choose M here. If unsure, say N.
  152. if IP_NF_IPTABLES
  153. # The matches.
  154. config IP_NF_MATCH_AH
  155. tristate '"ah" match support'
  156. depends on NETFILTER_ADVANCED
  157. help
  158. This match extension allows you to match a range of SPIs
  159. inside AH header of IPSec packets.
  160. To compile it as a module, choose M here. If unsure, say N.
  161. config IP_NF_MATCH_ECN
  162. tristate '"ecn" match support'
  163. depends on NETFILTER_ADVANCED
  164. select NETFILTER_XT_MATCH_ECN
  165. ---help---
  166. This is a backwards-compat option for the user's convenience
  167. (e.g. when running oldconfig). It selects
  168. CONFIG_NETFILTER_XT_MATCH_ECN.
  169. config IP_NF_MATCH_RPFILTER
  170. tristate '"rpfilter" reverse path filter match support'
  171. depends on NETFILTER_ADVANCED
  172. depends on IP_NF_MANGLE || IP_NF_RAW
  173. ---help---
  174. This option allows you to match packets whose replies would
  175. go out via the interface the packet came in.
  176. To compile it as a module, choose M here. If unsure, say N.
  177. The module will be called ipt_rpfilter.
  178. config IP_NF_MATCH_TTL
  179. tristate '"ttl" match support'
  180. depends on NETFILTER_ADVANCED
  181. select NETFILTER_XT_MATCH_HL
  182. ---help---
  183. This is a backwards-compat option for the user's convenience
  184. (e.g. when running oldconfig). It selects
  185. CONFIG_NETFILTER_XT_MATCH_HL.
  186. # `filter', generic and specific targets
  187. config IP_NF_FILTER
  188. tristate "Packet filtering"
  189. default m if NETFILTER_ADVANCED=n
  190. help
  191. Packet filtering defines a table `filter', which has a series of
  192. rules for simple packet filtering at local input, forwarding and
  193. local output. See the man page for iptables(8).
  194. To compile it as a module, choose M here. If unsure, say N.
  195. config IP_NF_TARGET_REJECT
  196. tristate "REJECT target support"
  197. depends on IP_NF_FILTER
  198. select NF_REJECT_IPV4
  199. default m if NETFILTER_ADVANCED=n
  200. help
  201. The REJECT target allows a filtering rule to specify that an ICMP
  202. error should be issued in response to an incoming packet, rather
  203. than silently being dropped.
  204. To compile it as a module, choose M here. If unsure, say N.
  205. config IP_NF_TARGET_SYNPROXY
  206. tristate "SYNPROXY target support"
  207. depends on NF_CONNTRACK && NETFILTER_ADVANCED
  208. select NETFILTER_SYNPROXY
  209. select SYN_COOKIES
  210. help
  211. The SYNPROXY target allows you to intercept TCP connections and
  212. establish them using syncookies before they are passed on to the
  213. server. This allows to avoid conntrack and server resource usage
  214. during SYN-flood attacks.
  215. To compile it as a module, choose M here. If unsure, say N.
  216. # NAT + specific targets: nf_conntrack
  217. config IP_NF_NAT
  218. tristate "iptables NAT support"
  219. depends on NF_CONNTRACK_IPV4
  220. default m if NETFILTER_ADVANCED=n
  221. select NF_NAT
  222. select NF_NAT_IPV4
  223. select NETFILTER_XT_NAT
  224. help
  225. This enables the `nat' table in iptables. This allows masquerading,
  226. port forwarding and other forms of full Network Address Port
  227. Translation.
  228. To compile it as a module, choose M here. If unsure, say N.
  229. if IP_NF_NAT
  230. config IP_NF_TARGET_MASQUERADE
  231. tristate "MASQUERADE target support"
  232. select NF_NAT_MASQUERADE_IPV4
  233. default m if NETFILTER_ADVANCED=n
  234. help
  235. Masquerading is a special case of NAT: all outgoing connections are
  236. changed to seem to come from a particular interface's address, and
  237. if the interface goes down, those connections are lost. This is
  238. only useful for dialup accounts with dynamic IP address (ie. your IP
  239. address will be different on next dialup).
  240. To compile it as a module, choose M here. If unsure, say N.
  241. config IP_NF_TARGET_NETMAP
  242. tristate "NETMAP target support"
  243. depends on NETFILTER_ADVANCED
  244. select NETFILTER_XT_TARGET_NETMAP
  245. ---help---
  246. This is a backwards-compat option for the user's convenience
  247. (e.g. when running oldconfig). It selects
  248. CONFIG_NETFILTER_XT_TARGET_NETMAP.
  249. config IP_NF_TARGET_REDIRECT
  250. tristate "REDIRECT target support"
  251. depends on NETFILTER_ADVANCED
  252. select NETFILTER_XT_TARGET_REDIRECT
  253. ---help---
  254. This is a backwards-compat option for the user's convenience
  255. (e.g. when running oldconfig). It selects
  256. CONFIG_NETFILTER_XT_TARGET_REDIRECT.
  257. endif # IP_NF_NAT
  258. # mangle + specific targets
  259. config IP_NF_MANGLE
  260. tristate "Packet mangling"
  261. default m if NETFILTER_ADVANCED=n
  262. help
  263. This option adds a `mangle' table to iptables: see the man page for
  264. iptables(8). This table is used for various packet alterations
  265. which can effect how the packet is routed.
  266. To compile it as a module, choose M here. If unsure, say N.
  267. config IP_NF_TARGET_CLUSTERIP
  268. tristate "CLUSTERIP target support"
  269. depends on IP_NF_MANGLE
  270. depends on NF_CONNTRACK_IPV4
  271. depends on NETFILTER_ADVANCED
  272. select NF_CONNTRACK_MARK
  273. help
  274. The CLUSTERIP target allows you to build load-balancing clusters of
  275. network servers without having a dedicated load-balancing
  276. router/server/switch.
  277. To compile it as a module, choose M here. If unsure, say N.
  278. config IP_NF_TARGET_ECN
  279. tristate "ECN target support"
  280. depends on IP_NF_MANGLE
  281. depends on NETFILTER_ADVANCED
  282. ---help---
  283. This option adds a `ECN' target, which can be used in the iptables mangle
  284. table.
  285. You can use this target to remove the ECN bits from the IPv4 header of
  286. an IP packet. This is particularly useful, if you need to work around
  287. existing ECN blackholes on the internet, but don't want to disable
  288. ECN support in general.
  289. To compile it as a module, choose M here. If unsure, say N.
  290. config IP_NF_TARGET_TTL
  291. tristate '"TTL" target support'
  292. depends on NETFILTER_ADVANCED && IP_NF_MANGLE
  293. select NETFILTER_XT_TARGET_HL
  294. ---help---
  295. This is a backwards-compatible option for the user's convenience
  296. (e.g. when running oldconfig). It selects
  297. CONFIG_NETFILTER_XT_TARGET_HL.
  298. # raw + specific targets
  299. config IP_NF_RAW
  300. tristate 'raw table support (required for NOTRACK/TRACE)'
  301. help
  302. This option adds a `raw' table to iptables. This table is the very
  303. first in the netfilter framework and hooks in at the PREROUTING
  304. and OUTPUT chains.
  305. If you want to compile it as a module, say M here and read
  306. <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
  307. # security table for MAC policy
  308. config IP_NF_SECURITY
  309. tristate "Security table"
  310. depends on SECURITY
  311. depends on NETFILTER_ADVANCED
  312. help
  313. This option adds a `security' table to iptables, for use
  314. with Mandatory Access Control (MAC) policy.
  315. If unsure, say N.
  316. endif # IP_NF_IPTABLES
  317. # ARP tables
  318. config IP_NF_ARPTABLES
  319. tristate "ARP tables support"
  320. select NETFILTER_XTABLES
  321. depends on NETFILTER_ADVANCED
  322. help
  323. arptables is a general, extensible packet identification framework.
  324. The ARP packet filtering and mangling (manipulation)subsystems
  325. use this: say Y or M here if you want to use either of those.
  326. To compile it as a module, choose M here. If unsure, say N.
  327. if IP_NF_ARPTABLES
  328. config IP_NF_ARPFILTER
  329. tristate "ARP packet filtering"
  330. help
  331. ARP packet filtering defines a table `filter', which has a series of
  332. rules for simple ARP packet filtering at local input and
  333. local output. On a bridge, you can also specify filtering rules
  334. for forwarded ARP packets. See the man page for arptables(8).
  335. To compile it as a module, choose M here. If unsure, say N.
  336. config IP_NF_ARP_MANGLE
  337. tristate "ARP payload mangling"
  338. help
  339. Allows altering the ARP packet payload: source and destination
  340. hardware and network addresses.
  341. endif # IP_NF_ARPTABLES
  342. endmenu