Kconfig 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  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. endif # NF_TABLES_IPV6
  40. endif # NF_TABLES
  41. config NF_REJECT_IPV6
  42. tristate "IPv6 packet rejection"
  43. default m if NETFILTER_ADVANCED=n
  44. config NF_LOG_IPV6
  45. tristate "IPv6 packet logging"
  46. default m if NETFILTER_ADVANCED=n
  47. select NF_LOG_COMMON
  48. config NF_NAT_IPV6
  49. tristate "IPv6 NAT"
  50. depends on NF_CONNTRACK_IPV6
  51. depends on NETFILTER_ADVANCED
  52. select NF_NAT
  53. help
  54. The IPv6 NAT option allows masquerading, port forwarding and other
  55. forms of full Network Address Port Translation. This can be
  56. controlled by iptables or nft.
  57. if NF_NAT_IPV6
  58. config NFT_CHAIN_NAT_IPV6
  59. depends on NF_TABLES_IPV6
  60. tristate "IPv6 nf_tables nat chain support"
  61. help
  62. This option enables the "nat" chain for IPv6 in nf_tables. This
  63. chain type is used to perform Network Address Translation (NAT)
  64. packet transformations such as the source, destination address and
  65. source and destination ports.
  66. config NF_NAT_MASQUERADE_IPV6
  67. tristate "IPv6 masquerade support"
  68. help
  69. This is the kernel functionality to provide NAT in the masquerade
  70. flavour (automatic source address selection) for IPv6.
  71. config NFT_MASQ_IPV6
  72. tristate "IPv6 masquerade support for nf_tables"
  73. depends on NF_TABLES_IPV6
  74. depends on NFT_MASQ
  75. select NF_NAT_MASQUERADE_IPV6
  76. help
  77. This is the expression that provides IPv4 masquerading support for
  78. nf_tables.
  79. config NFT_REDIR_IPV6
  80. tristate "IPv6 redirect support for nf_tables"
  81. depends on NF_TABLES_IPV6
  82. depends on NFT_REDIR
  83. select NF_NAT_REDIRECT
  84. help
  85. This is the expression that provides IPv4 redirect support for
  86. nf_tables.
  87. endif # NF_NAT_IPV6
  88. config IP6_NF_IPTABLES
  89. tristate "IP6 tables support (required for filtering)"
  90. depends on INET && IPV6
  91. select NETFILTER_XTABLES
  92. default m if NETFILTER_ADVANCED=n
  93. help
  94. ip6tables is a general, extensible packet identification framework.
  95. Currently only the packet filtering and packet mangling subsystem
  96. for IPv6 use this, but connection tracking is going to follow.
  97. Say 'Y' or 'M' here if you want to use either of those.
  98. To compile it as a module, choose M here. If unsure, say N.
  99. if IP6_NF_IPTABLES
  100. # The simple matches.
  101. config IP6_NF_MATCH_AH
  102. tristate '"ah" match support'
  103. depends on NETFILTER_ADVANCED
  104. help
  105. This module allows one to match AH packets.
  106. To compile it as a module, choose M here. If unsure, say N.
  107. config IP6_NF_MATCH_EUI64
  108. tristate '"eui64" address check'
  109. depends on NETFILTER_ADVANCED
  110. help
  111. This module performs checking on the IPv6 source address
  112. Compares the last 64 bits with the EUI64 (delivered
  113. from the MAC address) address
  114. To compile it as a module, choose M here. If unsure, say N.
  115. config IP6_NF_MATCH_FRAG
  116. tristate '"frag" Fragmentation header match support'
  117. depends on NETFILTER_ADVANCED
  118. help
  119. frag matching allows you to match packets based on the fragmentation
  120. header of the packet.
  121. To compile it as a module, choose M here. If unsure, say N.
  122. config IP6_NF_MATCH_OPTS
  123. tristate '"hbh" hop-by-hop and "dst" opts header match support'
  124. depends on NETFILTER_ADVANCED
  125. help
  126. This allows one to match packets based on the hop-by-hop
  127. and destination options headers of a packet.
  128. To compile it as a module, choose M here. If unsure, say N.
  129. config IP6_NF_MATCH_HL
  130. tristate '"hl" hoplimit match support'
  131. depends on NETFILTER_ADVANCED
  132. select NETFILTER_XT_MATCH_HL
  133. ---help---
  134. This is a backwards-compat option for the user's convenience
  135. (e.g. when running oldconfig). It selects
  136. CONFIG_NETFILTER_XT_MATCH_HL.
  137. config IP6_NF_MATCH_IPV6HEADER
  138. tristate '"ipv6header" IPv6 Extension Headers Match'
  139. default m if NETFILTER_ADVANCED=n
  140. help
  141. This module allows one to match packets based upon
  142. the ipv6 extension headers.
  143. To compile it as a module, choose M here. If unsure, say N.
  144. config IP6_NF_MATCH_MH
  145. tristate '"mh" match support'
  146. depends on NETFILTER_ADVANCED
  147. help
  148. This module allows one to match MH packets.
  149. To compile it as a module, choose M here. If unsure, say N.
  150. config IP6_NF_MATCH_RPFILTER
  151. tristate '"rpfilter" reverse path filter match support'
  152. depends on NETFILTER_ADVANCED
  153. depends on IP6_NF_MANGLE || IP6_NF_RAW
  154. ---help---
  155. This option allows you to match packets whose replies would
  156. go out via the interface the packet came in.
  157. To compile it as a module, choose M here. If unsure, say N.
  158. The module will be called ip6t_rpfilter.
  159. config IP6_NF_MATCH_RT
  160. tristate '"rt" Routing header match support'
  161. depends on NETFILTER_ADVANCED
  162. help
  163. rt matching allows you to match packets based on the routing
  164. header of the packet.
  165. To compile it as a module, choose M here. If unsure, say N.
  166. # The targets
  167. config IP6_NF_TARGET_HL
  168. tristate '"HL" hoplimit target support'
  169. depends on NETFILTER_ADVANCED && IP6_NF_MANGLE
  170. select NETFILTER_XT_TARGET_HL
  171. ---help---
  172. This is a backwards-compatible option for the user's convenience
  173. (e.g. when running oldconfig). It selects
  174. CONFIG_NETFILTER_XT_TARGET_HL.
  175. config IP6_NF_FILTER
  176. tristate "Packet filtering"
  177. default m if NETFILTER_ADVANCED=n
  178. help
  179. Packet filtering defines a table `filter', which has a series of
  180. rules for simple packet filtering at local input, forwarding and
  181. local output. See the man page for iptables(8).
  182. To compile it as a module, choose M here. If unsure, say N.
  183. config IP6_NF_TARGET_REJECT
  184. tristate "REJECT target support"
  185. depends on IP6_NF_FILTER
  186. select NF_REJECT_IPV6
  187. default m if NETFILTER_ADVANCED=n
  188. help
  189. The REJECT target allows a filtering rule to specify that an ICMPv6
  190. error should be issued in response to an incoming packet, rather
  191. than silently being dropped.
  192. To compile it as a module, choose M here. If unsure, say N.
  193. config IP6_NF_TARGET_SYNPROXY
  194. tristate "SYNPROXY target support"
  195. depends on NF_CONNTRACK && NETFILTER_ADVANCED
  196. select NETFILTER_SYNPROXY
  197. select SYN_COOKIES
  198. help
  199. The SYNPROXY target allows you to intercept TCP connections and
  200. establish them using syncookies before they are passed on to the
  201. server. This allows to avoid conntrack and server resource usage
  202. during SYN-flood attacks.
  203. To compile it as a module, choose M here. If unsure, say N.
  204. config IP6_NF_MANGLE
  205. tristate "Packet mangling"
  206. default m if NETFILTER_ADVANCED=n
  207. help
  208. This option adds a `mangle' table to iptables: see the man page for
  209. iptables(8). This table is used for various packet alterations
  210. which can effect how the packet is routed.
  211. To compile it as a module, choose M here. If unsure, say N.
  212. config IP6_NF_RAW
  213. tristate 'raw table support (required for TRACE)'
  214. help
  215. This option adds a `raw' table to ip6tables. This table is the very
  216. first in the netfilter framework and hooks in at the PREROUTING
  217. and OUTPUT chains.
  218. If you want to compile it as a module, say M here and read
  219. <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
  220. # security table for MAC policy
  221. config IP6_NF_SECURITY
  222. tristate "Security table"
  223. depends on SECURITY
  224. depends on NETFILTER_ADVANCED
  225. help
  226. This option adds a `security' table to iptables, for use
  227. with Mandatory Access Control (MAC) policy.
  228. If unsure, say N.
  229. config IP6_NF_NAT
  230. tristate "ip6tables NAT support"
  231. depends on NF_CONNTRACK_IPV6
  232. depends on NETFILTER_ADVANCED
  233. select NF_NAT
  234. select NF_NAT_IPV6
  235. select NETFILTER_XT_NAT
  236. help
  237. This enables the `nat' table in ip6tables. This allows masquerading,
  238. port forwarding and other forms of full Network Address Port
  239. Translation.
  240. To compile it as a module, choose M here. If unsure, say N.
  241. if IP6_NF_NAT
  242. config IP6_NF_TARGET_MASQUERADE
  243. tristate "MASQUERADE target support"
  244. select NF_NAT_MASQUERADE_IPV6
  245. help
  246. Masquerading is a special case of NAT: all outgoing connections are
  247. changed to seem to come from a particular interface's address, and
  248. if the interface goes down, those connections are lost. This is
  249. only useful for dialup accounts with dynamic IP address (ie. your IP
  250. address will be different on next dialup).
  251. To compile it as a module, choose M here. If unsure, say N.
  252. config IP6_NF_TARGET_NPT
  253. tristate "NPT (Network Prefix translation) target support"
  254. help
  255. This option adds the `SNPT' and `DNPT' target, which perform
  256. stateless IPv6-to-IPv6 Network Prefix Translation per RFC 6296.
  257. To compile it as a module, choose M here. If unsure, say N.
  258. endif # IP6_NF_NAT
  259. endif # IP6_NF_IPTABLES
  260. endmenu