Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menu "Core Netfilter Configuration"
0003         depends on INET && NETFILTER
0004 
0005 config NETFILTER_INGRESS
0006         bool "Netfilter ingress support"
0007         default y
0008         select NET_INGRESS
0009         help
0010           This allows you to classify packets from ingress using the Netfilter
0011           infrastructure.
0012 
0013 config NETFILTER_EGRESS
0014         bool "Netfilter egress support"
0015         default y
0016         select NET_EGRESS
0017         help
0018           This allows you to classify packets before transmission using the
0019           Netfilter infrastructure.
0020 
0021 config NETFILTER_SKIP_EGRESS
0022         def_bool NETFILTER_EGRESS && (NET_CLS_ACT || IFB)
0023 
0024 config NETFILTER_NETLINK
0025         tristate
0026 
0027 config NETFILTER_FAMILY_BRIDGE
0028         bool
0029 
0030 config NETFILTER_FAMILY_ARP
0031         bool
0032 
0033 config NETFILTER_NETLINK_HOOK
0034         tristate "Netfilter base hook dump support"
0035         depends on NETFILTER_ADVANCED
0036         depends on NF_TABLES
0037         select NETFILTER_NETLINK
0038         help
0039           If this option is enabled, the kernel will include support
0040           to list the base netfilter hooks via NFNETLINK.
0041           This is helpful for debugging.
0042 
0043 config NETFILTER_NETLINK_ACCT
0044         tristate "Netfilter NFACCT over NFNETLINK interface"
0045         depends on NETFILTER_ADVANCED
0046         select NETFILTER_NETLINK
0047         help
0048           If this option is enabled, the kernel will include support
0049           for extended accounting via NFNETLINK.
0050 
0051 config NETFILTER_NETLINK_QUEUE
0052         tristate "Netfilter NFQUEUE over NFNETLINK interface"
0053         depends on NETFILTER_ADVANCED
0054         select NETFILTER_NETLINK
0055         help
0056           If this option is enabled, the kernel will include support
0057           for queueing packets via NFNETLINK.
0058 
0059 config NETFILTER_NETLINK_LOG
0060         tristate "Netfilter LOG over NFNETLINK interface"
0061         default m if NETFILTER_ADVANCED=n
0062         select NETFILTER_NETLINK
0063         help
0064           If this option is enabled, the kernel will include support
0065           for logging packets via NFNETLINK.
0066 
0067           This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms,
0068           and is also scheduled to replace the old syslog-based ipt_LOG
0069           and ip6t_LOG modules.
0070 
0071 config NETFILTER_NETLINK_OSF
0072         tristate "Netfilter OSF over NFNETLINK interface"
0073         depends on NETFILTER_ADVANCED
0074         select NETFILTER_NETLINK
0075         help
0076           If this option is enabled, the kernel will include support
0077           for passive OS fingerprint via NFNETLINK.
0078 
0079 config NF_CONNTRACK
0080         tristate "Netfilter connection tracking support"
0081         default m if NETFILTER_ADVANCED=n
0082         select NF_DEFRAG_IPV4
0083         select NF_DEFRAG_IPV6 if IPV6 != n
0084         help
0085           Connection tracking keeps a record of what packets have passed
0086           through your machine, in order to figure out how they are related
0087           into connections.
0088 
0089           This is required to do Masquerading or other kinds of Network
0090           Address Translation.  It can also be used to enhance packet
0091           filtering (see `Connection state match support' below).
0092 
0093           To compile it as a module, choose M here.  If unsure, say N.
0094 
0095 config NF_LOG_SYSLOG
0096         tristate "Syslog packet logging"
0097         default m if NETFILTER_ADVANCED=n
0098         help
0099           This option enable support for packet logging via syslog.
0100           It supports IPv4, IPV6, ARP and common transport protocols such
0101           as TCP and UDP.
0102           This is a simpler but less flexible logging method compared to
0103           CONFIG_NETFILTER_NETLINK_LOG.
0104           If both are enabled the backend to use can be configured at run-time
0105           by means of per-address-family sysctl tunables.
0106 
0107 if NF_CONNTRACK
0108 config NETFILTER_CONNCOUNT
0109         tristate
0110 
0111 config NF_CONNTRACK_MARK
0112         bool  'Connection mark tracking support'
0113         depends on NETFILTER_ADVANCED
0114         help
0115           This option enables support for connection marks, used by the
0116           `CONNMARK' target and `connmark' match. Similar to the mark value
0117           of packets, but this mark value is kept in the conntrack session
0118           instead of the individual packets.
0119 
0120 config NF_CONNTRACK_SECMARK
0121         bool  'Connection tracking security mark support'
0122         depends on NETWORK_SECMARK
0123         default y if NETFILTER_ADVANCED=n
0124         help
0125           This option enables security markings to be applied to
0126           connections.  Typically they are copied to connections from
0127           packets using the CONNSECMARK target and copied back from
0128           connections to packets with the same target, with the packets
0129           being originally labeled via SECMARK.
0130 
0131           If unsure, say 'N'.
0132 
0133 config NF_CONNTRACK_ZONES
0134         bool  'Connection tracking zones'
0135         depends on NETFILTER_ADVANCED
0136         help
0137           This option enables support for connection tracking zones.
0138           Normally, each connection needs to have a unique system wide
0139           identity. Connection tracking zones allow to have multiple
0140           connections using the same identity, as long as they are
0141           contained in different zones.
0142 
0143           If unsure, say `N'.
0144 
0145 config NF_CONNTRACK_PROCFS
0146         bool "Supply CT list in procfs (OBSOLETE)"
0147         depends on PROC_FS
0148         help
0149         This option enables for the list of known conntrack entries
0150         to be shown in procfs under net/netfilter/nf_conntrack. This
0151         is considered obsolete in favor of using the conntrack(8)
0152         tool which uses Netlink.
0153 
0154 config NF_CONNTRACK_EVENTS
0155         bool "Connection tracking events"
0156         depends on NETFILTER_ADVANCED
0157         help
0158           If this option is enabled, the connection tracking code will
0159           provide a notifier chain that can be used by other kernel code
0160           to get notified about changes in the connection tracking state.
0161 
0162           If unsure, say `N'.
0163 
0164 config NF_CONNTRACK_TIMEOUT
0165         bool  'Connection tracking timeout'
0166         depends on NETFILTER_ADVANCED
0167         help
0168           This option enables support for connection tracking timeout
0169           extension. This allows you to attach timeout policies to flow
0170           via the CT target.
0171 
0172           If unsure, say `N'.
0173 
0174 config NF_CONNTRACK_TIMESTAMP
0175         bool  'Connection tracking timestamping'
0176         depends on NETFILTER_ADVANCED
0177         help
0178           This option enables support for connection tracking timestamping.
0179           This allows you to store the flow start-time and to obtain
0180           the flow-stop time (once it has been destroyed) via Connection
0181           tracking events.
0182 
0183           If unsure, say `N'.
0184 
0185 config NF_CONNTRACK_LABELS
0186         bool "Connection tracking labels"
0187         help
0188           This option enables support for assigning user-defined flag bits
0189           to connection tracking entries.  It can be used with xtables connlabel
0190           match and the nftables ct expression.
0191 
0192 config NF_CT_PROTO_DCCP
0193         bool 'DCCP protocol connection tracking support'
0194         depends on NETFILTER_ADVANCED
0195         default y
0196         help
0197           With this option enabled, the layer 3 independent connection
0198           tracking code will be able to do state tracking on DCCP connections.
0199 
0200           If unsure, say Y.
0201 
0202 config NF_CT_PROTO_GRE
0203         bool
0204 
0205 config NF_CT_PROTO_SCTP
0206         bool 'SCTP protocol connection tracking support'
0207         depends on NETFILTER_ADVANCED
0208         default y
0209         select LIBCRC32C
0210         help
0211           With this option enabled, the layer 3 independent connection
0212           tracking code will be able to do state tracking on SCTP connections.
0213 
0214           If unsure, say Y.
0215 
0216 config NF_CT_PROTO_UDPLITE
0217         bool 'UDP-Lite protocol connection tracking support'
0218         depends on NETFILTER_ADVANCED
0219         default y
0220         help
0221           With this option enabled, the layer 3 independent connection
0222           tracking code will be able to do state tracking on UDP-Lite
0223           connections.
0224 
0225           If unsure, say Y.
0226 
0227 config NF_CONNTRACK_AMANDA
0228         tristate "Amanda backup protocol support"
0229         depends on NETFILTER_ADVANCED
0230         select TEXTSEARCH
0231         select TEXTSEARCH_KMP
0232         help
0233           If you are running the Amanda backup package <http://www.amanda.org/>
0234           on this machine or machines that will be MASQUERADED through this
0235           machine, then you may want to enable this feature.  This allows the
0236           connection tracking and natting code to allow the sub-channels that
0237           Amanda requires for communication of the backup data, messages and
0238           index.
0239 
0240           To compile it as a module, choose M here.  If unsure, say N.
0241 
0242 config NF_CONNTRACK_FTP
0243         tristate "FTP protocol support"
0244         default m if NETFILTER_ADVANCED=n
0245         help
0246           Tracking FTP connections is problematic: special helpers are
0247           required for tracking them, and doing masquerading and other forms
0248           of Network Address Translation on them.
0249 
0250           This is FTP support on Layer 3 independent connection tracking.
0251 
0252           To compile it as a module, choose M here.  If unsure, say N.
0253 
0254 config NF_CONNTRACK_H323
0255         tristate "H.323 protocol support"
0256         depends on IPV6 || IPV6=n
0257         depends on NETFILTER_ADVANCED
0258         help
0259           H.323 is a VoIP signalling protocol from ITU-T. As one of the most
0260           important VoIP protocols, it is widely used by voice hardware and
0261           software including voice gateways, IP phones, Netmeeting, OpenPhone,
0262           Gnomemeeting, etc.
0263 
0264           With this module you can support H.323 on a connection tracking/NAT
0265           firewall.
0266 
0267           This module supports RAS, Fast Start, H.245 Tunnelling, Call
0268           Forwarding, RTP/RTCP and T.120 based audio, video, fax, chat,
0269           whiteboard, file transfer, etc. For more information, please
0270           visit http://nath323.sourceforge.net/.
0271 
0272           To compile it as a module, choose M here.  If unsure, say N.
0273 
0274 config NF_CONNTRACK_IRC
0275         tristate "IRC protocol support"
0276         default m if NETFILTER_ADVANCED=n
0277         help
0278           There is a commonly-used extension to IRC called
0279           Direct Client-to-Client Protocol (DCC).  This enables users to send
0280           files to each other, and also chat to each other without the need
0281           of a server.  DCC Sending is used anywhere you send files over IRC,
0282           and DCC Chat is most commonly used by Eggdrop bots.  If you are
0283           using NAT, this extension will enable you to send files and initiate
0284           chats.  Note that you do NOT need this extension to get files or
0285           have others initiate chats, or everything else in IRC.
0286 
0287           To compile it as a module, choose M here.  If unsure, say N.
0288 
0289 config NF_CONNTRACK_BROADCAST
0290         tristate
0291 
0292 config NF_CONNTRACK_NETBIOS_NS
0293         tristate "NetBIOS name service protocol support"
0294         select NF_CONNTRACK_BROADCAST
0295         help
0296           NetBIOS name service requests are sent as broadcast messages from an
0297           unprivileged port and responded to with unicast messages to the
0298           same port. This make them hard to firewall properly because connection
0299           tracking doesn't deal with broadcasts. This helper tracks locally
0300           originating NetBIOS name service requests and the corresponding
0301           responses. It relies on correct IP address configuration, specifically
0302           netmask and broadcast address. When properly configured, the output
0303           of "ip address show" should look similar to this:
0304 
0305           $ ip -4 address show eth0
0306           4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
0307               inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
0308 
0309           To compile it as a module, choose M here.  If unsure, say N.
0310 
0311 config NF_CONNTRACK_SNMP
0312         tristate "SNMP service protocol support"
0313         depends on NETFILTER_ADVANCED
0314         select NF_CONNTRACK_BROADCAST
0315         help
0316           SNMP service requests are sent as broadcast messages from an
0317           unprivileged port and responded to with unicast messages to the
0318           same port. This make them hard to firewall properly because connection
0319           tracking doesn't deal with broadcasts. This helper tracks locally
0320           originating SNMP service requests and the corresponding
0321           responses. It relies on correct IP address configuration, specifically
0322           netmask and broadcast address.
0323 
0324           To compile it as a module, choose M here.  If unsure, say N.
0325 
0326 config NF_CONNTRACK_PPTP
0327         tristate "PPtP protocol support"
0328         depends on NETFILTER_ADVANCED
0329         select NF_CT_PROTO_GRE
0330         help
0331           This module adds support for PPTP (Point to Point Tunnelling
0332           Protocol, RFC2637) connection tracking and NAT.
0333 
0334           If you are running PPTP sessions over a stateful firewall or NAT
0335           box, you may want to enable this feature.
0336 
0337           Please note that not all PPTP modes of operation are supported yet.
0338           Specifically these limitations exist:
0339             - Blindly assumes that control connections are always established
0340               in PNS->PAC direction. This is a violation of RFC2637.
0341             - Only supports a single call within each session
0342 
0343           To compile it as a module, choose M here.  If unsure, say N.
0344 
0345 config NF_CONNTRACK_SANE
0346         tristate "SANE protocol support"
0347         depends on NETFILTER_ADVANCED
0348         help
0349           SANE is a protocol for remote access to scanners as implemented
0350           by the 'saned' daemon. Like FTP, it uses separate control and
0351           data connections.
0352 
0353           With this module you can support SANE on a connection tracking
0354           firewall.
0355 
0356           To compile it as a module, choose M here.  If unsure, say N.
0357 
0358 config NF_CONNTRACK_SIP
0359         tristate "SIP protocol support"
0360         default m if NETFILTER_ADVANCED=n
0361         help
0362           SIP is an application-layer control protocol that can establish,
0363           modify, and terminate multimedia sessions (conferences) such as
0364           Internet telephony calls. With the nf_conntrack_sip and
0365           the nf_nat_sip modules you can support the protocol on a connection
0366           tracking/NATing firewall.
0367 
0368           To compile it as a module, choose M here.  If unsure, say N.
0369 
0370 config NF_CONNTRACK_TFTP
0371         tristate "TFTP protocol support"
0372         depends on NETFILTER_ADVANCED
0373         help
0374           TFTP connection tracking helper, this is required depending
0375           on how restrictive your ruleset is.
0376           If you are using a tftp client behind -j SNAT or -j MASQUERADING
0377           you will need this.
0378 
0379           To compile it as a module, choose M here.  If unsure, say N.
0380 
0381 config NF_CT_NETLINK
0382         tristate 'Connection tracking netlink interface'
0383         select NETFILTER_NETLINK
0384         default m if NETFILTER_ADVANCED=n
0385         help
0386           This option enables support for a netlink-based userspace interface
0387 
0388 config NF_CT_NETLINK_TIMEOUT
0389         tristate  'Connection tracking timeout tuning via Netlink'
0390         select NETFILTER_NETLINK
0391         depends on NETFILTER_ADVANCED
0392         depends on NF_CONNTRACK_TIMEOUT
0393         help
0394           This option enables support for connection tracking timeout
0395           fine-grain tuning. This allows you to attach specific timeout
0396           policies to flows, instead of using the global timeout policy.
0397 
0398           If unsure, say `N'.
0399 
0400 config NF_CT_NETLINK_HELPER
0401         tristate 'Connection tracking helpers in user-space via Netlink'
0402         select NETFILTER_NETLINK
0403         depends on NF_CT_NETLINK
0404         depends on NETFILTER_NETLINK_QUEUE
0405         depends on NETFILTER_NETLINK_GLUE_CT
0406         depends on NETFILTER_ADVANCED
0407         help
0408           This option enables the user-space connection tracking helpers
0409           infrastructure.
0410 
0411           If unsure, say `N'.
0412 
0413 config NETFILTER_NETLINK_GLUE_CT
0414         bool "NFQUEUE and NFLOG integration with Connection Tracking"
0415         default n
0416         depends on (NETFILTER_NETLINK_QUEUE || NETFILTER_NETLINK_LOG) && NF_CT_NETLINK
0417         help
0418           If this option is enabled, NFQUEUE and NFLOG can include
0419           Connection Tracking information together with the packet is
0420           the enqueued via NFNETLINK.
0421 
0422 config NF_NAT
0423         tristate "Network Address Translation support"
0424         depends on NF_CONNTRACK
0425         default m if NETFILTER_ADVANCED=n
0426         help
0427           The NAT option allows masquerading, port forwarding and other
0428           forms of full Network Address Port Translation. This can be
0429           controlled by iptables, ip6tables or nft.
0430 
0431 config NF_NAT_AMANDA
0432         tristate
0433         depends on NF_CONNTRACK && NF_NAT
0434         default NF_NAT && NF_CONNTRACK_AMANDA
0435 
0436 config NF_NAT_FTP
0437         tristate
0438         depends on NF_CONNTRACK && NF_NAT
0439         default NF_NAT && NF_CONNTRACK_FTP
0440 
0441 config NF_NAT_IRC
0442         tristate
0443         depends on NF_CONNTRACK && NF_NAT
0444         default NF_NAT && NF_CONNTRACK_IRC
0445 
0446 config NF_NAT_SIP
0447         tristate
0448         depends on NF_CONNTRACK && NF_NAT
0449         default NF_NAT && NF_CONNTRACK_SIP
0450 
0451 config NF_NAT_TFTP
0452         tristate
0453         depends on NF_CONNTRACK && NF_NAT
0454         default NF_NAT && NF_CONNTRACK_TFTP
0455 
0456 config NF_NAT_REDIRECT
0457         bool
0458 
0459 config NF_NAT_MASQUERADE
0460         bool
0461 
0462 config NETFILTER_SYNPROXY
0463         tristate
0464 
0465 endif # NF_CONNTRACK
0466 
0467 config NF_TABLES
0468         select NETFILTER_NETLINK
0469         select LIBCRC32C
0470         tristate "Netfilter nf_tables support"
0471         help
0472           nftables is the new packet classification framework that intends to
0473           replace the existing {ip,ip6,arp,eb}_tables infrastructure. It
0474           provides a pseudo-state machine with an extensible instruction-set
0475           (also known as expressions) that the userspace 'nft' utility
0476           (https://www.netfilter.org/projects/nftables) uses to build the
0477           rule-set. It also comes with the generic set infrastructure that
0478           allows you to construct mappings between matchings and actions
0479           for performance lookups.
0480 
0481           To compile it as a module, choose M here.
0482 
0483 if NF_TABLES
0484 config NF_TABLES_INET
0485         depends on IPV6
0486         select NF_TABLES_IPV4
0487         select NF_TABLES_IPV6
0488         bool "Netfilter nf_tables mixed IPv4/IPv6 tables support"
0489         help
0490           This option enables support for a mixed IPv4/IPv6 "inet" table.
0491 
0492 config NF_TABLES_NETDEV
0493         bool "Netfilter nf_tables netdev tables support"
0494         help
0495           This option enables support for the "netdev" table.
0496 
0497 config NFT_NUMGEN
0498         tristate "Netfilter nf_tables number generator module"
0499         help
0500           This option adds the number generator expression used to perform
0501           incremental counting and random numbers bound to a upper limit.
0502 
0503 config NFT_CT
0504         depends on NF_CONNTRACK
0505         tristate "Netfilter nf_tables conntrack module"
0506         help
0507           This option adds the "ct" expression that you can use to match
0508           connection tracking information such as the flow state.
0509 
0510 config NFT_FLOW_OFFLOAD
0511         depends on NF_CONNTRACK && NF_FLOW_TABLE
0512         tristate "Netfilter nf_tables hardware flow offload module"
0513         help
0514           This option adds the "flow_offload" expression that you can use to
0515           choose what flows are placed into the hardware.
0516 
0517 config NFT_CONNLIMIT
0518         tristate "Netfilter nf_tables connlimit module"
0519         depends on NF_CONNTRACK
0520         depends on NETFILTER_ADVANCED
0521         select NETFILTER_CONNCOUNT
0522         help
0523           This option adds the "connlimit" expression that you can use to
0524           ratelimit rule matchings per connections.
0525 
0526 config NFT_LOG
0527         tristate "Netfilter nf_tables log module"
0528         help
0529           This option adds the "log" expression that you can use to log
0530           packets matching some criteria.
0531 
0532 config NFT_LIMIT
0533         tristate "Netfilter nf_tables limit module"
0534         help
0535           This option adds the "limit" expression that you can use to
0536           ratelimit rule matchings.
0537 
0538 config NFT_MASQ
0539         depends on NF_CONNTRACK
0540         depends on NF_NAT
0541         select NF_NAT_MASQUERADE
0542         tristate "Netfilter nf_tables masquerade support"
0543         help
0544           This option adds the "masquerade" expression that you can use
0545           to perform NAT in the masquerade flavour.
0546 
0547 config NFT_REDIR
0548         depends on NF_CONNTRACK
0549         depends on NF_NAT
0550         tristate "Netfilter nf_tables redirect support"
0551         select NF_NAT_REDIRECT
0552         help
0553           This options adds the "redirect" expression that you can use
0554           to perform NAT in the redirect flavour.
0555 
0556 config NFT_NAT
0557         depends on NF_CONNTRACK
0558         select NF_NAT
0559         depends on NF_TABLES_IPV4 || NF_TABLES_IPV6
0560         tristate "Netfilter nf_tables nat module"
0561         help
0562           This option adds the "nat" expression that you can use to perform
0563           typical Network Address Translation (NAT) packet transformations.
0564 
0565 config NFT_TUNNEL
0566         tristate "Netfilter nf_tables tunnel module"
0567         help
0568           This option adds the "tunnel" expression that you can use to set
0569           tunneling policies.
0570 
0571 config NFT_OBJREF
0572         tristate "Netfilter nf_tables stateful object reference module"
0573         help
0574           This option adds the "objref" expression that allows you to refer to
0575           stateful objects, such as counters and quotas.
0576 
0577 config NFT_QUEUE
0578         depends on NETFILTER_NETLINK_QUEUE
0579         tristate "Netfilter nf_tables queue module"
0580         help
0581           This is required if you intend to use the userspace queueing
0582           infrastructure (also known as NFQUEUE) from nftables.
0583 
0584 config NFT_QUOTA
0585         tristate "Netfilter nf_tables quota module"
0586         help
0587           This option adds the "quota" expression that you can use to match
0588           enforce bytes quotas.
0589 
0590 config NFT_REJECT
0591         default m if NETFILTER_ADVANCED=n
0592         tristate "Netfilter nf_tables reject support"
0593         depends on !NF_TABLES_INET || (IPV6!=m || m)
0594         help
0595           This option adds the "reject" expression that you can use to
0596           explicitly deny and notify via TCP reset/ICMP informational errors
0597           unallowed traffic.
0598 
0599 config NFT_REJECT_INET
0600         depends on NF_TABLES_INET
0601         default NFT_REJECT
0602         tristate
0603 
0604 config NFT_COMPAT
0605         depends on NETFILTER_XTABLES
0606         tristate "Netfilter x_tables over nf_tables module"
0607         help
0608           This is required if you intend to use any of existing
0609           x_tables match/target extensions over the nf_tables
0610           framework.
0611 
0612 config NFT_HASH
0613         tristate "Netfilter nf_tables hash module"
0614         help
0615           This option adds the "hash" expression that you can use to perform
0616           a hash operation on registers.
0617 
0618 config NFT_FIB
0619         tristate
0620 
0621 config NFT_FIB_INET
0622         depends on NF_TABLES_INET
0623         depends on NFT_FIB_IPV4
0624         depends on NFT_FIB_IPV6
0625         tristate "Netfilter nf_tables fib inet support"
0626         help
0627           This option allows using the FIB expression from the inet table.
0628           The lookup will be delegated to the IPv4 or IPv6 FIB depending
0629           on the protocol of the packet.
0630 
0631 config NFT_XFRM
0632         tristate "Netfilter nf_tables xfrm/IPSec security association matching"
0633         depends on XFRM
0634         help
0635           This option adds an expression that you can use to extract properties
0636           of a packets security association.
0637 
0638 config NFT_SOCKET
0639         tristate "Netfilter nf_tables socket match support"
0640         depends on IPV6 || IPV6=n
0641         select NF_SOCKET_IPV4
0642         select NF_SOCKET_IPV6 if NF_TABLES_IPV6
0643         help
0644           This option allows matching for the presence or absence of a
0645           corresponding socket and its attributes.
0646 
0647 config NFT_OSF
0648         tristate "Netfilter nf_tables passive OS fingerprint support"
0649         depends on NETFILTER_ADVANCED
0650         select NETFILTER_NETLINK_OSF
0651         help
0652           This option allows matching packets from an specific OS.
0653 
0654 config NFT_TPROXY
0655         tristate "Netfilter nf_tables tproxy support"
0656         depends on IPV6 || IPV6=n
0657         select NF_DEFRAG_IPV4
0658         select NF_DEFRAG_IPV6 if NF_TABLES_IPV6
0659         select NF_TPROXY_IPV4
0660         select NF_TPROXY_IPV6 if NF_TABLES_IPV6
0661         help
0662           This makes transparent proxy support available in nftables.
0663 
0664 config NFT_SYNPROXY
0665         tristate "Netfilter nf_tables SYNPROXY expression support"
0666         depends on NF_CONNTRACK && NETFILTER_ADVANCED
0667         select NETFILTER_SYNPROXY
0668         select SYN_COOKIES
0669         help
0670           The SYNPROXY expression allows you to intercept TCP connections and
0671           establish them using syncookies before they are passed on to the
0672           server. This allows to avoid conntrack and server resource usage
0673           during SYN-flood attacks.
0674 
0675 if NF_TABLES_NETDEV
0676 
0677 config NF_DUP_NETDEV
0678         tristate "Netfilter packet duplication support"
0679         help
0680           This option enables the generic packet duplication infrastructure
0681           for Netfilter.
0682 
0683 config NFT_DUP_NETDEV
0684         tristate "Netfilter nf_tables netdev packet duplication support"
0685         select NF_DUP_NETDEV
0686         help
0687           This option enables packet duplication for the "netdev" family.
0688 
0689 config NFT_FWD_NETDEV
0690         tristate "Netfilter nf_tables netdev packet forwarding support"
0691         select NF_DUP_NETDEV
0692         help
0693           This option enables packet forwarding for the "netdev" family.
0694 
0695 config NFT_FIB_NETDEV
0696         depends on NFT_FIB_IPV4
0697         depends on NFT_FIB_IPV6
0698         tristate "Netfilter nf_tables netdev fib lookups support"
0699         help
0700           This option allows using the FIB expression from the netdev table.
0701           The lookup will be delegated to the IPv4 or IPv6 FIB depending
0702           on the protocol of the packet.
0703 
0704 config NFT_REJECT_NETDEV
0705         depends on NFT_REJECT_IPV4
0706         depends on NFT_REJECT_IPV6
0707         tristate "Netfilter nf_tables netdev REJECT support"
0708         help
0709           This option enables the REJECT support from the netdev table.
0710           The return packet generation will be delegated to the IPv4
0711           or IPv6 ICMP or TCP RST implementation depending on the
0712           protocol of the packet.
0713 
0714 endif # NF_TABLES_NETDEV
0715 
0716 endif # NF_TABLES
0717 
0718 config NF_FLOW_TABLE_INET
0719         tristate "Netfilter flow table mixed IPv4/IPv6 module"
0720         depends on NF_FLOW_TABLE
0721         help
0722           This option adds the flow table mixed IPv4/IPv6 support.
0723 
0724           To compile it as a module, choose M here.
0725 
0726 config NF_FLOW_TABLE
0727         tristate "Netfilter flow table module"
0728         depends on NETFILTER_INGRESS
0729         depends on NF_CONNTRACK
0730         depends on NF_TABLES
0731         help
0732           This option adds the flow table core infrastructure.
0733 
0734           To compile it as a module, choose M here.
0735 
0736 config NF_FLOW_TABLE_PROCFS
0737         bool "Supply flow table statistics in procfs"
0738         depends on NF_FLOW_TABLE
0739         depends on PROC_FS
0740         help
0741           This option enables for the flow table offload statistics
0742           to be shown in procfs under net/netfilter/nf_flowtable.
0743 
0744 config NETFILTER_XTABLES
0745         tristate "Netfilter Xtables support (required for ip_tables)"
0746         default m if NETFILTER_ADVANCED=n
0747         help
0748           This is required if you intend to use any of ip_tables,
0749           ip6_tables or arp_tables.
0750 
0751 if NETFILTER_XTABLES
0752 
0753 config NETFILTER_XTABLES_COMPAT
0754         bool "Netfilter Xtables 32bit support"
0755         depends on COMPAT
0756         default y
0757         help
0758            This option provides a translation layer to run 32bit arp,ip(6),ebtables
0759            binaries on 64bit kernels.
0760 
0761            If unsure, say N.
0762 
0763 comment "Xtables combined modules"
0764 
0765 config NETFILTER_XT_MARK
0766         tristate 'nfmark target and match support'
0767         default m if NETFILTER_ADVANCED=n
0768         help
0769         This option adds the "MARK" target and "mark" match.
0770 
0771         Netfilter mark matching allows you to match packets based on the
0772         "nfmark" value in the packet.
0773         The target allows you to create rules in the "mangle" table which alter
0774         the netfilter mark (nfmark) field associated with the packet.
0775 
0776         Prior to routing, the nfmark can influence the routing method and can
0777         also be used by other subsystems to change their behavior.
0778 
0779 config NETFILTER_XT_CONNMARK
0780         tristate 'ctmark target and match support'
0781         depends on NF_CONNTRACK
0782         depends on NETFILTER_ADVANCED
0783         select NF_CONNTRACK_MARK
0784         help
0785         This option adds the "CONNMARK" target and "connmark" match.
0786 
0787         Netfilter allows you to store a mark value per connection (a.k.a.
0788         ctmark), similarly to the packet mark (nfmark). Using this
0789         target and match, you can set and match on this mark.
0790 
0791 config NETFILTER_XT_SET
0792         tristate 'set target and match support'
0793         depends on IP_SET
0794         depends on NETFILTER_ADVANCED
0795         help
0796           This option adds the "SET" target and "set" match.
0797 
0798           Using this target and match, you can add/delete and match
0799           elements in the sets created by ipset(8).
0800 
0801           To compile it as a module, choose M here.  If unsure, say N.
0802 
0803 # alphabetically ordered list of targets
0804 
0805 comment "Xtables targets"
0806 
0807 config NETFILTER_XT_TARGET_AUDIT
0808         tristate "AUDIT target support"
0809         depends on AUDIT
0810         depends on NETFILTER_ADVANCED
0811         help
0812           This option adds a 'AUDIT' target, which can be used to create
0813           audit records for packets dropped/accepted.
0814 
0815           To compileit as a module, choose M here. If unsure, say N.
0816 
0817 config NETFILTER_XT_TARGET_CHECKSUM
0818         tristate "CHECKSUM target support"
0819         depends on IP_NF_MANGLE || IP6_NF_MANGLE
0820         depends on NETFILTER_ADVANCED
0821         help
0822           This option adds a `CHECKSUM' target, which can be used in the iptables mangle
0823           table to work around buggy DHCP clients in virtualized environments.
0824 
0825           Some old DHCP clients drop packets because they are not aware
0826           that the checksum would normally be offloaded to hardware and
0827           thus should be considered valid.
0828           This target can be used to fill in the checksum using iptables
0829           when such packets are sent via a virtual network device.
0830 
0831           To compile it as a module, choose M here.  If unsure, say N.
0832 
0833 config NETFILTER_XT_TARGET_CLASSIFY
0834         tristate '"CLASSIFY" target support'
0835         depends on NETFILTER_ADVANCED
0836         help
0837           This option adds a `CLASSIFY' target, which enables the user to set
0838           the priority of a packet. Some qdiscs can use this value for
0839           classification, among these are:
0840 
0841           atm, cbq, dsmark, pfifo_fast, htb, prio
0842 
0843           To compile it as a module, choose M here.  If unsure, say N.
0844 
0845 config NETFILTER_XT_TARGET_CONNMARK
0846         tristate  '"CONNMARK" target support'
0847         depends on NF_CONNTRACK
0848         depends on NETFILTER_ADVANCED
0849         select NETFILTER_XT_CONNMARK
0850         help
0851         This is a backwards-compat option for the user's convenience
0852         (e.g. when running oldconfig). It selects
0853         CONFIG_NETFILTER_XT_CONNMARK (combined connmark/CONNMARK module).
0854 
0855 config NETFILTER_XT_TARGET_CONNSECMARK
0856         tristate '"CONNSECMARK" target support'
0857         depends on NF_CONNTRACK && NF_CONNTRACK_SECMARK
0858         default m if NETFILTER_ADVANCED=n
0859         help
0860           The CONNSECMARK target copies security markings from packets
0861           to connections, and restores security markings from connections
0862           to packets (if the packets are not already marked).  This would
0863           normally be used in conjunction with the SECMARK target.
0864 
0865           To compile it as a module, choose M here.  If unsure, say N.
0866 
0867 config NETFILTER_XT_TARGET_CT
0868         tristate '"CT" target support'
0869         depends on NF_CONNTRACK
0870         depends on IP_NF_RAW || IP6_NF_RAW
0871         depends on NETFILTER_ADVANCED
0872         help
0873           This options adds a `CT' target, which allows to specify initial
0874           connection tracking parameters like events to be delivered and
0875           the helper to be used.
0876 
0877           To compile it as a module, choose M here.  If unsure, say N.
0878 
0879 config NETFILTER_XT_TARGET_DSCP
0880         tristate '"DSCP" and "TOS" target support'
0881         depends on IP_NF_MANGLE || IP6_NF_MANGLE
0882         depends on NETFILTER_ADVANCED
0883         help
0884           This option adds a `DSCP' target, which allows you to manipulate
0885           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
0886 
0887           The DSCP field can have any value between 0x0 and 0x3f inclusive.
0888 
0889           It also adds the "TOS" target, which allows you to create rules in
0890           the "mangle" table which alter the Type Of Service field of an IPv4
0891           or the Priority field of an IPv6 packet, prior to routing.
0892 
0893           To compile it as a module, choose M here.  If unsure, say N.
0894 
0895 config NETFILTER_XT_TARGET_HL
0896         tristate '"HL" hoplimit target support'
0897         depends on IP_NF_MANGLE || IP6_NF_MANGLE
0898         depends on NETFILTER_ADVANCED
0899         help
0900         This option adds the "HL" (for IPv6) and "TTL" (for IPv4)
0901         targets, which enable the user to change the
0902         hoplimit/time-to-live value of the IP header.
0903 
0904         While it is safe to decrement the hoplimit/TTL value, the
0905         modules also allow to increment and set the hoplimit value of
0906         the header to arbitrary values. This is EXTREMELY DANGEROUS
0907         since you can easily create immortal packets that loop
0908         forever on the network.
0909 
0910 config NETFILTER_XT_TARGET_HMARK
0911         tristate '"HMARK" target support'
0912         depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
0913         depends on NETFILTER_ADVANCED
0914         help
0915         This option adds the "HMARK" target.
0916 
0917         The target allows you to create rules in the "raw" and "mangle" tables
0918         which set the skbuff mark by means of hash calculation within a given
0919         range. The nfmark can influence the routing method and can also be used
0920         by other subsystems to change their behaviour.
0921 
0922         To compile it as a module, choose M here. If unsure, say N.
0923 
0924 config NETFILTER_XT_TARGET_IDLETIMER
0925         tristate  "IDLETIMER target support"
0926         depends on NETFILTER_ADVANCED
0927         help
0928 
0929           This option adds the `IDLETIMER' target.  Each matching packet
0930           resets the timer associated with label specified when the rule is
0931           added.  When the timer expires, it triggers a sysfs notification.
0932           The remaining time for expiration can be read via sysfs.
0933 
0934           To compile it as a module, choose M here.  If unsure, say N.
0935 
0936 config NETFILTER_XT_TARGET_LED
0937         tristate '"LED" target support'
0938         depends on LEDS_CLASS && LEDS_TRIGGERS
0939         depends on NETFILTER_ADVANCED
0940         help
0941           This option adds a `LED' target, which allows you to blink LEDs in
0942           response to particular packets passing through your machine.
0943 
0944           This can be used to turn a spare LED into a network activity LED,
0945           which only flashes in response to FTP transfers, for example.  Or
0946           you could have an LED which lights up for a minute or two every time
0947           somebody connects to your machine via SSH.
0948 
0949           You will need support for the "led" class to make this work.
0950 
0951           To create an LED trigger for incoming SSH traffic:
0952             iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000
0953 
0954           Then attach the new trigger to an LED on your system:
0955             echo netfilter-ssh > /sys/class/leds/<ledname>/trigger
0956 
0957           For more information on the LEDs available on your system, see
0958           Documentation/leds/leds-class.rst
0959 
0960 config NETFILTER_XT_TARGET_LOG
0961         tristate "LOG target support"
0962         select NF_LOG_SYSLOG
0963         select NF_LOG_IPV6 if IP6_NF_IPTABLES
0964         default m if NETFILTER_ADVANCED=n
0965         help
0966           This option adds a `LOG' target, which allows you to create rules in
0967           any iptables table which records the packet header to the syslog.
0968 
0969           To compile it as a module, choose M here.  If unsure, say N.
0970 
0971 config NETFILTER_XT_TARGET_MARK
0972         tristate '"MARK" target support'
0973         depends on NETFILTER_ADVANCED
0974         select NETFILTER_XT_MARK
0975         help
0976         This is a backwards-compat option for the user's convenience
0977         (e.g. when running oldconfig). It selects
0978         CONFIG_NETFILTER_XT_MARK (combined mark/MARK module).
0979 
0980 config NETFILTER_XT_NAT
0981         tristate '"SNAT and DNAT" targets support'
0982         depends on NF_NAT
0983         help
0984         This option enables the SNAT and DNAT targets.
0985 
0986         To compile it as a module, choose M here. If unsure, say N.
0987 
0988 config NETFILTER_XT_TARGET_NETMAP
0989         tristate '"NETMAP" target support'
0990         depends on NF_NAT
0991         help
0992         NETMAP is an implementation of static 1:1 NAT mapping of network
0993         addresses. It maps the network address part, while keeping the host
0994         address part intact.
0995 
0996         To compile it as a module, choose M here. If unsure, say N.
0997 
0998 config NETFILTER_XT_TARGET_NFLOG
0999         tristate '"NFLOG" target support'
1000         default m if NETFILTER_ADVANCED=n
1001         select NETFILTER_NETLINK_LOG
1002         help
1003           This option enables the NFLOG target, which allows to LOG
1004           messages through nfnetlink_log.
1005 
1006           To compile it as a module, choose M here.  If unsure, say N.
1007 
1008 config NETFILTER_XT_TARGET_NFQUEUE
1009         tristate '"NFQUEUE" target Support'
1010         depends on NETFILTER_ADVANCED
1011         select NETFILTER_NETLINK_QUEUE
1012         help
1013           This target replaced the old obsolete QUEUE target.
1014 
1015           As opposed to QUEUE, it supports 65535 different queues,
1016           not just one.
1017 
1018           To compile it as a module, choose M here.  If unsure, say N.
1019 
1020 config NETFILTER_XT_TARGET_NOTRACK
1021         tristate  '"NOTRACK" target support (DEPRECATED)'
1022         depends on NF_CONNTRACK
1023         depends on IP_NF_RAW || IP6_NF_RAW
1024         depends on NETFILTER_ADVANCED
1025         select NETFILTER_XT_TARGET_CT
1026 
1027 config NETFILTER_XT_TARGET_RATEEST
1028         tristate '"RATEEST" target support'
1029         depends on NETFILTER_ADVANCED
1030         help
1031           This option adds a `RATEEST' target, which allows to measure
1032           rates similar to TC estimators. The `rateest' match can be
1033           used to match on the measured rates.
1034 
1035           To compile it as a module, choose M here.  If unsure, say N.
1036 
1037 config NETFILTER_XT_TARGET_REDIRECT
1038         tristate "REDIRECT target support"
1039         depends on NF_NAT
1040         select NF_NAT_REDIRECT
1041         help
1042         REDIRECT is a special case of NAT: all incoming connections are
1043         mapped onto the incoming interface's address, causing the packets to
1044         come to the local machine instead of passing through. This is
1045         useful for transparent proxies.
1046 
1047         To compile it as a module, choose M here. If unsure, say N.
1048 
1049 config NETFILTER_XT_TARGET_MASQUERADE
1050         tristate "MASQUERADE target support"
1051         depends on NF_NAT
1052         default m if NETFILTER_ADVANCED=n
1053         select NF_NAT_MASQUERADE
1054         help
1055           Masquerading is a special case of NAT: all outgoing connections are
1056           changed to seem to come from a particular interface's address, and
1057           if the interface goes down, those connections are lost.  This is
1058           only useful for dialup accounts with dynamic IP address (ie. your IP
1059           address will be different on next dialup).
1060 
1061           To compile it as a module, choose M here.  If unsure, say N.
1062 
1063 config NETFILTER_XT_TARGET_TEE
1064         tristate '"TEE" - packet cloning to alternate destination'
1065         depends on NETFILTER_ADVANCED
1066         depends on IPV6 || IPV6=n
1067         depends on !NF_CONNTRACK || NF_CONNTRACK
1068         depends on IP6_NF_IPTABLES || !IP6_NF_IPTABLES
1069         select NF_DUP_IPV4
1070         select NF_DUP_IPV6 if IP6_NF_IPTABLES
1071         help
1072         This option adds a "TEE" target with which a packet can be cloned and
1073         this clone be rerouted to another nexthop.
1074 
1075 config NETFILTER_XT_TARGET_TPROXY
1076         tristate '"TPROXY" target transparent proxying support'
1077         depends on NETFILTER_XTABLES
1078         depends on NETFILTER_ADVANCED
1079         depends on IPV6 || IPV6=n
1080         depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
1081         depends on IP_NF_MANGLE
1082         select NF_DEFRAG_IPV4
1083         select NF_DEFRAG_IPV6 if IP6_NF_IPTABLES != n
1084         select NF_TPROXY_IPV4
1085         select NF_TPROXY_IPV6 if IP6_NF_IPTABLES
1086         help
1087           This option adds a `TPROXY' target, which is somewhat similar to
1088           REDIRECT.  It can only be used in the mangle table and is useful
1089           to redirect traffic to a transparent proxy.  It does _not_ depend
1090           on Netfilter connection tracking and NAT, unlike REDIRECT.
1091           For it to work you will have to configure certain iptables rules
1092           and use policy routing. For more information on how to set it up
1093           see Documentation/networking/tproxy.rst.
1094 
1095           To compile it as a module, choose M here.  If unsure, say N.
1096 
1097 config NETFILTER_XT_TARGET_TRACE
1098         tristate  '"TRACE" target support'
1099         depends on IP_NF_RAW || IP6_NF_RAW
1100         depends on NETFILTER_ADVANCED
1101         help
1102           The TRACE target allows you to mark packets so that the kernel
1103           will log every rule which match the packets as those traverse
1104           the tables, chains, rules.
1105 
1106           If you want to compile it as a module, say M here and read
1107           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1108 
1109 config NETFILTER_XT_TARGET_SECMARK
1110         tristate '"SECMARK" target support'
1111         depends on NETWORK_SECMARK
1112         default m if NETFILTER_ADVANCED=n
1113         help
1114           The SECMARK target allows security marking of network
1115           packets, for use with security subsystems.
1116 
1117           To compile it as a module, choose M here.  If unsure, say N.
1118 
1119 config NETFILTER_XT_TARGET_TCPMSS
1120         tristate '"TCPMSS" target support'
1121         depends on IPV6 || IPV6=n
1122         default m if NETFILTER_ADVANCED=n
1123         help
1124           This option adds a `TCPMSS' target, which allows you to alter the
1125           MSS value of TCP SYN packets, to control the maximum size for that
1126           connection (usually limiting it to your outgoing interface's MTU
1127           minus 40).
1128 
1129           This is used to overcome criminally braindead ISPs or servers which
1130           block ICMP Fragmentation Needed packets.  The symptoms of this
1131           problem are that everything works fine from your Linux
1132           firewall/router, but machines behind it can never exchange large
1133           packets:
1134                 1) Web browsers connect, then hang with no data received.
1135                 2) Small mail works fine, but large emails hang.
1136                 3) ssh works fine, but scp hangs after initial handshaking.
1137 
1138           Workaround: activate this option and add a rule to your firewall
1139           configuration like:
1140 
1141           iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
1142                          -j TCPMSS --clamp-mss-to-pmtu
1143 
1144           To compile it as a module, choose M here.  If unsure, say N.
1145 
1146 config NETFILTER_XT_TARGET_TCPOPTSTRIP
1147         tristate '"TCPOPTSTRIP" target support'
1148         depends on IP_NF_MANGLE || IP6_NF_MANGLE
1149         depends on NETFILTER_ADVANCED
1150         help
1151           This option adds a "TCPOPTSTRIP" target, which allows you to strip
1152           TCP options from TCP packets.
1153 
1154 # alphabetically ordered list of matches
1155 
1156 comment "Xtables matches"
1157 
1158 config NETFILTER_XT_MATCH_ADDRTYPE
1159         tristate '"addrtype" address type match support'
1160         default m if NETFILTER_ADVANCED=n
1161         help
1162           This option allows you to match what routing thinks of an address,
1163           eg. UNICAST, LOCAL, BROADCAST, ...
1164 
1165           If you want to compile it as a module, say M here and read
1166           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1167 
1168 config NETFILTER_XT_MATCH_BPF
1169         tristate '"bpf" match support'
1170         depends on NETFILTER_ADVANCED
1171         help
1172           BPF matching applies a linux socket filter to each packet and
1173           accepts those for which the filter returns non-zero.
1174 
1175           To compile it as a module, choose M here.  If unsure, say N.
1176 
1177 config NETFILTER_XT_MATCH_CGROUP
1178         tristate '"control group" match support'
1179         depends on NETFILTER_ADVANCED
1180         depends on CGROUPS
1181         select CGROUP_NET_CLASSID
1182         help
1183         Socket/process control group matching allows you to match locally
1184         generated packets based on which net_cls control group processes
1185         belong to.
1186 
1187 config NETFILTER_XT_MATCH_CLUSTER
1188         tristate '"cluster" match support'
1189         depends on NF_CONNTRACK
1190         depends on NETFILTER_ADVANCED
1191         help
1192           This option allows you to build work-load-sharing clusters of
1193           network servers/stateful firewalls without having a dedicated
1194           load-balancing router/server/switch. Basically, this match returns
1195           true when the packet must be handled by this cluster node. Thus,
1196           all nodes see all packets and this match decides which node handles
1197           what packets. The work-load sharing algorithm is based on source
1198           address hashing.
1199 
1200           If you say Y or M here, try `iptables -m cluster --help` for
1201           more information.
1202 
1203 config NETFILTER_XT_MATCH_COMMENT
1204         tristate  '"comment" match support'
1205         depends on NETFILTER_ADVANCED
1206         help
1207           This option adds a `comment' dummy-match, which allows you to put
1208           comments in your iptables ruleset.
1209 
1210           If you want to compile it as a module, say M here and read
1211           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1212 
1213 config NETFILTER_XT_MATCH_CONNBYTES
1214         tristate  '"connbytes" per-connection counter match support'
1215         depends on NF_CONNTRACK
1216         depends on NETFILTER_ADVANCED
1217         help
1218           This option adds a `connbytes' match, which allows you to match the
1219           number of bytes and/or packets for each direction within a connection.
1220 
1221           If you want to compile it as a module, say M here and read
1222           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1223 
1224 config NETFILTER_XT_MATCH_CONNLABEL
1225         tristate '"connlabel" match support'
1226         select NF_CONNTRACK_LABELS
1227         depends on NF_CONNTRACK
1228         depends on NETFILTER_ADVANCED
1229         help
1230           This match allows you to test and assign userspace-defined labels names
1231           to a connection.  The kernel only stores bit values - mapping
1232           names to bits is done by userspace.
1233 
1234           Unlike connmark, more than 32 flag bits may be assigned to a
1235           connection simultaneously.
1236 
1237 config NETFILTER_XT_MATCH_CONNLIMIT
1238         tristate '"connlimit" match support'
1239         depends on NF_CONNTRACK
1240         depends on NETFILTER_ADVANCED
1241         select NETFILTER_CONNCOUNT
1242         help
1243           This match allows you to match against the number of parallel
1244           connections to a server per client IP address (or address block).
1245 
1246 config NETFILTER_XT_MATCH_CONNMARK
1247         tristate  '"connmark" connection mark match support'
1248         depends on NF_CONNTRACK
1249         depends on NETFILTER_ADVANCED
1250         select NETFILTER_XT_CONNMARK
1251         help
1252         This is a backwards-compat option for the user's convenience
1253         (e.g. when running oldconfig). It selects
1254         CONFIG_NETFILTER_XT_CONNMARK (combined connmark/CONNMARK module).
1255 
1256 config NETFILTER_XT_MATCH_CONNTRACK
1257         tristate '"conntrack" connection tracking match support'
1258         depends on NF_CONNTRACK
1259         default m if NETFILTER_ADVANCED=n
1260         help
1261           This is a general conntrack match module, a superset of the state match.
1262 
1263           It allows matching on additional conntrack information, which is
1264           useful in complex configurations, such as NAT gateways with multiple
1265           internet links or tunnels.
1266 
1267           To compile it as a module, choose M here.  If unsure, say N.
1268 
1269 config NETFILTER_XT_MATCH_CPU
1270         tristate '"cpu" match support'
1271         depends on NETFILTER_ADVANCED
1272         help
1273           CPU matching allows you to match packets based on the CPU
1274           currently handling the packet.
1275 
1276           To compile it as a module, choose M here.  If unsure, say N.
1277 
1278 config NETFILTER_XT_MATCH_DCCP
1279         tristate '"dccp" protocol match support'
1280         depends on NETFILTER_ADVANCED
1281         default IP_DCCP
1282         help
1283           With this option enabled, you will be able to use the iptables
1284           `dccp' match in order to match on DCCP source/destination ports
1285           and DCCP flags.
1286 
1287           If you want to compile it as a module, say M here and read
1288           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1289 
1290 config NETFILTER_XT_MATCH_DEVGROUP
1291         tristate '"devgroup" match support'
1292         depends on NETFILTER_ADVANCED
1293         help
1294           This options adds a `devgroup' match, which allows to match on the
1295           device group a network device is assigned to.
1296 
1297           To compile it as a module, choose M here.  If unsure, say N.
1298 
1299 config NETFILTER_XT_MATCH_DSCP
1300         tristate '"dscp" and "tos" match support'
1301         depends on NETFILTER_ADVANCED
1302         help
1303           This option adds a `DSCP' match, which allows you to match against
1304           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
1305 
1306           The DSCP field can have any value between 0x0 and 0x3f inclusive.
1307 
1308           It will also add a "tos" match, which allows you to match packets
1309           based on the Type Of Service fields of the IPv4 packet (which share
1310           the same bits as DSCP).
1311 
1312           To compile it as a module, choose M here.  If unsure, say N.
1313 
1314 config NETFILTER_XT_MATCH_ECN
1315         tristate '"ecn" match support'
1316         depends on NETFILTER_ADVANCED
1317         help
1318         This option adds an "ECN" match, which allows you to match against
1319         the IPv4 and TCP header ECN fields.
1320 
1321         To compile it as a module, choose M here. If unsure, say N.
1322 
1323 config NETFILTER_XT_MATCH_ESP
1324         tristate '"esp" match support'
1325         depends on NETFILTER_ADVANCED
1326         help
1327           This match extension allows you to match a range of SPIs
1328           inside ESP header of IPSec packets.
1329 
1330           To compile it as a module, choose M here.  If unsure, say N.
1331 
1332 config NETFILTER_XT_MATCH_HASHLIMIT
1333         tristate '"hashlimit" match support'
1334         depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
1335         depends on NETFILTER_ADVANCED
1336         help
1337           This option adds a `hashlimit' match.
1338 
1339           As opposed to `limit', this match dynamically creates a hash table
1340           of limit buckets, based on your selection of source/destination
1341           addresses and/or ports.
1342 
1343           It enables you to express policies like `10kpps for any given
1344           destination address' or `500pps from any given source address'
1345           with a single rule.
1346 
1347 config NETFILTER_XT_MATCH_HELPER
1348         tristate '"helper" match support'
1349         depends on NF_CONNTRACK
1350         depends on NETFILTER_ADVANCED
1351         help
1352           Helper matching allows you to match packets in dynamic connections
1353           tracked by a conntrack-helper, ie. nf_conntrack_ftp
1354 
1355           To compile it as a module, choose M here.  If unsure, say Y.
1356 
1357 config NETFILTER_XT_MATCH_HL
1358         tristate '"hl" hoplimit/TTL match support'
1359         depends on NETFILTER_ADVANCED
1360         help
1361         HL matching allows you to match packets based on the hoplimit
1362         in the IPv6 header, or the time-to-live field in the IPv4
1363         header of the packet.
1364 
1365 config NETFILTER_XT_MATCH_IPCOMP
1366         tristate '"ipcomp" match support'
1367         depends on NETFILTER_ADVANCED
1368         help
1369           This match extension allows you to match a range of CPIs(16 bits)
1370           inside IPComp header of IPSec packets.
1371 
1372           To compile it as a module, choose M here.  If unsure, say N.
1373 
1374 config NETFILTER_XT_MATCH_IPRANGE
1375         tristate '"iprange" address range match support'
1376         depends on NETFILTER_ADVANCED
1377         help
1378         This option adds a "iprange" match, which allows you to match based on
1379         an IP address range. (Normal iptables only matches on single addresses
1380         with an optional mask.)
1381 
1382         If unsure, say M.
1383 
1384 config NETFILTER_XT_MATCH_IPVS
1385         tristate '"ipvs" match support'
1386         depends on IP_VS
1387         depends on NETFILTER_ADVANCED
1388         depends on NF_CONNTRACK
1389         help
1390           This option allows you to match against IPVS properties of a packet.
1391 
1392           If unsure, say N.
1393 
1394 config NETFILTER_XT_MATCH_L2TP
1395         tristate '"l2tp" match support'
1396         depends on NETFILTER_ADVANCED
1397         default L2TP
1398         help
1399         This option adds an "L2TP" match, which allows you to match against
1400         L2TP protocol header fields.
1401 
1402         To compile it as a module, choose M here. If unsure, say N.
1403 
1404 config NETFILTER_XT_MATCH_LENGTH
1405         tristate '"length" match support'
1406         depends on NETFILTER_ADVANCED
1407         help
1408           This option allows you to match the length of a packet against a
1409           specific value or range of values.
1410 
1411           To compile it as a module, choose M here.  If unsure, say N.
1412 
1413 config NETFILTER_XT_MATCH_LIMIT
1414         tristate '"limit" match support'
1415         depends on NETFILTER_ADVANCED
1416         help
1417           limit matching allows you to control the rate at which a rule can be
1418           matched: mainly useful in combination with the LOG target ("LOG
1419           target support", below) and to avoid some Denial of Service attacks.
1420 
1421           To compile it as a module, choose M here.  If unsure, say N.
1422 
1423 config NETFILTER_XT_MATCH_MAC
1424         tristate '"mac" address match support'
1425         depends on NETFILTER_ADVANCED
1426         help
1427           MAC matching allows you to match packets based on the source
1428           Ethernet address of the packet.
1429 
1430           To compile it as a module, choose M here.  If unsure, say N.
1431 
1432 config NETFILTER_XT_MATCH_MARK
1433         tristate '"mark" match support'
1434         depends on NETFILTER_ADVANCED
1435         select NETFILTER_XT_MARK
1436         help
1437         This is a backwards-compat option for the user's convenience
1438         (e.g. when running oldconfig). It selects
1439         CONFIG_NETFILTER_XT_MARK (combined mark/MARK module).
1440 
1441 config NETFILTER_XT_MATCH_MULTIPORT
1442         tristate '"multiport" Multiple port match support'
1443         depends on NETFILTER_ADVANCED
1444         help
1445           Multiport matching allows you to match TCP or UDP packets based on
1446           a series of source or destination ports: normally a rule can only
1447           match a single range of ports.
1448 
1449           To compile it as a module, choose M here.  If unsure, say N.
1450 
1451 config NETFILTER_XT_MATCH_NFACCT
1452         tristate '"nfacct" match support'
1453         depends on NETFILTER_ADVANCED
1454         select NETFILTER_NETLINK_ACCT
1455         help
1456           This option allows you to use the extended accounting through
1457           nfnetlink_acct.
1458 
1459           To compile it as a module, choose M here.  If unsure, say N.
1460 
1461 config NETFILTER_XT_MATCH_OSF
1462         tristate '"osf" Passive OS fingerprint match'
1463         depends on NETFILTER_ADVANCED
1464         select NETFILTER_NETLINK_OSF
1465         help
1466           This option selects the Passive OS Fingerprinting match module
1467           that allows to passively match the remote operating system by
1468           analyzing incoming TCP SYN packets.
1469 
1470           Rules and loading software can be downloaded from
1471           http://www.ioremap.net/projects/osf
1472 
1473           To compile it as a module, choose M here.  If unsure, say N.
1474 
1475 config NETFILTER_XT_MATCH_OWNER
1476         tristate '"owner" match support'
1477         depends on NETFILTER_ADVANCED
1478         help
1479         Socket owner matching allows you to match locally-generated packets
1480         based on who created the socket: the user or group. It is also
1481         possible to check whether a socket actually exists.
1482 
1483 config NETFILTER_XT_MATCH_POLICY
1484         tristate 'IPsec "policy" match support'
1485         depends on XFRM
1486         default m if NETFILTER_ADVANCED=n
1487         help
1488           Policy matching allows you to match packets based on the
1489           IPsec policy that was used during decapsulation/will
1490           be used during encapsulation.
1491 
1492           To compile it as a module, choose M here.  If unsure, say N.
1493 
1494 config NETFILTER_XT_MATCH_PHYSDEV
1495         tristate '"physdev" match support'
1496         depends on BRIDGE && BRIDGE_NETFILTER
1497         depends on NETFILTER_ADVANCED
1498         help
1499           Physdev packet matching matches against the physical bridge ports
1500           the IP packet arrived on or will leave by.
1501 
1502           To compile it as a module, choose M here.  If unsure, say N.
1503 
1504 config NETFILTER_XT_MATCH_PKTTYPE
1505         tristate '"pkttype" packet type match support'
1506         depends on NETFILTER_ADVANCED
1507         help
1508           Packet type matching allows you to match a packet by
1509           its "class", eg. BROADCAST, MULTICAST, ...
1510 
1511           Typical usage:
1512           iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
1513 
1514           To compile it as a module, choose M here.  If unsure, say N.
1515 
1516 config NETFILTER_XT_MATCH_QUOTA
1517         tristate '"quota" match support'
1518         depends on NETFILTER_ADVANCED
1519         help
1520           This option adds a `quota' match, which allows to match on a
1521           byte counter.
1522 
1523           If you want to compile it as a module, say M here and read
1524           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1525 
1526 config NETFILTER_XT_MATCH_RATEEST
1527         tristate '"rateest" match support'
1528         depends on NETFILTER_ADVANCED
1529         select NETFILTER_XT_TARGET_RATEEST
1530         help
1531           This option adds a `rateest' match, which allows to match on the
1532           rate estimated by the RATEEST target.
1533 
1534           To compile it as a module, choose M here.  If unsure, say N.
1535 
1536 config NETFILTER_XT_MATCH_REALM
1537         tristate  '"realm" match support'
1538         depends on NETFILTER_ADVANCED
1539         select IP_ROUTE_CLASSID
1540         help
1541           This option adds a `realm' match, which allows you to use the realm
1542           key from the routing subsystem inside iptables.
1543 
1544           This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option
1545           in tc world.
1546 
1547           If you want to compile it as a module, say M here and read
1548           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1549 
1550 config NETFILTER_XT_MATCH_RECENT
1551         tristate '"recent" match support'
1552         depends on NETFILTER_ADVANCED
1553         help
1554         This match is used for creating one or many lists of recently
1555         used addresses and then matching against that/those list(s).
1556 
1557         Short options are available by using 'iptables -m recent -h'
1558         Official Website: <http://snowman.net/projects/ipt_recent/>
1559 
1560 config NETFILTER_XT_MATCH_SCTP
1561         tristate  '"sctp" protocol match support'
1562         depends on NETFILTER_ADVANCED
1563         default IP_SCTP
1564         help
1565           With this option enabled, you will be able to use the
1566           `sctp' match in order to match on SCTP source/destination ports
1567           and SCTP chunk types.
1568 
1569           If you want to compile it as a module, say M here and read
1570           <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
1571 
1572 config NETFILTER_XT_MATCH_SOCKET
1573         tristate '"socket" match support'
1574         depends on NETFILTER_XTABLES
1575         depends on NETFILTER_ADVANCED
1576         depends on IPV6 || IPV6=n
1577         depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
1578         select NF_SOCKET_IPV4
1579         select NF_SOCKET_IPV6 if IP6_NF_IPTABLES
1580         select NF_DEFRAG_IPV4
1581         select NF_DEFRAG_IPV6 if IP6_NF_IPTABLES != n
1582         help
1583           This option adds a `socket' match, which can be used to match
1584           packets for which a TCP or UDP socket lookup finds a valid socket.
1585           It can be used in combination with the MARK target and policy
1586           routing to implement full featured non-locally bound sockets.
1587 
1588           To compile it as a module, choose M here.  If unsure, say N.
1589 
1590 config NETFILTER_XT_MATCH_STATE
1591         tristate '"state" match support'
1592         depends on NF_CONNTRACK
1593         default m if NETFILTER_ADVANCED=n
1594         help
1595           Connection state matching allows you to match packets based on their
1596           relationship to a tracked connection (ie. previous packets).  This
1597           is a powerful tool for packet classification.
1598 
1599           To compile it as a module, choose M here.  If unsure, say N.
1600 
1601 config NETFILTER_XT_MATCH_STATISTIC
1602         tristate '"statistic" match support'
1603         depends on NETFILTER_ADVANCED
1604         help
1605           This option adds a `statistic' match, which allows you to match
1606           on packets periodically or randomly with a given percentage.
1607 
1608           To compile it as a module, choose M here.  If unsure, say N.
1609 
1610 config NETFILTER_XT_MATCH_STRING
1611         tristate  '"string" match support'
1612         depends on NETFILTER_ADVANCED
1613         select TEXTSEARCH
1614         select TEXTSEARCH_KMP
1615         select TEXTSEARCH_BM
1616         select TEXTSEARCH_FSM
1617         help
1618           This option adds a `string' match, which allows you to look for
1619           pattern matchings in packets.
1620 
1621           To compile it as a module, choose M here.  If unsure, say N.
1622 
1623 config NETFILTER_XT_MATCH_TCPMSS
1624         tristate '"tcpmss" match support'
1625         depends on NETFILTER_ADVANCED
1626         help
1627           This option adds a `tcpmss' match, which allows you to examine the
1628           MSS value of TCP SYN packets, which control the maximum packet size
1629           for that connection.
1630 
1631           To compile it as a module, choose M here.  If unsure, say N.
1632 
1633 config NETFILTER_XT_MATCH_TIME
1634         tristate '"time" match support'
1635         depends on NETFILTER_ADVANCED
1636         help
1637           This option adds a "time" match, which allows you to match based on
1638           the packet arrival time (at the machine which netfilter is running)
1639           on) or departure time/date (for locally generated packets).
1640 
1641           If you say Y here, try `iptables -m time --help` for
1642           more information.
1643 
1644           If you want to compile it as a module, say M here.
1645           If unsure, say N.
1646 
1647 config NETFILTER_XT_MATCH_U32
1648         tristate '"u32" match support'
1649         depends on NETFILTER_ADVANCED
1650         help
1651           u32 allows you to extract quantities of up to 4 bytes from a packet,
1652           AND them with specified masks, shift them by specified amounts and
1653           test whether the results are in any of a set of specified ranges.
1654           The specification of what to extract is general enough to skip over
1655           headers with lengths stored in the packet, as in IP or TCP header
1656           lengths.
1657 
1658           Details and examples are in the kernel module source.
1659 
1660 endif # NETFILTER_XTABLES
1661 
1662 endmenu
1663 
1664 source "net/netfilter/ipset/Kconfig"
1665 
1666 source "net/netfilter/ipvs/Kconfig"