<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Iptables on Marcello Barnaba</title>
    <link>https://sindro.me/it/tags/iptables/</link>
    <description>Recent content in Iptables on Marcello Barnaba</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Fri, 30 Jan 2026 00:00:00 +0100</lastBuildDate>
    <atom:link href="https://sindro.me/it/tags/iptables/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Docker vs. iptables: una storia di rabbia e la chain DOCKER-USER</title>
      <link>https://sindro.me/it/posts/2026-01-30-docker-vs-iptables-rage-and-docker-user-chain/</link>
      <pubDate>Fri, 30 Jan 2026 00:00:00 +0100</pubDate>
      <guid>https://sindro.me/it/posts/2026-01-30-docker-vs-iptables-rage-and-docker-user-chain/</guid>
      <description>&lt;p&gt;Siamo nel 2026, e stiamo ancora lottando con l&amp;rsquo;arroganza assoluta di Docker riguardo al networking Linux.&lt;/p&gt;&#xA;&lt;p&gt;Ecco lo scenario: faccio girare un host ibrido. Da un lato, ho una macchina virtuale KVM che fa girare &lt;strong&gt;Home Assistant&lt;/strong&gt; (perché ho bisogno del controllo completo del SO e della &lt;a href=&#34;https://sindro.me/posts/2026-01-20-raspberry-pi-luks-encrypted-root/&#34; target=&#34;_blank&#34;&gt;cifratura del disco&lt;/a&gt;).&#xA;Dall&amp;rsquo;altro, ho la solita lista di container Docker &amp;ndash; &lt;strong&gt;NUT&lt;/strong&gt; per monitorare il mio UPS Lakeview (Vultech) di merda e &lt;strong&gt;Technitium&lt;/strong&gt; per DNS e DHCP &amp;ndash; in esecuzione direttamente sull&amp;rsquo;host.&lt;/p&gt;&#xA;&lt;p&gt;Sembra semplice. Dovrebbe essere semplice.&lt;/p&gt;&#xA;&lt;p&gt;Ma nel momento in cui ho installato Docker, la comunicazione con la mia VM Home Assistant è morta. Semplicemente cessata di esistere.&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-problema-docker-è-un-dittatore&#34;&gt;Il problema: Docker è un dittatore&lt;/h2&gt;&#xA;&lt;p&gt;Docker, per default, tratta le tue regole &lt;code&gt;iptables&lt;/code&gt; come se fossero semplici suggerimenti. Quando il demone si avvia, sostanzialmente sovrascrive la chain &lt;code&gt;FORWARD&lt;/code&gt;, inserisce la sua logica, e imposta policy che isolano efficacemente qualsiasi cosa non sia un container gestito da Docker stesso.&lt;/p&gt;&#xA;&lt;p&gt;Se hai un&amp;rsquo;interfaccia bridge per una VM (come &lt;code&gt;br0&lt;/code&gt; o &lt;code&gt;virbr0&lt;/code&gt;), le regole di Docker spesso finiscono per droppare i pacchetti destinati a quella VM perché non corrispondono alla sua logica interna per il traffico dei container.&lt;/p&gt;&#xA;&lt;h3 id=&#34;la-soluzione-ingenua-e-perché-fallisce&#34;&gt;La soluzione ingenua (e perché fallisce)&lt;/h3&gt;&#xA;&lt;p&gt;La mia prima reazione &amp;ndash; come qualsiasi sysadmin che fa questo lavoro dai primi anni 2000 &amp;ndash; è stata sistemare le regole a mano e poi eseguire:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables-save &amp;gt; /etc/iptables/rules.v4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questa è una trappola!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHI5MzZoYzVwdGluYmNnMXBpYmJ2M2Y4cHB1OGVhaGlxdXRpZHpqOCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3ornka9rAaKRA2Rkac/giphy.gif&#34; alt=&#34;Trap GIF&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Se usi &lt;code&gt;iptables-persistent&lt;/code&gt; (o &lt;code&gt;netfilter-persistent&lt;/code&gt;) con Docker, stai entrando in un mondo di dolore per due motivi:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
