<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Security  Zen-Funk Panda</title>
    <link>https://panda.zenfunk.it/tags/security/</link>
    <description>  Security  Zen-Funk Panda</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Fri, 25 Sep 2026 00:00:00 +0000</lastBuildDate>
      <atom:link href="https://panda.zenfunk.it/tags/security/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Horwall: un piccolo logfile watcher per FreeBSD e blocklistd</title>
      <link>https://panda.zenfunk.it/posts/2026-09-25-horwall/</link>
      <pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2026-09-25-horwall/</guid>
      <description>&lt;p&gt;Ho pubblicato &lt;strong&gt;Horwall&lt;/strong&gt;, un piccolo esperimento per FreeBSD che osserva gli access log di nginx e segnala gli IP sospetti a &lt;a href=&#34;https://man.freebsd.org/blocklistd&#34;&gt;&lt;code&gt;blocklistd&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Il nome viene da &lt;strong&gt;hor&lt;/strong&gt;, la parola olandese per &lt;em&gt;zanzariera&lt;/em&gt;. L&amp;rsquo;idea è più o meno quella: non un web application firewall completo, ma una piccola rete che ferma i soliti insetti fastidiosi prima che continuino a ronzare.&lt;/p&gt;&#xA;&lt;p&gt;Horwall è volutamente semplice:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;segue l&amp;rsquo;access log di nginx con &lt;code&gt;tail -F&lt;/code&gt;, quindi gestisce correttamente la rotazione dei log;&lt;/li&gt;&#xA;&lt;li&gt;i path sospetti vengono intercettati con una regular expression per riga;&lt;/li&gt;&#xA;&lt;li&gt;il filtro è scritto in &lt;code&gt;awk&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;un helper minimale in C parla con &lt;code&gt;libblocklist&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;blocklistd&lt;/code&gt; gestisce il ban vero e proprio e la sua scadenza;&lt;/li&gt;&#xA;&lt;li&gt;sono inclusi un servizio &lt;code&gt;rc.d&lt;/code&gt; e alcuni esempi di configurazione.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Per ora è &lt;strong&gt;software alpha&lt;/strong&gt; (&lt;code&gt;0.1.0&lt;/code&gt;) e riflette il mio setup attuale: FreeBSD, access log di nginx in formato custom &lt;code&gt;awstats&lt;/code&gt;, PF e &lt;code&gt;blocklistd&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;La policy predefinita che sto usando è volutamente breve: una segnalazione, cinque minuti di blocco. Abbastanza per rallentare gli scanner rumorosi, non abbastanza per fingere che sia polvere magica di sicurezza.&lt;/p&gt;&#xA;&lt;p&gt;Il file dei pattern supporta sia regole positive sia esclusioni. Per esempio, una regola larga come &lt;code&gt;\.php&lt;/code&gt; può avere senso su un sito che non serve PHP, ma ovviamente può essere una pessima idea altrove. I pattern vanno controllati e adattati prima di abilitare i ban reali.&lt;/p&gt;&#xA;&lt;p&gt;Codice, README, note di installazione ed esempi sono su GitHub:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/zenfunkpanda/horwall&#34;&gt;github.com/zenfunkpanda/horwall&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
