<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ZeroTrust Architect</title>
    <description>The latest articles on DEV Community by ZeroTrust Architect (@goodguy11).</description>
    <link>https://dev.to/goodguy11</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3884886%2F67e8fbca-1ebb-4614-acff-8ba90b868ad3.png</url>
      <title>DEV Community: ZeroTrust Architect</title>
      <link>https://dev.to/goodguy11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/goodguy11"/>
    <language>en</language>
    <item>
      <title>IPsec vs TLS VPN: Protocol Mechanics, Port Behaviour, and When Each One Breaks</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:58:43 +0000</pubDate>
      <link>https://dev.to/goodguy11/ipsec-vs-ssl-vpn-whats-the-difference-and-which-one-should-you-choose-4dbj</link>
      <guid>https://dev.to/goodguy11/ipsec-vs-ssl-vpn-whats-the-difference-and-which-one-should-you-choose-4dbj</guid>
      <description>&lt;p&gt;Both IPsec and TLS VPNs encrypt traffic between endpoints. The difference is where in the protocol stack they operate and what that implies for performance, firewall traversal, and failure modes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdku5vq6qx2jqab3far95.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdku5vq6qx2jqab3far95.png" alt="IPsec vs SSL VPN"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  IPsec: network-layer encryption
&lt;/h2&gt;

&lt;p&gt;IPsec operates at OSI Layer 3. It encrypts IP packets entirely, including headers in tunnel mode, and delivers them inside new IP packets. The protocol suite has three components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IKE (Internet Key Exchange):&lt;/strong&gt; Handles authentication and SA (Security Association) negotiation. Uses UDP/500 for initial contact, switches to UDP/4500 if NAT is detected (NAT-T).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ESP (Encapsulating Security Payload):&lt;/strong&gt; Provides encryption and authentication of the payload. IP protocol number 50.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AH (Authentication Header):&lt;/strong&gt; Authentication only, no encryption. Protocol number 51. Rarely used in modern deployments.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IKE phase negotiation
&lt;/h3&gt;

&lt;p&gt;IKEv2 (RFC 7296) reduces the handshake to two exchanges:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IKE_SA_INIT:&lt;/strong&gt; Peers negotiate cryptographic algorithms, exchange nonces, and perform a Diffie-Hellman key exchange. Result: an IKE SA protecting subsequent messages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IKE_AUTH:&lt;/strong&gt; Peers authenticate each other (via certificates or PSK) and establish the first Child SA (the actual IPsec tunnel). Result: an ESP SA ready to carry traffic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Initiator                    Responder
    |-- IKE_SA_INIT request --&amp;gt;|
    |&amp;lt;- IKE_SA_INIT response --|
    |-- IKE_AUTH request ------&amp;gt;|
    |&amp;lt;- IKE_AUTH response ------|
    |=== ESP tunnel active ====|
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  NAT traversal
&lt;/h3&gt;

&lt;p&gt;IPsec was designed before NAT was widespread. When a NAT device sits between peers, ESP packets can be mangled (NAT rewrites IP headers but ESP authenticates them, causing verification failure). NAT-T solves this by encapsulating ESP inside UDP/4500, making the payload opaque to NAT devices.&lt;/p&gt;

&lt;p&gt;Detection happens during IKE_SA_INIT: if either peer detects a NAT (via NAT-D payload hash comparison), both switch to UDP/4500 for all subsequent communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  TLS VPN: application-layer tunnelling
&lt;/h2&gt;

&lt;p&gt;TLS VPNs (OpenVPN, SSL VPN) run over TCP or UDP at the application layer. They establish a TLS session first, then tunnel IP traffic through it.&lt;/p&gt;

&lt;p&gt;Key difference: TLS uses TCP/443 or UDP/443 by default — the same ports as HTTPS. Firewalls and restrictive networks almost never block port 443, making TLS VPNs significantly more traversal-friendly than IPsec.&lt;/p&gt;

&lt;p&gt;The trade-off is performance. TLS over TCP introduces TCP-over-TCP — when the tunnelled TCP connection retransmits, the outer TCP also retransmits, causing retransmit storms under packet loss. TLS over UDP avoids this but is less universally available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Port and firewall traversal comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Ports used&lt;/th&gt;
&lt;th&gt;Firewall blocked?&lt;/th&gt;
&lt;th&gt;NAT behaviour&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IKEv2/IPsec&lt;/td&gt;
&lt;td&gt;UDP/500, UDP/4500, ESP (IP 50)&lt;/td&gt;
&lt;td&gt;Sometimes&lt;/td&gt;
&lt;td&gt;Requires NAT-T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IKEv1/IPsec&lt;/td&gt;
&lt;td&gt;UDP/500, UDP/4500 or AH/ESP&lt;/td&gt;
&lt;td&gt;Sometimes&lt;/td&gt;
&lt;td&gt;Requires NAT-T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenVPN (UDP)&lt;/td&gt;
&lt;td&gt;UDP/1194 (configurable)&lt;/td&gt;
&lt;td&gt;Sometimes&lt;/td&gt;
&lt;td&gt;Generally fine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS VPN&lt;/td&gt;
&lt;td&gt;TCP/443 or UDP/443&lt;/td&gt;
&lt;td&gt;Rarely&lt;/td&gt;
&lt;td&gt;Always fine&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When IPsec fails and TLS doesn't
&lt;/h2&gt;

&lt;p&gt;Corporate guest networks, hotel WiFi, and some mobile carriers actively block UDP/500 and UDP/4500, preventing IKEv2 negotiation from completing. ESP (protocol 50) may also be filtered. In these environments, IPsec connections time out silently while TLS-based connections on port 443 succeed.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use which
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;IPsec&lt;/strong&gt; is the right choice for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Site-to-site tunnels between fixed endpoints (no port blocking concerns)&lt;/li&gt;
&lt;li&gt;Remote access on managed device fleets where client software can be deployed&lt;/li&gt;
&lt;li&gt;High-throughput requirements (lower per-packet overhead than TLS)&lt;/li&gt;
&lt;li&gt;Environments where all platforms need to use the native OS VPN client (iOS, macOS, Windows, Android all have native IKEv2 clients)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TLS VPN&lt;/strong&gt; is the right choice for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Environments with aggressive outbound filtering (hotels, corporate guest networks, restrictive countries)&lt;/li&gt;
&lt;li&gt;Clientless access where users connect via a browser&lt;/li&gt;
&lt;li&gt;Scenarios where per-user application-level access control is needed (TLS VPNs make per-app policy easier)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard&lt;/strong&gt; implements IPsec VPN using IKEv2 with ESP in tunnel mode, powered by StrongSwan. It supports certificate-based and PSK authentication, generates client profiles for all major platforms, and includes DynDNS integration for deployments without a fixed public IP.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/ipsec-vs-ssl-vpn/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/ipsec-vs-ssl-vpn/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/ipsec-vs-ssl-vpn/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>devops</category>
      <category>linux</category>
    </item>
    <item>
      <title>TLS Handshake to Reverse Proxy: How HTTPS Works End-to-End in a Production Network</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:56:05 +0000</pubDate>
      <link>https://dev.to/goodguy11/how-https-works-a-simple-practical-explanation-of-secure-web-connections-450f</link>
      <guid>https://dev.to/goodguy11/how-https-works-a-simple-practical-explanation-of-secure-web-connections-450f</guid>
      <description>&lt;p&gt;When a browser connects to &lt;code&gt;https://example.com&lt;/code&gt;, a series of cryptographic operations happen before a single byte of application data is exchanged. Understanding this sequence is necessary for debugging TLS issues, configuring reverse proxies correctly, and reasoning about what SSL termination actually changes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxn0ahx99e760q6zw26ko.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxn0ahx99e760q6zw26ko.jpg" alt="How HTTPS Works"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The TLS 1.3 handshake
&lt;/h2&gt;

&lt;p&gt;TLS 1.3 (RFC 8446) reduced the handshake from TLS 1.2's two round trips to one. Here is the full sequence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client                                Server
  |                                      |
  |-- ClientHello ----------------------&amp;gt;|  (supported ciphers, key share, SNI)
  |&amp;lt;-- ServerHello ----------------------|  (chosen cipher, key share)
  |&amp;lt;-- {EncryptedExtensions} -----------|
  |&amp;lt;-- {Certificate} -------------------|
  |&amp;lt;-- {CertificateVerify} -------------|
  |&amp;lt;-- {Finished} ----------------------|
  |-- {Finished} -----------------------&amp;gt;|
  |                                      |
  |=== Application data (encrypted) ====|
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the first round trip, both sides derive the same session keys from their respective key shares (ECDH). The server's certificate is transmitted inside the encrypted portion of the handshake — an improvement over TLS 1.2 where the certificate was sent in plaintext.&lt;/p&gt;

&lt;h3&gt;
  
  
  Certificate chain validation
&lt;/h3&gt;

&lt;p&gt;The server sends its certificate chain — end-entity cert, optional intermediate(s), root. The client validates:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Signature chain:&lt;/strong&gt; Each certificate is signed by the issuer above it, terminating at a trusted root CA in the system trust store.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name matching:&lt;/strong&gt; The &lt;code&gt;Subject Alternative Name&lt;/code&gt; (SAN) or &lt;code&gt;CN&lt;/code&gt; matches the hostname in the request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validity period:&lt;/strong&gt; &lt;code&gt;notBefore&lt;/code&gt; and &lt;code&gt;notAfter&lt;/code&gt; fields are within the current time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revocation status:&lt;/strong&gt; Via OCSP or CRL (if the client checks — many do not by default).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If any check fails, the browser terminates the connection and displays an error. The specific error code (expired, wrong host, untrusted CA) determines the error page shown.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes with a reverse proxy
&lt;/h2&gt;

&lt;p&gt;When a reverse proxy sits in front of your backend, SSL termination moves from the backend to the proxy. The client's TLS session terminates at the proxy, not at the application server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Browser] &amp;lt;-- TLS --&amp;gt; [Reverse Proxy] &amp;lt;-- HTTP or TLS --&amp;gt; [Backend]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The certificate presented to the browser belongs to the proxy, not the backend. The proxy forwards the request to the backend — either over plain HTTP on a trusted private network or over a new TLS connection using the backend's certificate.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the backend loses
&lt;/h3&gt;

&lt;p&gt;Without SSL termination at the proxy, the backend receives the client's IP in the TCP source address. With SSL termination, the TCP connection comes from the proxy's IP. The original client IP must be forwarded in an &lt;code&gt;X-Forwarded-For&lt;/code&gt; or &lt;code&gt;X-Real-IP&lt;/code&gt; header, and the backend must be configured to trust this header only from the proxy's IP range.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;X-Forwarded-For: 203.0.113.42
X-Forwarded-Proto: https
X-Real-IP: 203.0.113.42
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Backends that naively trust &lt;code&gt;X-Forwarded-For&lt;/code&gt; from any source are vulnerable to IP spoofing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session persistence in load-balanced deployments
&lt;/h3&gt;

&lt;p&gt;When the reverse proxy load-balances across multiple backends, stateful applications (anything with server-side sessions) require session persistence — routing all requests from the same client to the same backend. This is typically implemented via a session cookie that encodes the backend assignment.&lt;/p&gt;

&lt;h2&gt;
  
  
  SSL termination vs SSL passthrough
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Termination:&lt;/strong&gt; The proxy decrypts traffic, inspects/transforms it, and forwards. Enables WAF rules, header injection, caching. Requires the proxy to hold the certificate private key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passthrough:&lt;/strong&gt; The proxy forwards the encrypted TCP stream without decryption, based on SNI alone. The backend holds the key. The proxy cannot inspect or modify content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-encryption:&lt;/strong&gt; The proxy terminates the client TLS session and opens a new TLS session to the backend. End-to-end encryption with proxy visibility. Higher CPU cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  High availability for the proxy layer
&lt;/h2&gt;

&lt;p&gt;The reverse proxy becomes a single point of failure. HA is typically implemented with VRRP (Virtual Router Redundancy Protocol) — two proxy instances share a virtual IP. The active instance holds the VIP; if it fails, the standby takes over within seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard&lt;/strong&gt; implements reverse proxy SSL termination via Apache mod_proxy, with integrated WAF (ModSecurity + OWASP CRS), load balancing with session persistence, and native HA mode for multi-appliance deployments. Certificate management and PKI operations are handled through the web interface.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/how-https-works/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/how-https-works/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/how-https-works/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>webdev</category>
      <category>networking</category>
      <category>devops</category>
    </item>
    <item>
      <title>TLS Interception at the Gateway: Certificate Chains, SNI, and the SSL Pinning Problem</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:52:30 +0000</pubDate>
      <link>https://dev.to/goodguy11/what-is-ssl-inspection-how-it-works-and-why-it-matters-2p9c</link>
      <guid>https://dev.to/goodguy11/what-is-ssl-inspection-how-it-works-and-why-it-matters-2p9c</guid>
      <description>&lt;p&gt;TLS inspection at a forward proxy — sometimes called SSL interception or SSL mediation — is a controlled man-in-the-middle. The proxy terminates the client's TLS session, reads the plaintext, and opens a new TLS session to the upstream server. Understanding the mechanics matters for deployment, debugging, and reasoning about what the proxy can and cannot see.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpzyqncs7q7k55vi460t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpzyqncs7q7k55vi460t.png" alt="What is SSL Inspection?" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The certificate generation pipeline
&lt;/h2&gt;

&lt;p&gt;When the proxy intercepts a CONNECT request for &lt;code&gt;www.example.com:443&lt;/code&gt;, it must present a certificate for &lt;code&gt;www.example.com&lt;/code&gt; to the client — a certificate the client's browser will accept. Generating this on the fly requires:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The proxy fetches the real certificate from &lt;code&gt;www.example.com&lt;/code&gt; (or uses cached metadata)&lt;/li&gt;
&lt;li&gt;It extracts the Subject Alternative Names and CN from the real cert&lt;/li&gt;
&lt;li&gt;It generates a new certificate with matching SANs, signed by the proxy's local CA&lt;/li&gt;
&lt;li&gt;It presents this dynamically generated certificate to the client&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The client browser validates the chain: generated cert → proxy CA → (trusted if proxy CA is in browser trust store). If the proxy CA is not trusted, the browser throws &lt;code&gt;NET::ERR_CERT_AUTHORITY_INVALID&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  CA distribution
&lt;/h2&gt;

&lt;p&gt;The proxy CA must be added to every client's trust store before enabling TLS inspection. Deployment methods:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows (domain-joined):&lt;/strong&gt; Group Policy Object → Computer Configuration → Windows Settings → Security Settings → Public Key Policies → Trusted Root Certification Authorities.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Verify CA is present after GPO application&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-ChildItem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Cert:\LocalMachine\Root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Where-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Subject&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-like&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*CacheGuard*"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;macOS (MDM):&lt;/strong&gt; Push CA cert via configuration profile → &lt;code&gt;PayloadType: com.apple.security.root&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux (system-wide):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;proxy-ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Firefox:&lt;/strong&gt; Firefox maintains its own trust store independent of the OS. The CA must be added separately via policies (&lt;code&gt;certificates.certs[]&lt;/code&gt; in &lt;code&gt;policies.json&lt;/code&gt;) or manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  SNI and the hostname visibility problem
&lt;/h2&gt;

&lt;p&gt;In TLS 1.3, the client sends the &lt;code&gt;server_name&lt;/code&gt; extension (SNI) in the &lt;code&gt;ClientHello&lt;/code&gt;. The SNI is transmitted in plaintext — the proxy sees it without decryption. This means the proxy knows which hostname the client is connecting to even before the TLS handshake completes, regardless of whether inspection is enabled.&lt;/p&gt;

&lt;p&gt;With inspection enabled, the proxy can additionally see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The full HTTP request line and headers&lt;/li&gt;
&lt;li&gt;The request body&lt;/li&gt;
&lt;li&gt;The full HTTP response headers and body&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without inspection, the proxy sees only: SNI (hostname), destination IP, port, and approximate traffic volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  SSL pinning: the hard case
&lt;/h2&gt;

&lt;p&gt;SSL pinning is a client-side mechanism where an application refuses any TLS certificate except a specifically expected one (or one signed by a specifically expected CA). The application ignores the OS trust store.&lt;/p&gt;

&lt;p&gt;When the proxy presents its dynamically generated certificate for &lt;code&gt;api.bank.com&lt;/code&gt;, a pinned application compares the certificate fingerprint (or CA public key) against its embedded expectation. They do not match. The application refuses to connect.&lt;/p&gt;

&lt;p&gt;Common pinning implementations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Certificate pinning:&lt;/strong&gt; Exact certificate fingerprint match&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public key pinning:&lt;/strong&gt; CA or leaf public key hash match (more flexible — survives certificate renewal if the key doesn't change)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HPKP (deprecated):&lt;/strong&gt; Browser-level public key pinning via HTTP header&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Handling pinned applications at the proxy:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The only correct solution is an exception — the proxy bypasses TLS inspection for pinned destinations, allowing them to connect directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Squid: exempt pinned destinations from ssl-bump
acl ssl_no_bump_domains ssl::server_name_regex -i \
    api.bank.com \
    pin.cloudflare.com \
    apple.com

ssl_bump splice ssl_no_bump_domains
ssl_bump stare all
ssl_bump bump all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Identifying pinned applications requires monitoring your proxy logs for &lt;code&gt;SSL certificate error&lt;/code&gt; events after enabling inspection — these are usually pinning failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the proxy cannot see even with inspection
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ESNI/ECH (Encrypted Client Hello):&lt;/strong&gt; Encrypts the SNI itself using a public key published in DNS. The proxy sees only the encrypted outer hello. Full deployment is not yet universal (2026) but growing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certificate Transparency logs:&lt;/strong&gt; CT does not affect proxy visibility, but it means all dynamically generated certificates would appear in CT logs if submitted — they are not (proxy CAs are not CT-logging).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;mTLS (mutual TLS):&lt;/strong&gt; If the upstream requires a client certificate from the actual end device, the proxy cannot satisfy this requirement without the client's private key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard&lt;/strong&gt; calls this feature SSL mediation. It generates the local CA at installation, provides a download link for the CA cert to push to clients, and maintains a bypass list for pinned domains.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/ssl-inspection/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/ssl-inspection/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/ssl-inspection/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>webdev</category>
      <category>linux</category>
    </item>
    <item>
      <title>How HTTPS Works: A Simple Explanation of Secure Web Communication</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:27:35 +0000</pubDate>
      <link>https://dev.to/goodguy11/how-https-works-a-simple-explanation-of-secure-web-communication-2bd4</link>
      <guid>https://dev.to/goodguy11/how-https-works-a-simple-explanation-of-secure-web-communication-2bd4</guid>
      <description>&lt;p&gt;Every time you visit a website and see a padlock icon in your browser, HTTPS is working behind the scenes to protect your data.&lt;/p&gt;

&lt;p&gt;Although it feels instant and invisible, HTTPS relies on a carefully designed security process involving encryption, authentication, and trust verification.&lt;/p&gt;

&lt;p&gt;This article explains how HTTPS works in a clear and practical way.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ux6p0y6tjraeuk9jzs7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ux6p0y6tjraeuk9jzs7.jpg" alt="How HTTPS Works" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is HTTPS?
&lt;/h2&gt;

&lt;p&gt;HTTPS (HyperText Transfer Protocol Secure) is the secure version of HTTP.&lt;/p&gt;

&lt;p&gt;It encrypts communication between a web browser and a server using TLS (Transport Layer Security), ensuring that data cannot be easily intercepted or modified during transmission. :contentReference[oaicite:0]{index=0}&lt;/p&gt;

&lt;p&gt;In simple terms, HTTPS makes sure your connection to a website is private and trustworthy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why HTTPS is important
&lt;/h2&gt;

&lt;p&gt;Without HTTPS, data sent over the internet is transmitted in plain text.&lt;/p&gt;

&lt;p&gt;This means attackers on the same network could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;read sensitive information
&lt;/li&gt;
&lt;li&gt;modify data in transit
&lt;/li&gt;
&lt;li&gt;impersonate websites
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTTPS protects against these risks by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;confidentiality (data is encrypted)
&lt;/li&gt;
&lt;li&gt;integrity (data cannot be tampered with)
&lt;/li&gt;
&lt;li&gt;authentication (you are connected to the correct server) :contentReference[oaicite:1]{index=1}
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How HTTPS works at a high level
&lt;/h2&gt;

&lt;p&gt;When you visit an HTTPS website, your browser and the server perform a sequence of steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The browser connects to the server
&lt;/li&gt;
&lt;li&gt;The server presents a digital certificate
&lt;/li&gt;
&lt;li&gt;The browser verifies the certificate
&lt;/li&gt;
&lt;li&gt;Both sides agree on encryption methods
&lt;/li&gt;
&lt;li&gt;A secure connection is established
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once this process is complete, all communication becomes encrypted.&lt;/p&gt;




&lt;h2&gt;
  
  
  The role of TLS (the encryption layer)
&lt;/h2&gt;

&lt;p&gt;HTTPS is not a separate protocol from HTTP—it is HTTP running over TLS.&lt;/p&gt;

&lt;p&gt;TLS is responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;encrypting data
&lt;/li&gt;
&lt;li&gt;verifying server identity
&lt;/li&gt;
&lt;li&gt;ensuring message integrity
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what actually creates the secure channel between your browser and the website. :contentReference[oaicite:2]{index=2}  &lt;/p&gt;




&lt;h2&gt;
  
  
  The TLS handshake (step-by-step)
&lt;/h2&gt;

&lt;p&gt;The most important part of HTTPS is the TLS handshake.&lt;/p&gt;

&lt;p&gt;Here’s what happens:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Client Hello
&lt;/h3&gt;

&lt;p&gt;Your browser sends a message to the server listing supported encryption methods.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Server Response
&lt;/h3&gt;

&lt;p&gt;The server responds with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;its SSL/TLS certificate
&lt;/li&gt;
&lt;li&gt;its chosen encryption settings
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Certificate verification
&lt;/h3&gt;

&lt;p&gt;Your browser checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;if the certificate is valid
&lt;/li&gt;
&lt;li&gt;if it is issued by a trusted certificate authority
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Key exchange
&lt;/h3&gt;

&lt;p&gt;Both sides generate shared encryption keys using public-key cryptography.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Secure session begins
&lt;/h3&gt;

&lt;p&gt;All future communication is encrypted using symmetric encryption keys.&lt;/p&gt;

&lt;p&gt;From this point on, everything is secure.&lt;/p&gt;




&lt;h2&gt;
  
  
  How encryption actually protects your data
&lt;/h2&gt;

&lt;p&gt;HTTPS uses a combination of:&lt;/p&gt;

&lt;h3&gt;
  
  
  Public-key cryptography
&lt;/h3&gt;

&lt;p&gt;Used during the handshake to securely exchange keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  Symmetric encryption
&lt;/h3&gt;

&lt;p&gt;Used for actual data transfer because it is faster.&lt;/p&gt;

&lt;p&gt;This hybrid approach ensures both security and performance.&lt;/p&gt;




&lt;h2&gt;
  
  
  What data HTTPS protects
&lt;/h2&gt;

&lt;p&gt;HTTPS encrypts nearly everything exchanged between browser and server, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URLs and query strings
&lt;/li&gt;
&lt;li&gt;form submissions
&lt;/li&gt;
&lt;li&gt;login credentials
&lt;/li&gt;
&lt;li&gt;cookies
&lt;/li&gt;
&lt;li&gt;API requests and responses :contentReference[oaicite:3]{index=3}
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What HTTPS does NOT protect
&lt;/h2&gt;

&lt;p&gt;HTTPS does not hide everything. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the domain name (e.g. example.com) is still visible
&lt;/li&gt;
&lt;li&gt;metadata like timing and traffic volume may be observable
&lt;/li&gt;
&lt;li&gt;compromised endpoints can still leak data
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTTPS protects the transmission, not the endpoint itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why HTTPS is now the default
&lt;/h2&gt;

&lt;p&gt;Today, HTTPS is no longer optional.&lt;/p&gt;

&lt;p&gt;Modern browsers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;label HTTP sites as “Not secure”
&lt;/li&gt;
&lt;li&gt;prioritise HTTPS in search rankings
&lt;/li&gt;
&lt;li&gt;enforce secure-by-default behaviour in many cases
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result, most of the web now runs on HTTPS by default.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;HTTPS is the foundation of secure communication on the web.&lt;/p&gt;

&lt;p&gt;It works by combining encryption, certificates, and a handshake process that establishes trust between your browser and a server.&lt;/p&gt;

&lt;p&gt;While invisible to users, it plays a critical role in protecting privacy, preventing tampering, and ensuring the integrity of modern internet communication.&lt;/p&gt;




&lt;h2&gt;
  
  
  Original article
&lt;/h2&gt;

&lt;p&gt;This post is adapted from the original article published on CacheGuard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cacheguard.com/how-https-works/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/how-https-works/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>networking</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>IPsec vs SSL VPN: What’s the Difference and Which One Should You Use?</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:22:47 +0000</pubDate>
      <link>https://dev.to/goodguy11/ipsec-vs-ssl-vpn-whats-the-difference-and-which-one-should-you-use-f0e</link>
      <guid>https://dev.to/goodguy11/ipsec-vs-ssl-vpn-whats-the-difference-and-which-one-should-you-use-f0e</guid>
      <description>&lt;p&gt;When setting up remote access or site-to-site connectivity, two VPN technologies are almost always compared: IPsec and SSL VPN.&lt;/p&gt;

&lt;p&gt;Both provide secure encrypted communication over untrusted networks like the internet, but they differ in architecture, performance, and ideal use cases.&lt;/p&gt;

&lt;p&gt;This article breaks down the differences in a practical way so you can understand when to use each.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl6zrte37c328bc7j8ay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl6zrte37c328bc7j8ay.png" alt="IPsec vs SSL VPN" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is IPsec VPN?
&lt;/h2&gt;

&lt;p&gt;IPsec (Internet Protocol Security) is a suite of protocols that secures IP communications by encrypting and authenticating data at the &lt;strong&gt;network layer (Layer 3)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It works by protecting entire IP packets between two endpoints, typically forming a secure tunnel between networks or devices. :contentReference[oaicite:0]{index=0}&lt;/p&gt;

&lt;p&gt;In simple terms, IPsec makes two networks behave as if they are directly connected over a private link.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is SSL VPN?
&lt;/h2&gt;

&lt;p&gt;SSL VPN (more accurately TLS-based VPN) operates at a higher layer in the network stack, typically between the transport and application layers.&lt;/p&gt;

&lt;p&gt;Instead of tunnelling full networks, it often secures individual sessions or application traffic. :contentReference[oaicite:1]{index=1}&lt;/p&gt;

&lt;p&gt;This makes it more flexible for remote access scenarios where users only need access to specific services.&lt;/p&gt;




&lt;h2&gt;
  
  
  IPsec vs SSL VPN: Key differences
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. OSI layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;IPsec → Layer 3 (Network layer)
&lt;/li&gt;
&lt;li&gt;SSL VPN → Layer 4–7 (Transport/Application layer) :contentReference[oaicite:2]{index=2}
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the fundamental architectural difference.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Traffic scope
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;IPsec → encrypts &lt;strong&gt;all IP traffic&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;SSL VPN → encrypts &lt;strong&gt;specific applications or sessions&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IPsec provides full network connectivity, while SSL VPN is more selective.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Client requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;IPsec → usually requires a VPN client or native OS support
&lt;/li&gt;
&lt;li&gt;SSL VPN → often browser-based or lightweight client
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes SSL VPN easier for quick access scenarios.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Firewall traversal
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;IPsec → may be blocked by strict firewalls (uses specific ports/protocols)
&lt;/li&gt;
&lt;li&gt;SSL VPN → uses HTTPS (port 443), making it easier to pass through restricted networks :contentReference[oaicite:3]{index=3}
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is one of SSL VPN’s biggest advantages.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;IPsec → generally higher performance and lower overhead
&lt;/li&gt;
&lt;li&gt;SSL VPN → slightly higher overhead due to application-layer processing :contentReference[oaicite:4]{index=4}
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IPsec is often preferred for full network tunnels and high-throughput environments.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Typical use cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;IPsec VPN is best for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;site-to-site VPNs
&lt;/li&gt;
&lt;li&gt;full network access
&lt;/li&gt;
&lt;li&gt;enterprise infrastructure connectivity
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SSL VPN is best for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;remote user access
&lt;/li&gt;
&lt;li&gt;BYOD environments
&lt;/li&gt;
&lt;li&gt;situations where firewall traversal is critical
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Security comparison
&lt;/h2&gt;

&lt;p&gt;Both IPsec and SSL VPN are considered secure when properly configured.&lt;/p&gt;

&lt;p&gt;However:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IPsec secures the entire network layer tunnel
&lt;/li&gt;
&lt;li&gt;SSL VPN secures application-level sessions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The actual security level depends more on configuration than protocol choice.&lt;/p&gt;




&lt;h2&gt;
  
  
  IPsec vs SSL VPN in real-world deployments
&lt;/h2&gt;

&lt;p&gt;In practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprises often use &lt;strong&gt;IPsec for site-to-site VPNs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;SSL VPN is commonly used for &lt;strong&gt;remote access users&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Many organisations use &lt;strong&gt;both together&lt;/strong&gt;, depending on access needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This hybrid approach is very common in modern network architectures.&lt;/p&gt;




&lt;h2&gt;
  
  
  When to choose IPsec
&lt;/h2&gt;

&lt;p&gt;Choose IPsec if you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;full network connectivity
&lt;/li&gt;
&lt;li&gt;high performance tunnels
&lt;/li&gt;
&lt;li&gt;stable site-to-site connections
&lt;/li&gt;
&lt;li&gt;OS-level integration
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  When to choose SSL VPN
&lt;/h2&gt;

&lt;p&gt;Choose SSL VPN if you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy remote access for users
&lt;/li&gt;
&lt;li&gt;access through restrictive networks
&lt;/li&gt;
&lt;li&gt;minimal client installation
&lt;/li&gt;
&lt;li&gt;application-specific access
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;IPsec and SSL VPN are not competing technologies in a strict sense—they solve different networking problems.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IPsec focuses on &lt;strong&gt;secure network-to-network communication&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;SSL VPN focuses on &lt;strong&gt;flexible remote user access&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In modern environments, they are often used together rather than as replacements for one another.&lt;/p&gt;




&lt;h2&gt;
  
  
  Original article
&lt;/h2&gt;

&lt;p&gt;This post is adapted from the original article published on CacheGuard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cacheguard.com/ipsec-vs-ssl-vpn/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/ipsec-vs-ssl-vpn/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>networking</category>
      <category>vpn</category>
      <category>security</category>
    </item>
    <item>
      <title>Endian Firewall's Fork Lineage and Feature Gaps: A Technical Assessment</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:17:47 +0000</pubDate>
      <link>https://dev.to/goodguy11/endian-firewall-alternative-what-to-use-instead-of-endian-firewall-1keb</link>
      <guid>https://dev.to/goodguy11/endian-firewall-alternative-what-to-use-instead-of-endian-firewall-1keb</guid>
      <description>&lt;p&gt;Endian Firewall is a Linux-based UTM with a specific codebase history and a set of architectural limitations that matter when evaluating it as a long-term platform. Here is the technical picture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufwgfw9t2rprk5fdly4c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufwgfw9t2rprk5fdly4c.png" alt="Endian Firewall Alternative"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The fork lineage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SmoothWall (2000) → GPL Linux firewall distribution
    └── IPCop (2001) → fork of SmoothWall
            └── Endian Firewall (2003) → fork of IPCop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each fork inherited the parent's codebase and added features on top. This is not inherently a problem — Linux distributions commonly derive from upstream sources. But it means Endian carries code decisions made in 2000 and 2001, and architectural choices made during the SmoothWall era are baked into the foundation.&lt;/p&gt;

&lt;p&gt;CacheGuard by contrast was built from LFS (Linux From Scratch) beginning in 2002 — no upstream project's architectural decisions inherited, no legacy code from previous projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature gap analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  No WAF
&lt;/h3&gt;

&lt;p&gt;Neither Endian Firewall Community nor Endian UTM (commercial) includes a Web Application Firewall. ModSecurity and the OWASP Core Rule Set are not shipped or integrated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Any organisation running web-facing applications — customer portals, APIs, SaaS interfaces — needs WAF protection that Endian cannot provide. The options are to deploy a separate WAF (adding infrastructure complexity) or accept that web application attacks reach the application layer unfiltered.&lt;/p&gt;

&lt;h3&gt;
  
  
  No reverse proxy / load balancer
&lt;/h3&gt;

&lt;p&gt;Endian does not include a reverse proxy engine. Organisations running multiple backend servers cannot use Endian as the SSL termination and load balancing point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Web application deployments that need SSL offloading, load distribution, and application-layer routing must introduce a separate reverse proxy alongside Endian — two management interfaces, two certificate stores, two update targets.&lt;/p&gt;

&lt;h3&gt;
  
  
  IPS included (but vendor focus is shifting)
&lt;/h3&gt;

&lt;p&gt;Endian includes an IPS (intrusion prevention system) — a capability CacheGuard does not provide. However, Endian's commercial development has shifted toward industrial OT/ICS security use cases, meaning the IPS and other features are increasingly developed for SCADA/industrial environments rather than general SMB use.&lt;/p&gt;

&lt;p&gt;If your use case is standard office network security, you are paying for — and implicitly funding the development of — features aligned with a different market segment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Endian Community vs Endian UTM: the feature tier problem
&lt;/h2&gt;

&lt;p&gt;Endian Community (free) lacks several features present in Endian UTM (paid):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced web content filtering&lt;/li&gt;
&lt;li&gt;Email security and anti-spam&lt;/li&gt;
&lt;li&gt;Centralised management&lt;/li&gt;
&lt;li&gt;Vendor support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a two-tier model where the free version is insufficient for production use but the commercial version requires subscription licensing. For SMBs evaluating open-source options, this is a meaningful distinction.&lt;/p&gt;

&lt;h2&gt;
  
  
  CacheGuard as technical comparison
&lt;/h2&gt;

&lt;p&gt;CacheGuard ships the full UTM feature set in the free version — no tier above it, no subscription required for security features:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Endian Community&lt;/th&gt;
&lt;th&gt;Endian UTM&lt;/th&gt;
&lt;th&gt;CacheGuard&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WAF&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ ModSecurity + OWASP CRS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reverse proxy&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Apache mod_proxy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load balancer&lt;/td&gt;
&lt;td&gt;❌ Basic&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSL inspection&lt;/td&gt;
&lt;td&gt;⚠️ Limited&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IPS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email security&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codebase origin&lt;/td&gt;
&lt;td&gt;Fork of IPCop&lt;/td&gt;
&lt;td&gt;Fork of IPCop&lt;/td&gt;
&lt;td&gt;LFS from scratch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Subscription&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/endian-firewall-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/endian-firewall-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/endian-firewall-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Smoothwall Express in 2026: What "No Major Release Since 2014" Means for a Security Appliance</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:15:36 +0000</pubDate>
      <link>https://dev.to/goodguy11/smoothwall-alternative-what-to-use-instead-of-smoothwall-firewall-5g0g</link>
      <guid>https://dev.to/goodguy11/smoothwall-alternative-what-to-use-instead-of-smoothwall-firewall-5g0g</guid>
      <description>&lt;p&gt;Smoothwall Express 3.1 was released in 2014. That is 12 years without a major release for a Linux-based security appliance. Let's look at what that means technically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4lbcye8pcjva7x5ah0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4lbcye8pcjva7x5ah0s.png" alt="Smoothwall Alternative" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What "no major release" means for a security appliance
&lt;/h2&gt;

&lt;p&gt;A Linux-based firewall distribution depends on several upstream components that evolve continuously:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Linux kernel:&lt;/strong&gt; LTS kernels have 6-year support cycles. The kernel shipped with Smoothwall Express 3.1 (based on CentOS 6 era) is several major versions behind current LTS (6.x).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iptables / nftables:&lt;/strong&gt; iptables has been superseded by nftables in modern distributions. Smoothwall Express uses iptables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenSSL:&lt;/strong&gt; Multiple major versions have been released since 2014, including TLS 1.3 support (OpenSSL 1.1.1+). Older OpenSSL versions cannot negotiate TLS 1.3 connections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Squid:&lt;/strong&gt; Squid 6.x shipped in 2023 with significant security improvements. Smoothwall Express ships an older Squid branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The OpenSSL / TLS 1.3 problem in particular
&lt;/h3&gt;

&lt;p&gt;Many modern servers prefer or require TLS 1.3. A proxy running an OpenSSL version that predates TLS 1.3 support will negotiate TLS 1.2 at best — or fail to connect entirely if the upstream server enforces TLS 1.3 minimum.&lt;/p&gt;

&lt;p&gt;For a security gateway that is supposed to inspect web traffic, this is a meaningful capability gap: you cannot inspect TLS 1.3 traffic you cannot terminate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature gaps compared to a modern UTM
&lt;/h2&gt;

&lt;p&gt;Smoothwall Express was designed as a simple firewall and proxy. Features that exist in current UTMs but not in Smoothwall Express:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;✅ Stateful firewall
✅ Basic web proxy (Squid)
✅ Basic URL filtering
⚠️ Web antivirus (ClamAV, but outdated)
❌ SSL inspection / TLS MITM
❌ Web Application Firewall
❌ Reverse proxy
❌ Load balancer
❌ Multi-WAN with failover
❌ QoS / traffic shaping beyond basics
❌ LDAP/AD integration for per-user filtering
❌ Centralised multi-site management
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Smoothwall UTM: the commercial version
&lt;/h2&gt;

&lt;p&gt;Smoothwall Ltd. (now owned by Family Zone Cyber Safety) maintains a separate commercial product — Smoothwall UTM — that has received active development. It includes SSL inspection, AD integration, and modern content filtering. It is priced for the education market and has E-Rate eligibility in the US.&lt;/p&gt;

&lt;p&gt;If you need Smoothwall specifically for education-sector compliance (E-Rate, safeguarding requirements), Smoothwall UTM remains relevant. For general SMB use, you are paying education-market pricing for a product optimised for a different use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration path technical considerations
&lt;/h2&gt;

&lt;p&gt;Moving from Smoothwall Express to a modern UTM:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Firewall rule export:&lt;/strong&gt; Smoothwall rules are stored in flat files, not an exportable standard format. Rules must be manually translated to the target platform's syntax.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. URL filtering:&lt;/strong&gt; Smoothwall uses SquidGuard with MESD blocklists. Modern replacements use updated category databases — mapping between category taxonomies requires review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Network topology:&lt;/strong&gt; Smoothwall uses a red/green/orange/blue zone model. Map these to the equivalent interface/zone model on the target platform before migration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Parallel operation:&lt;/strong&gt; Run the new appliance in parallel on a test segment for at least a week before cutover. Smoothwall's configuration edge cases may not be immediately apparent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard&lt;/strong&gt; as a migration target provides LDAP/AD integration for per-user URL filtering, SSL inspection, WAF, and a fully active development cycle — with a kernel and OpenSSL version current as of 2026.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/smoothwall-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/smoothwall-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/smoothwall-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>opensource</category>
      <category>linux</category>
    </item>
    <item>
      <title>Untangle's Plugin Architecture: Dependency Compatibility and the True Cost of Modular Pricing</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:13:12 +0000</pubDate>
      <link>https://dev.to/goodguy11/untangle-alternative-what-to-use-instead-of-untangle-ng-firewall-j1h</link>
      <guid>https://dev.to/goodguy11/untangle-alternative-what-to-use-instead-of-untangle-ng-firewall-j1h</guid>
      <description>&lt;p&gt;Untangle NG Firewall's app-store model separates the core firewall from security features. Understanding the technical implications of this architecture helps evaluate whether the flexibility is worth the cost — and the operational overhead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5i4tjs6kcq54064suo8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5i4tjs6kcq54064suo8.png" alt="Untangle Alternative" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Untangle's plugin architecture
&lt;/h2&gt;

&lt;p&gt;Untangle runs on Debian Linux. The core platform provides the packet filtering, network management, and the app framework. Security features ("apps") are installed on top:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web Filter:&lt;/strong&gt; URL categorisation and policy enforcement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Virus Blocker:&lt;/strong&gt; Antivirus scanning via ClamAV or commercial engine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSL Inspector:&lt;/strong&gt; TLS inspection / MITM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Application Control:&lt;/strong&gt; Deep packet inspection for app identification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAN Failover / Balancer:&lt;/strong&gt; Multi-WAN management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has its own version, release notes, and update cycle&lt;/li&gt;
&lt;li&gt;Is managed through the Untangle Command Center subscription&lt;/li&gt;
&lt;li&gt;Requires a license token validated against Untangle's infrastructure&lt;/li&gt;
&lt;li&gt;Integrates with the core via Untangle's proprietary UVM (Untangle Virtual Machine) API&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Plugin API stability
&lt;/h3&gt;

&lt;p&gt;Untangle's UVM provides a Java-based API layer that apps hook into. Major platform version upgrades (e.g., 16.x → 17.x) may change API interfaces, requiring corresponding updates to all installed apps. If an app is not updated for the new platform version, it stops loading.&lt;/p&gt;

&lt;p&gt;This creates the same update coordination problem as plugin-based open-source platforms — with the additional constraint that the compatibility matrix is maintained by Untangle, not the operator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature gaps that no plugin covers
&lt;/h2&gt;

&lt;p&gt;Despite the extensible architecture, two significant features are absent from Untangle's app catalog:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Application Firewall:&lt;/strong&gt; Untangle has no WAF app. HTTP request inspection against attack signatures (SQL injection, XSS, path traversal) is not available at any subscription tier. Organisations running web applications must deploy a separate WAF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reverse proxy / load balancer:&lt;/strong&gt; Not available. SSL offloading and backend load distribution require a separate product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost analysis: Complete bundle vs integrated free alternative
&lt;/h2&gt;

&lt;p&gt;The Untangle Complete bundle includes: Web Filter, Virus Blocker, SSL Inspector, Application Control, WAN Failover, and others.&lt;/p&gt;

&lt;p&gt;Approximate pricing (2025):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complete (up to 12 devices, 3yr): ~$720 ($240/yr)&lt;/li&gt;
&lt;li&gt;Complete (up to 100 devices): ~$1,890/yr&lt;/li&gt;
&lt;li&gt;Complete (up to 250 devices): ~$3,500/yr&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These costs are ongoing — discontinuing the subscription downgrades functionality to the free tier (firewall only).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard comparison:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Untangle&lt;/th&gt;
&lt;th&gt;CacheGuard&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Firewall&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web antivirus&lt;/td&gt;
&lt;td&gt;Paid (Virus Blocker)&lt;/td&gt;
&lt;td&gt;Free (ClamAV integrated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL filtering&lt;/td&gt;
&lt;td&gt;Paid (Web Filter)&lt;/td&gt;
&lt;td&gt;Free (Squid + category lists)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSL inspection&lt;/td&gt;
&lt;td&gt;Paid (SSL Inspector)&lt;/td&gt;
&lt;td&gt;Free (integrated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WAF&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;td&gt;Free (ModSecurity + OWASP CRS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reverse proxy&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;td&gt;Free (Apache mod_proxy)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-WAN&lt;/td&gt;
&lt;td&gt;Paid (WAN Failover)&lt;/td&gt;
&lt;td&gt;Free (integrated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QoS&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;Free (HTB + SFQ)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-site management&lt;/td&gt;
&lt;td&gt;Paid (Command Center)&lt;/td&gt;
&lt;td&gt;Free (CacheGuard Manager)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Features that Untangle has but CacheGuard does not: OpenVPN/SSL VPN, IPS (Intrusion Prevention), Active Directory integration via Directory Connector, application-level traffic identification.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/untangle-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/untangle-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/untangle-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>FortiGate ASIC vs Commodity Hardware: Where Dedicated Processing Matters and Where It Doesn't</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 11:01:31 +0000</pubDate>
      <link>https://dev.to/goodguy11/fortinet-alternative-what-to-use-instead-of-fortinet-for-network-security-22pl</link>
      <guid>https://dev.to/goodguy11/fortinet-alternative-what-to-use-instead-of-fortinet-for-network-security-22pl</guid>
      <description>&lt;p&gt;FortiGate appliances use dedicated ASICs (Application-Specific Integrated Circuits) for network processing. Understanding what these chips do — and where commodity x86 achieves parity — is necessary for rational sizing decisions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegisea2ayci98pd2jxo1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegisea2ayci98pd2jxo1.png" alt="Fortinet Alternative" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FortiGate's ASIC architecture
&lt;/h2&gt;

&lt;p&gt;Fortinet uses three custom processor families:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NP (Network Processor):&lt;/strong&gt; Handles Layer 3/4 forwarding, stateful firewall processing, and IPsec VPN encryption/decryption offload. The NP7 (current generation) processes packets at line rate without CPU involvement, enabling multi-gigabit firewall throughput with near-zero latency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CP (Content Processor):&lt;/strong&gt; Handles cryptographic operations and content inspection — SSL/TLS inspection, IPS signature matching, and virus scanning. The CP9 can perform TLS decryption at 20+ Gbps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SP (Security Processor):&lt;/strong&gt; Used in higher-end models for application identification and deep packet inspection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where ASICs outperform x86
&lt;/h3&gt;

&lt;p&gt;The NP processor advantage is measurable at high throughput:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Traffic type&lt;/th&gt;
&lt;th&gt;FortiGate 60F (NP6Lite)&lt;/th&gt;
&lt;th&gt;Commodity x86 (2-core)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Firewall throughput&lt;/td&gt;
&lt;td&gt;10 Gbps&lt;/td&gt;
&lt;td&gt;~3-5 Gbps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IPsec VPN throughput&lt;/td&gt;
&lt;td&gt;6.5 Gbps&lt;/td&gt;
&lt;td&gt;~1-2 Gbps (AES-NI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS inspection throughput&lt;/td&gt;
&lt;td&gt;1 Gbps&lt;/td&gt;
&lt;td&gt;~500 Mbps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firewall latency&lt;/td&gt;
&lt;td&gt;~4 μs&lt;/td&gt;
&lt;td&gt;~50-200 μs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These numbers matter for enterprise edge deployments handling multi-gigabit WAN links or thousands of concurrent VPN tunnels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where x86 achieves parity
&lt;/h3&gt;

&lt;p&gt;For deployments with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Internet uplinks under 500 Mbps&lt;/li&gt;
&lt;li&gt;Under 200 concurrent users&lt;/li&gt;
&lt;li&gt;Under 500 concurrent VPN tunnels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Modern x86 with AES-NI (hardware AES acceleration, standard on all Intel/AMD CPUs since ~2010) and multi-core processing reaches equivalent throughput. The NP processor advantage becomes unmeasurable below ~1 Gbps of actual traffic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Verify AES-NI availability on Linux&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-m1&lt;/span&gt; aes /proc/cpuinfo
&lt;span class="c"&gt;# Benchmark AES-256-GCM performance&lt;/span&gt;
openssl speed &lt;span class="nt"&gt;-evp&lt;/span&gt; aes-256-gcm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A 4-core x86 system running CacheGuard can handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 Gbps+ firewall throughput&lt;/li&gt;
&lt;li&gt;500 Mbps+ TLS inspection (limited by SSL handshake rate, not bulk throughput)&lt;/li&gt;
&lt;li&gt;Hundreds of concurrent IPsec VPN tunnels&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FortiGuard threat intelligence: the non-hardware advantage
&lt;/h2&gt;

&lt;p&gt;Separate from the ASIC processing, FortiGate's operational advantage includes FortiGuard Labs — Fortinet's threat intelligence operation that updates IPS signatures, URL categories, and malware definitions continuously. This is a cloud service, not a hardware feature.&lt;/p&gt;

&lt;p&gt;The update frequency and breadth of FortiGuard intelligence is materially better than open-source alternatives (ClamAV signatures, community URL blocklists). For environments facing sophisticated, targeted threats, this is a real operational difference.&lt;/p&gt;

&lt;p&gt;For standard SMB threat profiles — commodity malware, phishing, drive-by downloads — ClamAV signatures and maintained URL blocklists (or a subscription category database at ~€5/month) provide adequate coverage.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hardware lock-in consequence
&lt;/h2&gt;

&lt;p&gt;FortiGate hardware cannot run third-party software. FortiOS is proprietary. If Fortinet changes pricing, deprecates a model, or is acquired, your options are limited to whatever Fortinet offers.&lt;/p&gt;

&lt;p&gt;On commodity x86, you run software you control on hardware you can replace from any vendor. The hardware is a commodity; the software can be updated, replaced, or forked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sizing guidance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FortiGate is the right choice if:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Internet uplink &amp;gt; 1 Gbps AND TLS inspection is required&lt;/li&gt;
&lt;li&gt;Deployment requires FortiGuard intelligence at enterprise update frequency&lt;/li&gt;
&lt;li&gt;IPS (intrusion prevention) is a hard compliance requirement&lt;/li&gt;
&lt;li&gt;You operate &amp;gt; 500 concurrent VPN tunnels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Commodity x86 with CacheGuard is sufficient if:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Internet uplink &amp;lt; 500 Mbps&lt;/li&gt;
&lt;li&gt;Organisation size &amp;lt; 500 users&lt;/li&gt;
&lt;li&gt;Standard threat protection (firewall, antivirus, URL filtering, WAF) meets security requirements&lt;/li&gt;
&lt;li&gt;Hardware independence and zero licensing cost are operational priorities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/fortinet-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/fortinet-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/fortinet-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>devops</category>
      <category>hardware</category>
    </item>
    <item>
      <title>OPNsense Plugin Compatibility on FreeBSD: What Breaks and Why</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 10:59:11 +0000</pubDate>
      <link>https://dev.to/goodguy11/opnsense-alternative-what-to-use-instead-of-opnsense-for-network-security-54e8</link>
      <guid>https://dev.to/goodguy11/opnsense-alternative-what-to-use-instead-of-opnsense-for-network-security-54e8</guid>
      <description>&lt;p&gt;OPNsense is a FreeBSD-based firewall. Reaching UTM functionality requires plugins maintained by the OPNsense community and third parties. Here is the technical picture of how those plugins integrate and where compatibility breaks down.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogu6pj3k0b3ugopzg1ks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogu6pj3k0b3ugopzg1ks.png" alt="OPNsense Alternative"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The OPNsense plugin model
&lt;/h2&gt;

&lt;p&gt;OPNsense plugins are FreeBSD packages distributed via the OPNsense repository. They integrate with the core via:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;XML configuration merging:&lt;/strong&gt; Plugins add their configuration schema to OPNsense's central XML config file (&lt;code&gt;/conf/config.xml&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python backend (configd):&lt;/strong&gt; Plugins register backend services that the PHP GUI frontend calls via a Unix socket&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service management:&lt;/strong&gt; Plugins register with OPNsense's service framework for start/stop/restart operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a clean integration model. The problem is that each layer can break independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Squid on OPNsense: the proxy stack
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;os-squid&lt;/code&gt; plugin installs Squid from FreeBSD ports. The OPNsense GUI provides configuration for basic proxy settings. Advanced Squid features (custom ACLs, cache tuning, ssl-bump configuration) require editing Squid's config files directly — OPNsense's GUI does not expose them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;URL filtering with SquidGuard or web filtering:&lt;/strong&gt; The primary URL filtering option is &lt;code&gt;os-squidguard&lt;/code&gt;, which uses SquidGuard for category-based filtering. SquidGuard is a Squid URL redirector that has had limited active development in recent years. Alternatively, &lt;code&gt;os-web-proxy-useracl&lt;/code&gt; provides some per-user ACL support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version coupling issue:&lt;/strong&gt; When OPNsense updates its FreeBSD base (e.g., 13.x → 14.x), the Squid port in FreeBSD repositories may lag or have breaking changes. The OPNsense team maintains their package repository to address this, but update lag between base OS releases and plugin availability is a recurring operational concern.&lt;/p&gt;

&lt;h2&gt;
  
  
  ClamAV integration: the ICAP chain
&lt;/h2&gt;

&lt;p&gt;ClamAV does not integrate directly with Squid. The integration path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Squid → ICAP protocol → c-icap daemon → ClamAV daemon
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On OPNsense, this requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;os-clamav&lt;/code&gt;: installs ClamAV&lt;/li&gt;
&lt;li&gt;Manual c-icap configuration (no official OPNsense c-icap plugin — community approaches vary)&lt;/li&gt;
&lt;li&gt;Squid ICAP configuration via custom options in the GUI's "Advanced" field&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the most fragile point in the UTM stack. The c-icap → ClamAV boundary has version sensitivity: ClamAV API changes between major versions may require c-icap updates. If c-icap is not maintained for the installed ClamAV version, antivirus scanning silently fails — Squid returns 200 to ICAP requests that return errors, treating them as "scan passed."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Detecting silent ICAP failure:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check ICAP response on OPNsense&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"OPTIONS icap://127.0.0.1:1344/squid_clamav ICAP/1.0&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="s2"&gt;Host: 127.0.0.1&lt;/span&gt;&lt;span class="se"&gt;\r\n\r\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | nc 127.0.0.1 1344
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A healthy response returns &lt;code&gt;ICAP/1.0 200 OK&lt;/code&gt;. An error or no response means antivirus is not scanning traffic despite Squid believing it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  ModSecurity: the absent plugin
&lt;/h2&gt;

&lt;p&gt;OPNsense does not have an officially maintained ModSecurity plugin. Community attempts exist but are not in the official repository and have inconsistent maintenance status. WAF capability on OPNsense essentially requires running a separate Apache or Nginx instance outside the OPNsense management framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  SSL inspection: ssl-bump complexity
&lt;/h2&gt;

&lt;p&gt;OPNsense's Squid plugin supports ssl-bump (TLS interception) via the GUI, but the CA certificate management — generating the proxy CA, distributing it to clients — is manual. There is no integrated PKI in OPNsense for this purpose.&lt;/p&gt;

&lt;p&gt;The ssl-bump configuration in Squid requires careful &lt;code&gt;step&lt;/code&gt; ordering to handle different certificate scenarios (valid cert, expired cert, self-signed cert, pinned cert) correctly. Misconfiguration causes either security gaps (blocking too little) or browsing failures (blocking too much).&lt;/p&gt;

&lt;h2&gt;
  
  
  The integrated alternative
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard&lt;/strong&gt; eliminates each of these integration points: Squid, ClamAV, the ICAP chain, ssl-bump, ModSecurity, and the PKI are all pre-integrated and version-locked in a single LFS-based OS image. There is no c-icap compatibility to manage, no FreeBSD package lag to track, no separate CA management step.&lt;/p&gt;

&lt;p&gt;The trade-off: you cannot customise individual components. If your requirements fit the standard UTM feature set, this trades flexibility for operational reliability.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/opnsense-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/opnsense-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/opnsense-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>opensource</category>
      <category>bsd</category>
    </item>
    <item>
      <title>FreeBSD vs Linux Network Stack for Security Appliances: Kernel Differences That Matter Operationally</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 10:56:29 +0000</pubDate>
      <link>https://dev.to/goodguy11/pfsense-alternative-what-to-use-instead-of-pfsense-for-network-security-l8j</link>
      <guid>https://dev.to/goodguy11/pfsense-alternative-what-to-use-instead-of-pfsense-for-network-security-l8j</guid>
      <description>&lt;p&gt;pfSense runs on FreeBSD. CacheGuard runs on a custom Linux distribution. The OS choice has practical implications for packet filtering architecture, hardware support, and third-party integration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9dhthnu9a09vr4gei6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9dhthnu9a09vr4gei6e.png" alt="pfSense Alternative" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Packet filtering: pf vs nftables / iptables
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FreeBSD / pfSense:&lt;/strong&gt; Uses &lt;code&gt;pf&lt;/code&gt; (Packet Filter), originally from OpenBSD. pf uses a declarative rule syntax evaluated top-to-bottom with a "last matching rule wins" model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# pf syntax
pass out on em0 proto tcp from any to any port 443
block in on em0 proto tcp from &amp;lt;blocklist&amp;gt; to any
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;pf has native support for traffic normalisation, scrubbing, and stateful tracking. Its rule model is elegant for network engineers familiar with OpenBSD tooling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux / CacheGuard:&lt;/strong&gt; Uses &lt;code&gt;nftables&lt;/code&gt; (or iptables). nftables uses a chain-and-table model with explicit jumps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# nftables syntax&lt;/span&gt;
nft add rule inet filter input tcp dport 443 accept
nft add rule inet filter input ip saddr @blocklist drop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;nftables provides better performance than legacy iptables through native sets and maps, and is the current standard in Linux networking. iptables remains supported but is a compatibility layer over nftables in modern kernels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Both pf and nftables can saturate 10Gbps+ links on modern hardware for stateful forwarding. At lower traffic volumes (typical SMB), performance differences are not operationally significant.&lt;/p&gt;

&lt;h2&gt;
  
  
  NAT implementation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;pfSense:&lt;/strong&gt; NAT is part of the &lt;code&gt;pf&lt;/code&gt; ruleset. Source NAT, destination NAT, and 1:1 NAT are configured via pf rules or the pfSense GUI which generates pf rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; NAT uses the netfilter connection tracking subsystem (&lt;code&gt;conntrack&lt;/code&gt;). SNAT, DNAT, and MASQUERADE are iptables/nftables targets in the nat table. The conntrack table tracks connection state for NAT translation.&lt;/p&gt;

&lt;p&gt;Both approaches handle standard NAT scenarios equivalently. Linux conntrack has a configurable table size limit — relevant for high-connection-count environments (default 65536 entries, tunable via &lt;code&gt;net.netfilter.nf_conntrack_max&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Hardware driver coverage
&lt;/h2&gt;

&lt;p&gt;FreeBSD and Linux have different driver ecosystems. For network interface cards specifically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Intel NICs (e1000, igb, ixgbe, i40e):&lt;/strong&gt; Well-supported on both&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Realtek NICs:&lt;/strong&gt; Better Linux support; FreeBSD support has historically lagged for newer chipsets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broadcom NICs:&lt;/strong&gt; Both have support, Linux generally broader&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SR-IOV / DPDK:&lt;/strong&gt; Linux ecosystem is more mature for virtualised and high-performance networking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For new hardware purchases, both platforms support mainstream server NICs equivalently. For repurposed consumer hardware with Realtek NICs, Linux has a historical edge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Package ecosystem and update model
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;pfSense:&lt;/strong&gt; FreeBSD packages via pkg, plus pfSense-specific packages via the pfSense package manager. Package updates are managed separately from the base OS update. Version locking between base OS and packages is the operator's responsibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CacheGuard (LFS-based):&lt;/strong&gt; No package manager — all components are compiled and integrated at build time. Updates are whole-system updates tested against the full component set. No per-package version management, no pkg commands.&lt;/p&gt;

&lt;p&gt;This is the fundamental operational difference: pfSense gives you control over each component's version; CacheGuard removes that surface area entirely and manages it centrally. Neither is universally better — the right choice depends on whether you want per-component control or coordinated stability.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/pfsense-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/pfsense-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/pfsense-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>networking</category>
      <category>linux</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>Sophos XGS Feature Architecture: What Requires Proprietary Hardware and What Doesn't</title>
      <dc:creator>ZeroTrust Architect</dc:creator>
      <pubDate>Thu, 07 May 2026 10:51:43 +0000</pubDate>
      <link>https://dev.to/goodguy11/sophos-alternative-what-to-use-instead-of-sophos-for-network-security-2ih5</link>
      <guid>https://dev.to/goodguy11/sophos-alternative-what-to-use-instead-of-sophos-for-network-security-2ih5</guid>
      <description>&lt;p&gt;Sophos XGS hardware uses the "Xstream" architecture — dedicated processing components for specific functions. Understanding which features depend on this hardware and which are software functions helps identify where open-source alternatives have parity and where they do not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro2x2yhakljezijziw43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro2x2yhakljezijziw43.png" alt="Sophos Alternative" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Xstream architecture
&lt;/h2&gt;

&lt;p&gt;XGS appliances include dedicated processing for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Xstream Flow Processor:&lt;/strong&gt; Offloads TLS inspection from the main CPU using hardware acceleration. Enables high-throughput SSL decryption without impacting general forwarding performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xstream Deep Packet Inspection engine:&lt;/strong&gt; Dedicated ASIC for signature-based IPS, application identification, and traffic classification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SophosLabs threat intelligence integration:&lt;/strong&gt; Cloud-connected, continuously updated threat feeds including malware signatures, IP reputation, and behavioral indicators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sandstorm sandboxing:&lt;/strong&gt; Uploads suspicious files to Sophos' cloud sandbox for dynamic behavioral analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synchronized Security / Security Heartbeat:&lt;/strong&gt; A proprietary protocol between XGS appliances and Sophos endpoint agents. The firewall receives real-time endpoint health signals and can automatically quarantine compromised hosts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are not software features — they depend on the XGS hardware platform and Sophos' cloud infrastructure. They cannot be replicated on commodity hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is software-defined and replicable
&lt;/h2&gt;

&lt;p&gt;The following XGS capabilities are implemented in software and can be matched by open-source alternatives on commodity hardware:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;XGS capability&lt;/th&gt;
&lt;th&gt;Open-source equivalent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Stateful firewall + NAT&lt;/td&gt;
&lt;td&gt;iptables / nftables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IPsec VPN (IKEv2)&lt;/td&gt;
&lt;td&gt;StrongSwan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web proxy + URL filtering&lt;/td&gt;
&lt;td&gt;Squid + category databases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSL inspection&lt;/td&gt;
&lt;td&gt;Squid ssl-bump&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gateway antivirus&lt;/td&gt;
&lt;td&gt;ClamAV via ICAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WAF&lt;/td&gt;
&lt;td&gt;ModSecurity + OWASP CRS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reverse proxy + load balancer&lt;/td&gt;
&lt;td&gt;Apache mod_proxy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-WAN failover&lt;/td&gt;
&lt;td&gt;iproute2 + routing rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QoS / traffic shaping&lt;/td&gt;
&lt;td&gt;tc + HTB + SFQ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web caching&lt;/td&gt;
&lt;td&gt;Squid caching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-site management&lt;/td&gt;
&lt;td&gt;On-premises management plane&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For an SMB running a 20–200 user network, the software-defined capabilities cover the vast majority of day-to-day security needs. The hardware-accelerated features (Xstream SSL offload, deep learning detection, cloud sandboxing) deliver measurable value at enterprise traffic volumes and threat sophistication levels — but represent diminishing returns for smaller deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Licensing model: what stops working on expiry
&lt;/h2&gt;

&lt;p&gt;Sophos XGS requires annual subscription licensing for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Xstream Protection (IPS, app control, threat intelligence)&lt;/li&gt;
&lt;li&gt;Web Protection (URL filtering, web antivirus)&lt;/li&gt;
&lt;li&gt;Email Protection&lt;/li&gt;
&lt;li&gt;Enhanced Support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without an active subscription:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IPS signatures stop updating → protection degrades over time&lt;/li&gt;
&lt;li&gt;URL category database stops updating → filtering becomes stale&lt;/li&gt;
&lt;li&gt;Firmware updates are no longer provided&lt;/li&gt;
&lt;li&gt;The appliance continues functioning with its last configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike Meraki, Sophos appliances do not brick on license expiry — they degrade rather than shut down. But a Sophos XGS running on expired signatures is security theatre, not security.&lt;/p&gt;

&lt;h2&gt;
  
  
  The open-source parity zone
&lt;/h2&gt;

&lt;p&gt;For sub-500-user deployments where Security Heartbeat integration is not relevant, where cloud sandboxing is not a compliance requirement, and where high-throughput SSL inspection does not require hardware acceleration, commodity hardware running CacheGuard covers the functional security requirements at zero licensing cost.&lt;/p&gt;

&lt;p&gt;CacheGuard does not provide: deep learning threat detection, cloud sandboxing, Security Heartbeat endpoint integration, or email security. If these are hard requirements, XGS is the right platform. If they are nice-to-haves, the annual licensing cost becomes harder to justify.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://www.cacheguard.com/sophos-alternative/" rel="noopener noreferrer"&gt;https://www.cacheguard.com/sophos-alternative/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.cacheguard.com/sophos-alternative/" rel="noopener noreferrer"&gt;CacheGuard Blog&lt;/a&gt;. CacheGuard is free and open source — &lt;a href="https://github.com/cacheguard/CacheGuard-OS" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>networking</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
