NFTables To Replace iptables In the Linux Kernel
An anonymous reader writes "NFTables is queued up for merging into the Linux 3.13 kernel. NFTables is a four-year-old project by the creators of Netfilter to write a new packet filtering / firewall engine for the Linux kernel to deprecate iptables (though it now offers an iptables compatibility layer too). NFTables promises to be more powerful, simpler, reduce code complication, improve error reporting, and provide more efficient handling of packet filter rules. The code was merged into net-next for the Linux 3.13 kernel. Iptables will still be present until NFTables is finished, but it is possible to try it out now. LWN also has a writeup on NFTables."
ipfwadm.. ipchains.. iptables.. nftables... progress sucks. :(
IPChains work just fine thank you very much!
Kernel 2.4 works fine for my needs. You kids today have no idea what it is like upgrading thousands of computers at work! Especially when you have to justify to a beancounter to upgrade an IP table that has worked fine since October 2001 and already works. It is an enterprise standard that works so why fix what isn't broken?
Last thing I need is another confusing IP table interface designed for teenagers.
With a modern AV I should be just fine if I do not go to questionable websites.
http://saveie6.com/
All my precious iptables knowledge gone!
Linus hates us precious! Hates us!
Mod me down, my New Earth Global Warmingist friends!
Can't we have OpenBSD pf instead? Powerful, nice, decent documentation on how to use it, syntax that makes a lot more sense than iptables.
Oolite: Elite-like game. For Mac, Linux and Windows
Please, I do not want to change everything again.
The main advantage of this is moving protocol knowledge out of the kernel into userspace.
Which means that the kernel doesn't need a million modules that understand the various bits of various protocols. If something new comes up, the userspace compiler can patched to deal with it.
It should also make the kernel part much smaller and easier to make secure.
I can't get to slashdot. Let's troubleshoot!
[root@wang]# ifconfig
bash: ifconfig: command not found
[root@wang]# iptables -F
bash: iptables: command not found
Reading over the summary, it looks like it's still a sequence of rules (ie, add rule 1, add rule 2, ... add rule N).
For anything more than trivial values of N, this hurts performance, especially with a virtual machine in there.
I built a filter that was based on hierarchies. You had a bloom filter to quickly recognize a pattern, meaning that all the other rules could be ignored. Then if you wanted to refine it, you drilled down a bit more. The tree could have a lot of paths, but you were only making 3 or 4 decisions at the most.
The hassle was that some of the more experience admins wanted it to have Snort-like rules. It's inherently inefficient, and we wanted to sniff fast networks. You can't do , "add this rule, add that rule, etc.". You have to build a tree to go fast, and the admin has to understand that it's all about traversing a decision tree for each packet as quickly as possible. We couldn't find any way around that.
No "For a full summary of options, run nftables --help" does NOT count.
I had moved to linux from bsd and always was unhappy with iptables. and now there will be something close to pf
I hope someone develops a GUI for "NFTables", because manually configuring iptables (using ufw, or its lack of complete control/fine tuning gui or some other method) sucks. Some assume you know all about Linux networking.
Every firewall GUI for Linux is underdeveloped or abandoned and lacks complete control over all functions.
No one should be forced to manually configure this, it should be point and click similar to free firewalls for Windows (excluding discussion on app based blocking in Win).
There should be a GUI for configuring Sysctl, too, with good documentation and tool tips.
I've done that to Very Important Client.
Now I explicitly have a drop everything rule, with default accept. That way -F doesn't bite me.
But seriously I agree with you. I've been following linux since '96 or so, and would've gotten into it back in 93 or 94 if I'd had a fast enough modem to download it off the local pay-BBS that carried it.
Every time a feature in linux seems like it's finally getting solid, somebody decides they have a better way, and rather than keeping the two available until one stops being maintained they go and dump one as 'inferior' (usually the close to complete one) and make us wait for years for the new one to stabilize.
I've been using linux since 2000. Two comments...
1) IPCHAINS was nice, simple, and usable. IPTABLES has stuff scattered all over the place. This may affect me more as a Gentoo user who configures his own kernel. I have to remember to...
a) enable Netfilter
b) enable "Advanced netfilter configuration" so that I can specify multi-port matches
c) check off the necessary items in "Core Netfilter Configuration"
d) check off the necessary items in "IP: Netfilter Configuration"
That's on a simple home system that doesn't attempt NAT/Masq/Routing/etc.
2) A problem with putting detailed specifications into the kernel is that when I want to enable new features (not just new rules), I have to tweak the kernel, rebuild it, and reboot. If we had to do this with new MTAs or crons or other system programs, there would be a huge outcry. Moving this out of the kernel looks logical.
I'm not repeating myself
I'm an X window user; I'm an ex-Windows user
How nice, Linux will finally be NSA compatible...
". . . to deprecate iptables . . ."? I do not think "deprecate" means what you think it means.
Is NFTables suitable as a generic packet classifier, or is it strictly limited to packet filtering? Van Jacobson's net channels offer the possibility of extraordinary improvements in efficiency and performance, great simplification of drivers, ease of development, and much improved flexibility. The one missing piece is a flexible packet classifier. While NFTables looks like it incorporates many of the essential ideas, it isn't clear wether it is built with this in mind. If not, I'd like to see this fixed before it is integrated.
I've long thought that that we should replace the whole mess of statically #ifdef'd protocol switch statements and filtering mechanisms tacked on as an afterthought. That instead, we should build all of that upon something like BPF at the very lowest level, and have it dynamically compiled to native code. Protocol classification and filtering rules would be translated to BPF like code fragments to be assembled by the system, and it would be high performance and truly modular. Periodically analyzing the statistics of actual protocol and traffic flows, the system could also recombine the fragments in the most efficient way possible.
companies like comodo can build an entire security suite, imagine what we can do with FOSS.
but no we need 50 more image viewers, text editors, and shitty 1980's looking games. especially the games.
It's fucking hilarious to read reviews of these shitty games, even worse to see screen shots, ever tried playing them?
JUST MAKE a DECENT FUCKING GUI with DOCUMENTATION.
Can we unfuck PulseAudio before we go replacing something else that ain't broke? What's it been, ten years? and that PA shit still don't work...
somebody decides they have a better way, and rather than keeping the two available until one stops being maintained they go and dump one as 'inferior'
To be fair, the kernel developers have (to my knowledge) never done this. If you have ever compiled a kernel yourself, you will have seen that new features are flagged as "experimental", older features as "deprecated", and defaults are applied judiciously.
You will most likely find that it is your distribution that is most guilty of foisting bleeding-edge, half-tested stuff on to its users. Linus and the kernel devs are (and have to be) almost fanatically conservative.
Therefore it must be replaced with the new shiny buggy version, which will absorb another 10,000 man-years of development and debugging time that could be spent on something truly new and useful.
Thus (what's left of) the software industry shits the bed again.
Yeah I guess a "quick howto" isn't quite going to cut it. I wonder if Linus would ever put his foot down and say "no docs = no patch accept".
That's actually OpenBSD's official policy.
It breaks! It breaks!
It breaks and breaks and breaks
break break break
break break break
The Linux breakage show!
I am beginning to hate Linux, and see why people use Windows. Constant churn. Not progress, just change for the sake of change.
Is that when you get a bunch of friends together and maintain routing tables?
"Too many people had figured out how to configure a host firewall, so we had to change it all around again."
After finally getting ipTables syntax firmly implanted in my brain they are go to fucking make something new, that does the same thing?
The "quick documentation" is only how to download and build it. The very few examples are horribly described and laid out. Assign a chain to a verdict , uhhh hows that again?
Hey KID! Yeah you, get the fuck off my lawn!
Instead, it un-secures their network.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
The "writeup on NFTables" linked in the submission is very outdated. LWN's article from two months ago is a lot more useful. See also this this brief news item (“not ready to replace iptables yet”) and the nftables web page.
Yes , it drops the firewall for that machine, which is the expected result. Is it a good idea to drop the firewall? Your sysadmin is supposed to know that before messing with the firewall. This is Linux, not Fisher-Price.
WTF is this doing in the KERNEL? Why aren't Republicans halting kernel development until this is removed?
I was going to ask - does NFTables have a simpler/better way of doing packet filtering for IPv6? That would be the main, if not only reason for switching.
By 'IPv6 NAT', do they mean NAT-PT? It's somewhat different in that it has a 1:1 relationship b/w a link-local address and the global unicast address. Here, the only reason for having it is multihoming load balancing, not for security or topology hiding. Incidentally, how would topology be discovered simply by knowing all IP addresses within a link?