New Kernel Firewall Nftables to Succeed Netfilter

The Netfilter team has long been mulling over rework of firewall code in the Linux kernel. Now team lead Patrick McHardy ends months of work by announcing nftables.

The history of all hitherto existing firewall subsystems is the history of struggles over more flexibility and compatibility. The nftables firewall ranks so far as the last revolution after ipfw, ipfadm, ipchains and netfilter. As the same team is working on the code, there is hope for users that there is continuing support for it.

The rework was necessary because the reliably operating netfilter was getting ever more extensions that many admins were finding unwieldy. Much of the discussion was around the interface between the userland tools and the kernel. Whereas the tools in netfilter up to now could only exchange a rule as a binary blob over the netlink interface, incremental rule changes are now possible.

[Furthermore, ] the developers moved the majority of the kernel ruleset evalutation from kernel to userspace, McHardy says. in his lwn.net mailing. Moreover, users get to use a new rule syntax that allows them more configuration freedom, unlike the previous netfilter that depended on complicated command line calls. The userland tools create the rules with help of a library to load into the kernel, which simply executes them.

The nftables firewall also introduces a few standardizations such that the subsystem is now independent of the protocol family and IPv4 in the same way as IPv6 and link-layer packets.. It also provides direct access to many packet data through its syntax that is like a mix of Wireshark filter rules and Perl associative arrays. One user request Mchardy rejected, though: Compatibility layers that map the old rules to new ones are not feasible, he regretted.

Linux has a fantastic selection of firewalls for securing stand-alone computers or whole networks. Although you can use IPTables to set up a firewall, the configuration is often the most difficult step. KMyFirewall offers a powerful, user-friendly, GUI-based approach.