Main Page: Difference between revisions

From nftables wiki
Jump to navigation Jump to search
(Added a couple of sections and reorganized links for better flow. Eliminated a little redundant cruft.)
(very confusing presentation, remove it)
 
(28 intermediate revisions by 4 users not shown)
Line 13: Line 13:


= Reference =
= Reference =
* [https://www.netfilter.org/projects/nftables/manpage.html man nft - netfilter website]
* [https://www.mankier.com/8/nft man nft - mankier.com]
* [[Quick reference-nftables in 10 minutes|Quick reference, nftables in 10 minutes]]
* [[Quick reference-nftables in 10 minutes|Quick reference, nftables in 10 minutes]]
* [[Netfilter hooks]] and integration with existing Netfilter components.
* [[Netfilter hooks]] and nftables integration with existing Netfilter components
* [[nftables families|Understanding nftables families]]
* [[nftables families|Understanding nftables families]]
* [[Data_types|Data types]]
* [[Connection_Tracking_System|Connection tracking system (conntrack)]], used for stateful firewalling and NAT
* [[Troubleshooting|Troubleshooting and FAQ]]
* [[Troubleshooting|Troubleshooting and FAQ]]
* [[Further_documentation|Additional documentation]]




Line 41: Line 46:
* [[Scripting]]
* [[Scripting]]
* [[Ruleset debug/tracing]]
* [[Ruleset debug/tracing]]
* [[Ruleset debug/VM code analysis]]
* [[Output text modifiers]]
* [[Output text modifiers]]


 
= Expressions: Matching packets =
= Supported selectors for packet matching =
* [[Matching packet header fields]]
* [[Matching packet metainformation]]
* [[Matching packet metainformation]]
* [[Matching packet headers]]
* [[Matching connection tracking stateful metainformation]]
* [[Matching connection tracking stateful metainformation]]
* [[Matching routing information]]
* [[Rate limiting matchings]]
* [[Rate limiting matchings]]
* [[Routing information]]




= Possible actions on packets =
= Statements: Acting on packet matches =
* [[Accepting and dropping packets]]
* [[Accepting and dropping packets]]
* [[Rejecting traffic]]
* [[Jumping to chain]]
* [[Jumping to chain]]
* [[Rejecting traffic]]
* [[Counters]]
* [[Logging traffic]]
* [[Logging traffic]]
* [[Performing Network Address Translation (NAT)]]
* [[Performing Network Address Translation (NAT)]]
* [[Setting packet metainformation]]
* [[Setting packet metainformation]]
* [[Queueing to userspace]]
* [[Setting packet connection tracking metainformation]]
* [[Mangling packet headers]] (including stateless NAT)
* [[Duplicating packets]]
* [[Duplicating packets]]
* [[Mangle packet header fields]] (including stateless NAT)
* [[Mangle TCP options]]
* [[Counters]]
* [[Load balancing]]
* [[Load balancing]]
* [[Conntrack helpers]] (Layer 7 ALG)
* [[Queueing to userspace]]
* [[Setting packet connection tracking metainformation]]




= Advanced data structures for performance packet classification =
= Advanced data structures for performance packet classification =
* [[Sets]]
* [[Intervals]]
* [[Intervals]]
* [[Maps]]
* [[Verdict_Maps_(vmaps) | Verdict maps]]
* [[Concatenations]]
* [[Concatenations]]
* [[Meters|Metering]] (formerly known as flow tables before nftables 0.8.1 release)
* [[Updating sets from the packet path]]
* [[Element timeouts]]
* [[Math operations]]
* [[Math operations]]
* [[Stateful objects]]
* [[Stateful objects]]
* [[Flowtable]] (the fastpath network stack bypass)
** [[Counters]]
** [[Quotas]]
** [[Limits]]
** [[Connlimits]] (''ct count'')
* Other objects
** [[Conntrack helpers]] (''ct helper'', Layer 7 ALG)
** [[Ct_timeout|Conntrack timeout policies]] (''ct timeout'')
** [[Ct_expectation|Conntrack expectations]] (''ct expectation'')
** [[Synproxy]]
** [[Secmark|Secmarks]]
* Generic set infrastructure
** [[Sets]]
** [[Element timeouts]]
** [[Updating sets from the packet path]]
** [[Maps]]
** [[Verdict_Maps_(vmaps) | Verdict maps]]
** [[Meters|Metering]] (formerly known as flow tables before nftables 0.8.1)
* [[Flowtables]] (the fastpath network stack bypass)




Line 86: Line 100:
* [[Simple ruleset for a workstation]]
* [[Simple ruleset for a workstation]]
* [[Simple ruleset for a server]]
* [[Simple ruleset for a server]]
* [[Simple ruleset for a home router]]
* [[Bridge filtering]]
* [[Bridge filtering]]
* [[Multiple NATs using nftables maps]]
* [[Multiple NATs using nftables maps]]
Line 93: Line 108:
* [[Using configuration management systems]] (like puppet, ansible, etc)
* [[Using configuration management systems]] (like puppet, ansible, etc)
* [[GeoIP matching]]
* [[GeoIP matching]]


= Development =
= Development =
Line 115: Line 129:
* [https://www.youtube.com/watch?v=Sy0JDX451ns Florian Westphal - Why nftables?]
* [https://www.youtube.com/watch?v=Sy0JDX451ns Florian Westphal - Why nftables?]
* Watch [https://www.youtube.com/watch?v=0wQfSfDVN94 NLUUG - Goodbye iptables, Hello nftables]
* Watch [https://www.youtube.com/watch?v=0wQfSfDVN94 NLUUG - Goodbye iptables, Hello nftables]
* Watch [https://www.youtube.com/watch?v=Uf5ULkEWPL0 LCA2018 - nftables from a user perspective]


Watch videos to track updates:
Watch videos to track updates:

Latest revision as of 14:47, 12 October 2024

Welcome to the nftables HOWTO documentation page. Here you will find documentation on how to build, install, configure and use nftables.

If you have any suggestion to improve it, please send your comments to Netfilter users mailing list <netfilter@vger.kernel.org>.


News

Introduction


Reference


Installing nftables


Upgrading from xtables to nftables


Basic operation

Expressions: Matching packets


Statements: Acting on packet matches


Advanced data structures for performance packet classification


Examples

Development

Check Portal:DeveloperDocs - documentation for netfilter developers.

Some hints on the general development progress:


External links

Watch some videos:

Watch videos to track updates:

Additional documentations and articles:


Thanks

To the NLnet foundation for initial sponsorship of this HOWTO:

logo.gif

To Eric Leblond, for boostrapping the Nftables quick howto in 2013.