<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Iptables - vo.rs</title><link>https://vo.rs/tags/iptables/</link><description>Latest from the Iptables desk at vo.rs.</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Mon, 08 Apr 2024 08:30:00 +0000</lastBuildDate><atom:link href="https://vo.rs/tags/iptables/" rel="self" type="application/rss+xml"/><item><title>nftables: Firewall Rules Without the iptables Baggage</title><link>https://vo.rs/story/nftables-firewall-rules-without-the-iptables-baggage/</link><description>&lt;p&gt;&lt;code&gt;iptables&lt;/code&gt; has been the default answer to &amp;ldquo;how do I write firewall rules on Linux&amp;rdquo; for so long that its warts feel normal. Four separate binaries for four protocol families (&lt;code&gt;iptables&lt;/code&gt;, &lt;code&gt;ip6tables&lt;/code&gt;, &lt;code&gt;arptables&lt;/code&gt;, &lt;code&gt;ebtables&lt;/code&gt;), each with its own syntax. Rule matching that&amp;rsquo;s a linear scan, so a ruleset with thousands of entries — a fail2ban instance with a long ban list, say — gets measurably slower per packet. No native way to group addresses or ports without either duplicating rules or reaching for the clunky &lt;code&gt;ipset&lt;/code&gt; extension. &lt;code&gt;nftables&lt;/code&gt; replaced all of that in the mainline kernel back in 3.13 (2014), and as of most current distributions it&amp;rsquo;s the default backend even when you type &lt;code&gt;iptables&lt;/code&gt; out of habit — but writing rules in its native syntax rather than through the compatibility shim is where the actual improvements live.&lt;/p&gt;</description><pubDate>Mon, 08 Apr 2024 08:30:00 +0000</pubDate></item></channel></rss>