Kconfig 12 KB

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