<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Networking on Swehack</title>
    <link>https://swehack.se/tags/networking/</link>
    <description>Recent content in Networking on Swehack</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 24 Oct 2026 11:19:03 +0200</lastBuildDate>
    <atom:link href="https://swehack.se/tags/networking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Goodbye OpnSense</title>
      <link>https://swehack.se/blog/goodbye-opnsense/</link>
      <pubDate>Sat, 24 Oct 2026 11:19:03 +0200</pubDate>
      
      <guid>https://swehack.se/blog/goodbye-opnsense/</guid>
      <description>&lt;h1 id=&#34;short-history-of-my-home-networking&#34;&gt;Short history of my home networking&lt;/h1&gt;
&lt;p&gt;When I first left home in 2004 I quickly got my first own firewall. Not part of a router from my ISP, but my own. It was a pcengines board running OpenBSD, with PF.&lt;/p&gt;
&lt;p&gt;A board from pcengines.ch remained my firewall at home for several moves to new apartments, it wasn&amp;rsquo;t until Turris Omnia released their first router in 2016 that I considered migrating away from OpenBSD.&lt;/p&gt;
&lt;p&gt;I used my new Turris router on the inside just for Wifi, but after a while I actually replaced OpenBSD with Turris.&lt;/p&gt;
&lt;p&gt;The main incentive was the difficult process of upgrading my OpenBSD firewall, it required a serial cable to see what was on the screen. Turris handled it with their web interface.&lt;/p&gt;
&lt;p&gt;Turris actually worked well for several years, it wasn&amp;rsquo;t until 2023 (I think) that I replaced it with a little Intel N100 firewall device from a local Swedish store, that came with OpnSense.&lt;/p&gt;
&lt;p&gt;My thinking was that OpnSense will make things even easier, and even more secure for me. It&amp;rsquo;s now running FreeBSD with PF, but I have a fancy and modern web interface to manage it with.&lt;/p&gt;
&lt;h1 id=&#34;disappointment&#34;&gt;Disappointment&lt;/h1&gt;
&lt;p&gt;Using OpnSense has just been one disappointment after another.&lt;/p&gt;
&lt;p&gt;First of all I am a person who loves simplicity, in a sense I believe simplicity leads to higher security.&lt;/p&gt;
&lt;p&gt;OpnSense seemed to complicate everything. I had already setup several wireguard servers and clients, but doing it in OpnSense required carefully following their guide, and doing things I just couldn&amp;rsquo;t understand from my CLI-based perspective.&lt;/p&gt;
&lt;p&gt;Thankfully I found an Ansible module to automate creation of rules, but it&amp;rsquo;s made by some weird company and you never know what their motives are. I was only able to automate rules, not NAT, because trying to do that locked me out of my firewall a couple of times because something was wrong with their module.&lt;/p&gt;
&lt;p&gt;After being able to automate my OpnSense config with Ansible I finally hear that OpnSense are changing their entire API for firewall rules, so all that stuff is being thrown out, and replaced. And now you have to migrate all your rules if you want to upgrade OpnSense.&lt;/p&gt;
&lt;p&gt;The final straw was this damn storm of PHP vulnerabilities in October 2026, realizing that both pfSense and OpnSense have admin interfaces made with PHP, and I can&amp;rsquo;t update mine because of the rules migration. Even worse, another pfSense I had wasn&amp;rsquo;t able to be upgraded at all, it had to be reinstalled completely.&lt;/p&gt;
&lt;p&gt;My wish for a modern firewall to make things easier for me had been crushed.&lt;/p&gt;
&lt;h1 id=&#34;back-to-basics&#34;&gt;Back to basics&lt;/h1&gt;
&lt;p&gt;So, I&amp;rsquo;m going back to basics, not OpenBSD but RHEL 10 with nftables.&lt;/p&gt;
&lt;p&gt;Since I setup my first OpenBSD firewall I have become a Linux fanboy, and advocate, and I just can&amp;rsquo;t go back to any of the BSDs anymore. That&amp;rsquo;s a separate discussion and blog rant.&lt;/p&gt;
&lt;p&gt;Besides that, when comparing the two options side by side I can&amp;rsquo;t understand why I didn&amp;rsquo;t do this sooner. Both OpnSense and pfSense are terrible options for a firewall device, their LTS specifically is terrible compared to Red Hat.&lt;/p&gt;
&lt;p&gt;Red Hat is the leading Enterprise Linux LTS provider on the market, so why not use them as a firewall?&lt;/p&gt;
&lt;p&gt;Anyways I have now added firewall.yml to my big old &lt;a href=&#34;https://gitlab.com/stemid-iac/ansible/playbooks/home.git&#34;&gt;homelab git repo&lt;/a&gt;, and so far so good.&lt;/p&gt;
&lt;h1 id=&#34;hows-it-going&#34;&gt;How&amp;rsquo;s it going?&lt;/h1&gt;
&lt;p&gt;Update a week later on 2026-11-01.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been a week since I migrated from OpnSense to RHEL10.2 on my Firewall, how is it going? Absolutely amazing!&lt;/p&gt;
&lt;p&gt;It feels liberating to have a Firewall I can configure with ordinary Ansible, and Linux-methods that I already know very well. In that short week I have done more things with my new RHEL firewall than I did for over a year with OpnSense.&lt;/p&gt;
&lt;p&gt;The function of the Firewall can be restored instantly with Ansible IaC, it has no state data that needs backing up in case I have to re-create it.&lt;/p&gt;
&lt;p&gt;Every change is of course tracked by git, which is good because I&amp;rsquo;ve done a lot of things on it that I never did on OpnSense. Like my own &amp;ldquo;pihole&amp;rdquo; using a simple bash script, systemd timer, unbound. Metrics and dashboards with Prometheus exporters.&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
