Kconfig 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. #
  2. # IP netfilter configuration
  3. #
  4. menu "IPv6: Netfilter Configuration"
  5. depends on INET && IPV6 && NETFILTER
  6. config NF_DEFRAG_IPV6
  7. tristate
  8. default n
  9. config NF_CONNTRACK_IPV6
  10. tristate "IPv6 connection tracking support"
  11. depends on INET && IPV6 && NF_CONNTRACK
  12. default m if NETFILTER_ADVANCED=n
  13. select NF_DEFRAG_IPV6
  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 IPv6 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. if NF_TABLES
  23. config NF_TABLES_IPV6
  24. tristate "IPv6 nf_tables support"
  25. help
  26. This option enables the IPv6 support for nf_tables.
  27. if NF_TABLES_IPV6
  28. config NFT_CHAIN_ROUTE_IPV6
  29. tristate "IPv6 nf_tables route chain support"
  30. help
  31. This option enables the "route" chain for IPv6 in nf_tables. This
  32. chain type is used to force packet re-routing after mangling header
  33. fields such as the source, destination, flowlabel, hop-limit and
  34. the packet mark.
  35. config NFT_REJECT_IPV6
  36. select NF_REJECT_IPV6
  37. default NFT_REJECT
  38. tristate
  39. config NFT_DUP_IPV6
  40. tristate "IPv6 nf_tables packet duplication support"
  41. depends on !NF_CONNTRACK || NF_CONNTRACK
  42. select NF_DUP_IPV6
  43. help
  44. This module enables IPv6 packet duplication support for nf_tables.
  45. endif # NF_TABLES_IPV6
  46. endif # NF_TABLES
  47. config NF_DUP_IPV6
  48. tristate "Netfilter IPv6 packet duplication to alternate destination"
  49. depends on !NF_CONNTRACK || NF_CONNTRACK
  50. help
  51. This option enables the nf_dup_ipv6 core, which duplicates an IPv6
  52. packet to be rerouted to another destination.
  53. config NF_REJECT_IPV6
  54. tristate "IPv6 packet rejection"
  55. default m if NETFILTER_ADVANCED=n
  56. config NF_LOG_IPV6
  57. tristate "IPv6 packet logging"
  58. default m if NETFILTER_ADVANCED=n
  59. select NF_LOG_COMMON
  60. config NF_NAT_IPV6
  61. tristate "IPv6 NAT"
  62. depends on NF_CONNTRACK_IPV6
  63. depends on NETFILTER_ADVANCED
  64. select NF_NAT
  65. help
  66. The IPv6 NAT option allows masquerading, port forwarding and other
  67. forms of full Network Address Port Translation. This can be
  68. controlled by iptables or nft.
  69. if NF_NAT_IPV6
  70. config NFT_CHAIN_NAT_IPV6
  71. depends on NF_TABLES_IPV6
  72. tristate "IPv6 nf_tables nat chain support"
  73. help
  74. This option enables the "nat" chain for IPv6 in nf_tables. This
  75. chain type is used to perform Network Address Translation (NAT)
  76. packet transformations such as the source, destination address and
  77. source and destination ports.
  78. config NF_NAT_MASQUERADE_IPV6
  79. tristate "IPv6 masquerade support"
  80. help
  81. This is the kernel functionality to provide NAT in the masquerade
  82. flavour (automatic source address selection) for IPv6.
  83. config NFT_MASQ_IPV6
  84. tristate "IPv6 masquerade support for nf_tables"
  85. depends on NF_TABLES_IPV6
  86. depends on NFT_MASQ
  87. select NF_NAT_MASQUERADE_IPV6
  88. help
  89. This is the expression that provides IPv4 masquerading support for
  90. nf_tables.
  91. config NFT_REDIR_IPV6
  92. tristate "IPv6 redirect support for nf_tables"
  93. depends on NF_TABLES_IPV6
  94. depends on NFT_REDIR
  95. select NF_NAT_REDIRECT
  96. help
  97. This is the expression that provides IPv4 redirect support for
  98. nf_tables.
  99. endif # NF_NAT_IPV6
  100. config IP6_NF_IPTABLES
  101. tristate "IP6 tables support (required for filtering)"
  102. depends on INET && IPV6
  103. select NETFILTER_XTABLES
  104. default m if NETFILTER_ADVANCED=n
  105. help
  106. ip6tables is a general, extensible packet identification framework.
  107. Currently only the packet filtering and packet mangling subsystem
  108. for IPv6 use this, but connection tracking is going to follow.
  109. Say 'Y' or 'M' here if you want to use either of those.
  110. To compile it as a module, choose M here. If unsure, say N.
  111. if IP6_NF_IPTABLES
  112. # The simple matches.
  113. config IP6_NF_MATCH_AH
  114. tristate '"ah" match support'
  115. depends on NETFILTER_ADVANCED
  116. help
  117. This module allows one to match AH packets.
  118. To compile it as a module, choose M here. If unsure, say N.
  119. config IP6_NF_MATCH_EUI64
  120. tristate '"eui64" address check'
  121. depends on NETFILTER_ADVANCED
  122. help
  123. This module performs checking on the IPv6 source address
  124. Compares the last 64 bits with the EUI64 (delivered
  125. from the MAC address) address
  126. To compile it as a module, choose M here. If unsure, say N.
  127. config IP6_NF_MATCH_FRAG
  128. tristate '"frag" Fragmentation header match support'
  129. depends on NETFILTER_ADVANCED
  130. help
  131. frag matching allows you to match packets based on the fragmentation
  132. header of the packet.
  133. To compile it as a module, choose M here. If unsure, say N.
  134. config IP6_NF_MATCH_OPTS
  135. tristate '"hbh" hop-by-hop and "dst" opts header match support'
  136. depends on NETFILTER_ADVANCED
  137. help
  138. This allows one to match packets based on the hop-by-hop
  139. and destination options headers of a packet.
  140. To compile it as a module, choose M here. If unsure, say N.
  141. config IP6_NF_MATCH_HL
  142. tristate '"hl" hoplimit match support'
  143. depends on NETFILTER_ADVANCED
  144. select NETFILTER_XT_MATCH_HL
  145. ---help---
  146. This is a backwards-compat option for the user's convenience
  147. (e.g. when running oldconfig). It selects
  148. CONFIG_NETFILTER_XT_MATCH_HL.
  149. config IP6_NF_MATCH_IPV6HEADER
  150. tristate '"ipv6header" IPv6 Extension Headers Match'
  151. default m if NETFILTER_ADVANCED=n
  152. help
  153. This module allows one to match packets based upon
  154. the ipv6 extension headers.
  155. To compile it as a module, choose M here. If unsure, say N.
  156. config IP6_NF_MATCH_MH
  157. tristate '"mh" match support'
  158. depends on NETFILTER_ADVANCED
  159. help
  160. This module allows one to match MH packets.
  161. To compile it as a module, choose M here. If unsure, say N.
  162. config IP6_NF_MATCH_RPFILTER
  163. tristate '"rpfilter" reverse path filter match support'
  164. depends on NETFILTER_ADVANCED
  165. depends on IP6_NF_MANGLE || IP6_NF_RAW
  166. ---help---
  167. This option allows you to match packets whose replies would
  168. go out via the interface the packet came in.
  169. To compile it as a module, choose M here. If unsure, say N.
  170. The module will be called ip6t_rpfilter.
  171. config IP6_NF_MATCH_RT
  172. tristate '"rt" Routing header match support'
  173. depends on NETFILTER_ADVANCED
  174. help
  175. rt matching allows you to match packets based on the routing
  176. header of the packet.
  177. To compile it as a module, choose M here. If unsure, say N.
  178. # The targets
  179. config IP6_NF_TARGET_HL
  180. tristate '"HL" hoplimit target support'
  181. depends on NETFILTER_ADVANCED && IP6_NF_MANGLE
  182. select NETFILTER_XT_TARGET_HL
  183. ---help---
  184. This is a backwards-compatible option for the user's convenience
  185. (e.g. when running oldconfig). It selects
  186. CONFIG_NETFILTER_XT_TARGET_HL.
  187. config IP6_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 IP6_NF_TARGET_REJECT
  196. tristate "REJECT target support"
  197. depends on IP6_NF_FILTER
  198. select NF_REJECT_IPV6
  199. default m if NETFILTER_ADVANCED=n
  200. help
  201. The REJECT target allows a filtering rule to specify that an ICMPv6
  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 IP6_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. config IP6_NF_MANGLE
  217. tristate "Packet mangling"
  218. default m if NETFILTER_ADVANCED=n
  219. help
  220. This option adds a `mangle' table to iptables: see the man page for
  221. iptables(8). This table is used for various packet alterations
  222. which can effect how the packet is routed.
  223. To compile it as a module, choose M here. If unsure, say N.
  224. config IP6_NF_RAW
  225. tristate 'raw table support (required for TRACE)'
  226. help
  227. This option adds a `raw' table to ip6tables. This table is the very
  228. first in the netfilter framework and hooks in at the PREROUTING
  229. and OUTPUT chains.
  230. If you want to compile it as a module, say M here and read
  231. <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
  232. # security table for MAC policy
  233. config IP6_NF_SECURITY
  234. tristate "Security table"
  235. depends on SECURITY
  236. depends on NETFILTER_ADVANCED
  237. help
  238. This option adds a `security' table to iptables, for use
  239. with Mandatory Access Control (MAC) policy.
  240. If unsure, say N.
  241. config IP6_NF_NAT
  242. tristate "ip6tables NAT support"
  243. depends on NF_CONNTRACK_IPV6
  244. depends on NETFILTER_ADVANCED
  245. select NF_NAT
  246. select NF_NAT_IPV6
  247. select NETFILTER_XT_NAT
  248. help
  249. This enables the `nat' table in ip6tables. This allows masquerading,
  250. port forwarding and other forms of full Network Address Port
  251. Translation.
  252. To compile it as a module, choose M here. If unsure, say N.
  253. if IP6_NF_NAT
  254. config IP6_NF_TARGET_MASQUERADE
  255. tristate "MASQUERADE target support"
  256. select NF_NAT_MASQUERADE_IPV6
  257. help
  258. Masquerading is a special case of NAT: all outgoing connections are
  259. changed to seem to come from a particular interface's address, and
  260. if the interface goes down, those connections are lost. This is
  261. only useful for dialup accounts with dynamic IP address (ie. your IP
  262. address will be different on next dialup).
  263. To compile it as a module, choose M here. If unsure, say N.
  264. config IP6_NF_TARGET_NPT
  265. tristate "NPT (Network Prefix translation) target support"
  266. help
  267. This option adds the `SNPT' and `DNPT' target, which perform
  268. stateless IPv6-to-IPv6 Network Prefix Translation per RFC 6296.
  269. To compile it as a module, choose M here. If unsure, say N.
  270. endif # IP6_NF_NAT
  271. endif # IP6_NF_IPTABLES
  272. endmenu