Main Page: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 1: | Line 1: | ||
Welcome to the ''nftables'' HOWTO documentation page. Here you will find documentation on how to build, install, configure and use nftables. | Welcome to the ''nftables'' HOWTO documentation page. Here you will find documentation on how to build, install, configure and use nftables. | ||
This documentation | This documentation is maintained by volunteers, therefore, if you have any suggestion to improve it, please send your comments to Netfilter users mailing list <netfilter@vger.kernel.org>. | ||
= Introduction = | = Introduction = |
Revision as of 02:02, 12 December 2017
Welcome to the nftables HOWTO documentation page. Here you will find documentation on how to build, install, configure and use nftables.
This documentation is maintained by volunteers, therefore, if you have any suggestion to improve it, please send your comments to Netfilter users mailing list <netfilter@vger.kernel.org>.
Introduction
- What is nftables?
- Why nftables?
- Main differences with iptables
- Netfilter hooks and integration with existing Netfilter components.
Getting started
- Building and installing nftables from sources
- Using nftables from distributions
- Troubleshooting and FAQ
- Quick reference, nftables in 10 minutes
- Translate your iptables rules from a web app
- Understanding nftables families
Basic operation
- Configuring tables
- Configuring chains
- Simple rule management
- Atomic rule replacement
- Error reporting from the command line
- Building rules through expressions
- Operations at ruleset level
- Monitoring ruleset updates
- Scripting
- Ruleset debug/tracing
- Moving from iptables to nftables
Supported selectors for packet matching
- Matching packet header fields
- Matching packet metainformation
- Matching connection tracking stateful metainformation
- Rate limiting matchings
- Routing information
Possible actions on packets
- Accepting and dropping packets
- Jumping to chain
- Rejecting traffic
- Logging traffic
- Performing Network Address Translation (NAT)
- Setting packet metainformation
- Queueing to userspace
- Duplicating packets
- Mangle packet header fields
- Mangle TCP options
- Counters
- Load balancing
- Setting packet connection tracking metainformation
Note that, unlike iptables, you can perform several actions in one single rule.
Advanced data structures for performance packet classification
You will have to redesign your rule-set to benefit from these new nice features:
- Sets
- Dictionaries
- Intervals
- Maps
- Concatenations
- Flow tables
- Updating sets from the packet path
- Element timeouts
- Math operations
- Stateful objects
If you are already using ipset in your iptables rule-set, that transition may be a bit more simple to you.
Examples
- Simple ruleset for a workstation
- Bridge filtering
- Multiple NATs using nftables maps
- Classic perimetral firewall example
Development progress
- List of updates since Linux kernel 3.13
- Supported features compared to {ip,ip6,eb,arp}tables
- List of available translations via iptables-translate tool
External links
Watch some videos:
- Watch Getting a grasp of nftables, thanks to NLUUG association for recording this.
- Watch The ultimate packet classifier for GNU/Linux, thanks to the FSFE for paying my trip to Barcelona and for recommending me as speaker to the KDE Spanish branch.
- Florian Westphal - Why nftables?
- Watch Netdev 2.1 - Netfilter workshop
- Watch NLUUG - Goodbye iptables, Hello nftables
Additional documentations and articles:
- Tutorial Extending nftables by Xiang Gao
- Article New in Debian stable Stretch: nftables
Thanks
To the NLnet foundation for initial sponsorship of this HOWTO: