# SPDX-License-Identifier: GPL-2.0-only 
 | 
# 
 | 
# IP netfilter configuration 
 | 
# 
 | 
  
 | 
menu "IP: Netfilter Configuration" 
 | 
    depends on INET && NETFILTER 
 | 
  
 | 
config NF_DEFRAG_IPV4 
 | 
    tristate 
 | 
    default n 
 | 
  
 | 
config NF_SOCKET_IPV4 
 | 
    tristate "IPv4 socket lookup support" 
 | 
    help 
 | 
      This option enables the IPv4 socket lookup infrastructure. This is 
 | 
      is required by the {ip,nf}tables socket match. 
 | 
  
 | 
config NF_TPROXY_IPV4 
 | 
    tristate "IPv4 tproxy support" 
 | 
  
 | 
if NF_TABLES 
 | 
  
 | 
config NF_TABLES_IPV4 
 | 
    bool "IPv4 nf_tables support" 
 | 
    help 
 | 
      This option enables the IPv4 support for nf_tables. 
 | 
  
 | 
if NF_TABLES_IPV4 
 | 
  
 | 
config NFT_REJECT_IPV4 
 | 
    select NF_REJECT_IPV4 
 | 
    default NFT_REJECT 
 | 
    tristate 
 | 
  
 | 
config NFT_DUP_IPV4 
 | 
    tristate "IPv4 nf_tables packet duplication support" 
 | 
    depends on !NF_CONNTRACK || NF_CONNTRACK 
 | 
    select NF_DUP_IPV4 
 | 
    help 
 | 
      This module enables IPv4 packet duplication support for nf_tables. 
 | 
  
 | 
config NFT_FIB_IPV4 
 | 
    select NFT_FIB 
 | 
    tristate "nf_tables fib / ip route lookup support" 
 | 
    help 
 | 
      This module enables IPv4 FIB lookups, e.g. for reverse path filtering. 
 | 
      It also allows query of the FIB for the route type, e.g. local, unicast, 
 | 
      multicast or blackhole. 
 | 
  
 | 
endif # NF_TABLES_IPV4 
 | 
  
 | 
config NF_TABLES_ARP 
 | 
    bool "ARP nf_tables support" 
 | 
    select NETFILTER_FAMILY_ARP 
 | 
    help 
 | 
      This option enables the ARP support for nf_tables. 
 | 
  
 | 
endif # NF_TABLES 
 | 
  
 | 
config NF_FLOW_TABLE_IPV4 
 | 
    tristate "Netfilter flow table IPv4 module" 
 | 
    depends on NF_FLOW_TABLE 
 | 
    help 
 | 
      This option adds the flow table IPv4 support. 
 | 
  
 | 
      To compile it as a module, choose M here. 
 | 
  
 | 
config NF_DUP_IPV4 
 | 
    tristate "Netfilter IPv4 packet duplication to alternate destination" 
 | 
    depends on !NF_CONNTRACK || NF_CONNTRACK 
 | 
    help 
 | 
      This option enables the nf_dup_ipv4 core, which duplicates an IPv4 
 | 
      packet to be rerouted to another destination. 
 | 
  
 | 
config NF_LOG_ARP 
 | 
    tristate "ARP packet logging" 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    select NF_LOG_COMMON 
 | 
  
 | 
config NF_LOG_IPV4 
 | 
    tristate "IPv4 packet logging" 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    select NF_LOG_COMMON 
 | 
  
 | 
config NF_REJECT_IPV4 
 | 
    tristate "IPv4 packet rejection" 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
  
 | 
if NF_NAT 
 | 
config NF_NAT_SNMP_BASIC 
 | 
    tristate "Basic SNMP-ALG support" 
 | 
    depends on NF_CONNTRACK_SNMP 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    default NF_NAT && NF_CONNTRACK_SNMP 
 | 
    select ASN1 
 | 
    help 
 | 
  
 | 
      This module implements an Application Layer Gateway (ALG) for 
 | 
      SNMP payloads.  In conjunction with NAT, it allows a network 
 | 
      management system to access multiple private networks with 
 | 
      conflicting addresses.  It works by modifying IP addresses 
 | 
      inside SNMP payloads to match IP-layer NAT mapping. 
 | 
  
 | 
      This is the "basic" form of SNMP-ALG, as described in RFC 2962 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config NF_NAT_PPTP 
 | 
    tristate 
 | 
    depends on NF_CONNTRACK 
 | 
    default NF_CONNTRACK_PPTP 
 | 
  
 | 
config NF_NAT_H323 
 | 
    tristate 
 | 
    depends on NF_CONNTRACK 
 | 
    default NF_CONNTRACK_H323 
 | 
  
 | 
endif # NF_NAT 
 | 
  
 | 
config IP_NF_IPTABLES 
 | 
    tristate "IP tables support (required for filtering/masq/NAT)" 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    select NETFILTER_XTABLES 
 | 
    help 
 | 
      iptables is a general, extensible packet identification framework. 
 | 
      The packet filtering and full NAT (masquerading, port forwarding, 
 | 
      etc) subsystems now use this: say `Y' or `M' here if you want to use 
 | 
      either of those. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
if IP_NF_IPTABLES 
 | 
  
 | 
# The matches. 
 | 
config IP_NF_MATCH_AH 
 | 
    tristate '"ah" match support' 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    help 
 | 
      This match extension allows you to match a range of SPIs 
 | 
      inside AH header of IPSec packets. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_MATCH_ECN 
 | 
    tristate '"ecn" match support' 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    select NETFILTER_XT_MATCH_ECN 
 | 
    help 
 | 
    This is a backwards-compat option for the user's convenience 
 | 
    (e.g. when running oldconfig). It selects 
 | 
    CONFIG_NETFILTER_XT_MATCH_ECN. 
 | 
  
 | 
config IP_NF_MATCH_RPFILTER 
 | 
    tristate '"rpfilter" reverse path filter match support' 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    depends on IP_NF_MANGLE || IP_NF_RAW 
 | 
    help 
 | 
      This option allows you to match packets whose replies would 
 | 
      go out via the interface the packet came in. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
      The module will be called ipt_rpfilter. 
 | 
  
 | 
config IP_NF_MATCH_TTL 
 | 
    tristate '"ttl" match support' 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    select NETFILTER_XT_MATCH_HL 
 | 
    help 
 | 
    This is a backwards-compat option for the user's convenience 
 | 
    (e.g. when running oldconfig). It selects 
 | 
    CONFIG_NETFILTER_XT_MATCH_HL. 
 | 
  
 | 
# `filter', generic and specific targets 
 | 
config IP_NF_FILTER 
 | 
    tristate "Packet filtering" 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    help 
 | 
      Packet filtering defines a table `filter', which has a series of 
 | 
      rules for simple packet filtering at local input, forwarding and 
 | 
      local output.  See the man page for iptables(8). 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_TARGET_REJECT 
 | 
    tristate "REJECT target support" 
 | 
    depends on IP_NF_FILTER 
 | 
    select NF_REJECT_IPV4 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    help 
 | 
      The REJECT target allows a filtering rule to specify that an ICMP 
 | 
      error should be issued in response to an incoming packet, rather 
 | 
      than silently being dropped. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_TARGET_SYNPROXY 
 | 
    tristate "SYNPROXY target support" 
 | 
    depends on NF_CONNTRACK && NETFILTER_ADVANCED 
 | 
    select NETFILTER_SYNPROXY 
 | 
    select SYN_COOKIES 
 | 
    help 
 | 
      The SYNPROXY target allows you to intercept TCP connections and 
 | 
      establish them using syncookies before they are passed on to the 
 | 
      server. This allows to avoid conntrack and server resource usage 
 | 
      during SYN-flood attacks. 
 | 
  
 | 
      To compile it as a module, choose M here. If unsure, say N. 
 | 
  
 | 
# NAT + specific targets: nf_conntrack 
 | 
config IP_NF_NAT 
 | 
    tristate "iptables NAT support" 
 | 
    depends on NF_CONNTRACK 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    select NF_NAT 
 | 
    select NETFILTER_XT_NAT 
 | 
    help 
 | 
      This enables the `nat' table in iptables. This allows masquerading, 
 | 
      port forwarding and other forms of full Network Address Port 
 | 
      Translation. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
if IP_NF_NAT 
 | 
  
 | 
config IP_NF_TARGET_MASQUERADE 
 | 
    tristate "MASQUERADE target support" 
 | 
    select NETFILTER_XT_TARGET_MASQUERADE 
 | 
    help 
 | 
      This is a backwards-compat option for the user's convenience 
 | 
      (e.g. when running oldconfig). It selects NETFILTER_XT_TARGET_MASQUERADE. 
 | 
  
 | 
config IP_NF_TARGET_NETMAP 
 | 
    tristate "NETMAP target support" 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    select NETFILTER_XT_TARGET_NETMAP 
 | 
    help 
 | 
    This is a backwards-compat option for the user's convenience 
 | 
    (e.g. when running oldconfig). It selects 
 | 
    CONFIG_NETFILTER_XT_TARGET_NETMAP. 
 | 
  
 | 
config IP_NF_TARGET_REDIRECT 
 | 
    tristate "REDIRECT target support" 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    select NETFILTER_XT_TARGET_REDIRECT 
 | 
    help 
 | 
    This is a backwards-compat option for the user's convenience 
 | 
    (e.g. when running oldconfig). It selects 
 | 
    CONFIG_NETFILTER_XT_TARGET_REDIRECT. 
 | 
  
 | 
endif # IP_NF_NAT 
 | 
  
 | 
# mangle + specific targets 
 | 
config IP_NF_MANGLE 
 | 
    tristate "Packet mangling" 
 | 
    default m if NETFILTER_ADVANCED=n 
 | 
    help 
 | 
      This option adds a `mangle' table to iptables: see the man page for 
 | 
      iptables(8).  This table is used for various packet alterations 
 | 
      which can effect how the packet is routed. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_TARGET_CLUSTERIP 
 | 
    tristate "CLUSTERIP target support" 
 | 
    depends on IP_NF_MANGLE 
 | 
    depends on NF_CONNTRACK 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    select NF_CONNTRACK_MARK 
 | 
    select NETFILTER_FAMILY_ARP 
 | 
    help 
 | 
      The CLUSTERIP target allows you to build load-balancing clusters of 
 | 
      network servers without having a dedicated load-balancing 
 | 
      router/server/switch. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_TARGET_ECN 
 | 
    tristate "ECN target support" 
 | 
    depends on IP_NF_MANGLE 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    help 
 | 
      This option adds a `ECN' target, which can be used in the iptables mangle 
 | 
      table. 
 | 
  
 | 
      You can use this target to remove the ECN bits from the IPv4 header of 
 | 
      an IP packet.  This is particularly useful, if you need to work around 
 | 
      existing ECN blackholes on the internet, but don't want to disable 
 | 
      ECN support in general. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_TARGET_TTL 
 | 
    tristate '"TTL" target support' 
 | 
    depends on NETFILTER_ADVANCED && IP_NF_MANGLE 
 | 
    select NETFILTER_XT_TARGET_HL 
 | 
    help 
 | 
    This is a backwards-compatible option for the user's convenience 
 | 
    (e.g. when running oldconfig). It selects 
 | 
    CONFIG_NETFILTER_XT_TARGET_HL. 
 | 
  
 | 
# raw + specific targets 
 | 
config IP_NF_RAW 
 | 
    tristate  'raw table support (required for NOTRACK/TRACE)' 
 | 
    help 
 | 
      This option adds a `raw' table to iptables. This table is the very 
 | 
      first in the netfilter framework and hooks in at the PREROUTING 
 | 
      and OUTPUT chains. 
 | 
  
 | 
      If you want to compile it as a module, say M here and read 
 | 
      <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'. 
 | 
  
 | 
# security table for MAC policy 
 | 
config IP_NF_SECURITY 
 | 
    tristate "Security table" 
 | 
    depends on SECURITY 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    help 
 | 
      This option adds a `security' table to iptables, for use 
 | 
      with Mandatory Access Control (MAC) policy. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
endif # IP_NF_IPTABLES 
 | 
  
 | 
# ARP tables 
 | 
config IP_NF_ARPTABLES 
 | 
    tristate "ARP tables support" 
 | 
    select NETFILTER_XTABLES 
 | 
    select NETFILTER_FAMILY_ARP 
 | 
    depends on NETFILTER_ADVANCED 
 | 
    help 
 | 
      arptables is a general, extensible packet identification framework. 
 | 
      The ARP packet filtering and mangling (manipulation)subsystems 
 | 
      use this: say Y or M here if you want to use either of those. 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
if IP_NF_ARPTABLES 
 | 
  
 | 
config IP_NF_ARPFILTER 
 | 
    tristate "ARP packet filtering" 
 | 
    help 
 | 
      ARP packet filtering defines a table `filter', which has a series of 
 | 
      rules for simple ARP packet filtering at local input and 
 | 
      local output.  On a bridge, you can also specify filtering rules 
 | 
      for forwarded ARP packets. See the man page for arptables(8). 
 | 
  
 | 
      To compile it as a module, choose M here.  If unsure, say N. 
 | 
  
 | 
config IP_NF_ARP_MANGLE 
 | 
    tristate "ARP payload mangling" 
 | 
    help 
 | 
      Allows altering the ARP packet payload: source and destination 
 | 
      hardware and network addresses. 
 | 
  
 | 
endif # IP_NF_ARPTABLES 
 | 
  
 | 
endmenu 
 |