Quick answer

Measured on an N100 with 4GB RAM: gigabit forwarding at line rate, and basic Suricata IDS at 500Mbps for 10-15% CPU. The stated floor sits well below that, at two NICs, 2GB RAM and 8GB storage. Install the amd64 dvd image, assign igc0 as WAN and igc1 as LAN, then set LAN to 192.168.0.1.

By LK Wood IV · 2026-05-27 · ~15 min read · St. Louis County, MO

OPNsense mini PC firewall topology: an ISP modem in bridge mode feeds the WAN port (igc0) where Suricata IDS/IPS inspects inbound traffic and the default rule blocks all inbound; the OPNsense box runs the pf firewall engine, Unbound DNS on port 53, and a DHCP server, serving the LAN gateway 192.168.0.1 to homelab devices including Proxmox nodes and a NAS.

Your ISP’s combined modem/router is a black box with unknown firmware update schedules, weak default credentials, and no visibility into what’s happening on your network. OPNsense on a $150–300 mini PC gives you a fully open-source firewall, a real IDS/IPS system, proper VLAN support, and complete visibility — for less than a year of a commercial UTM subscription.

Still weighing the two big FreeBSD firewalls first? Our OPNsense vs pfSense comparison breaks down licensing, UI, plugins, and update cadence before you commit. This guide takes you from zero to a working OPNsense installation with DHCP, DNS, IDS, and your homelab devices connected.

Hardware requirements

OPNsense is FreeBSD-based and runs on x86-64 hardware. You need:

Minimum: 2-NIC machine, 2GB RAM, 8GB storage (a 16GB USB drive or SSD)

Recommended for homelab:

  • Protectli VP2420 or VP4630 — 4× Intel i225 2.5GbE NICs, N6005 or N100 CPU, 4–8GB RAM, designed for this purpose. $200–350.
  • Topton N100 4-NIC box — similar to Protectli but cheaper Chinese equivalent. $100–180 on AliExpress/Amazon. Uses Intel i226 NICs which have driver quirks in FreeBSD — check OPNsense forum for current status before buying.
  • Any N100/N5105 mini PC + USB NIC — not recommended for main router (USB reliability), fine for testing.

For a homelab with gigabit internet and 8–16 devices, an N100 machine with 4GB RAM handles line-rate forwarding comfortably. IDS/IPS (Suricata) adds meaningful CPU load at high traffic rates — at 500Mbps sustained, an N100 handles basic IDS with 10–15% CPU.

Step 1: Download and install OPNsense

Download the OPNsense ISO from opnsense.org/download. Choose:

  • Architecture: amd64
  • Image type: dvd (for installation media)

Write to a USB drive:

# Linux/macOS
dd if=OPNsense-*.iso of=/dev/sdX bs=4M status=progress

Or use Balena Etcher on Windows.

Boot your mini PC from the USB. OPNsense boots to a live environment. Log in as installer / opnsense.

The installer (option 1 from the menu) asks:

  1. Keymap — US unless you’re on a different layout
  2. Install mode — ZFS (recommended for hardware with NVMe/SSD) or UFS
  3. Target disk — your main storage device
  4. Partition scheme — GPT (UEFI) for modern hardware

Installation takes 2–5 minutes. Remove the USB when prompted and reboot.

Step 2: Initial console setup

After reboot, OPNsense boots to a console menu. Before touching the web UI:

Option 1: Assign interfaces. Tell OPNsense which physical NIC is WAN and which is LAN:

Do you want to configure VLANs now? [y/N]: N

Enter the WAN interface name: igc0  (or igb0, em0 — depends on your hardware)
Enter the LAN interface name: igc1

The NIC names shown are from FreeBSD drivers:

  • igc — Intel i225/i226 (common in modern mini PCs)
  • igb — Intel i210/i211/i350 (older enterprise NICs)
  • em — Intel older NICs
  • re — Realtek (avoid for WAN if possible — driver reliability)

Option 2: Set interface IPs. OPNsense defaults to 192.168.1.1 for LAN. If your current network uses 192.168.1.x, change LAN to 192.168.0.1 to avoid conflicts:

Configure IPv4 address LAN interface via DHCP? No
Enter new LAN IPv4 address: 192.168.0.1
Enter new LAN IPv4 subnet bit count: 24

After setting the LAN IP, OPNsense shows the web UI URL: https://192.168.0.1.

If you’re sizing the LAN or carving it into VLANs, the subnet & CIDR calculator gives you the usable host range, mask, and broadcast address for any prefix — a /24 here is 254 usable hosts, a /25 splits that into two 126-host segments.

Step 3: First login and basic configuration

Connect a laptop to the LAN port of your OPNsense machine. Open https://192.168.0.1 in a browser. Accept the self-signed certificate warning.

Default credentials: root / opnsense

The setup wizard runs automatically:

  1. General — set hostname (opnsense), domain (lan), DNS servers (leave blank to use the DNS resolver, or set to 1.1.1.1, 8.8.8.8)
  2. Time — set timezone and enable NTP
  3. WAN — set WAN type based on your ISP:
    • DHCP: ISP assigns IP dynamically (most cable/fiber)
    • PPPoE: DSL, fiber with separate modem (enter ISP username/password)
    • Static: if your ISP gave you a fixed IP
  4. LAN — confirm your LAN IP and subnet (the one you set in console)
  5. Password — change the root password

After completing the wizard, your internet connection should be working. Test: System → Diagnostics → Ping → ping 8.8.8.8 from the WAN interface.

Step 4: Configure DHCP

Go to Services → DHCPv4 → [LAN]:

  • Enable: checked
  • Range: set the DHCP pool (e.g., 192.168.0.100 to 192.168.0.199, leaving .1–.99 for static IPs)
  • DNS Servers: leave blank to use OPNsense’s built-in resolver, or enter your Pi-hole IP

Under DHCP Static Mappings, add entries for devices you want fixed IPs (your Proxmox nodes, NAS, printers):

  • Enter the MAC address and the IP you want to assign
  • Optionally set hostname — makes OPNsense’s logs more readable

Step 5: DNS — Unbound resolver

OPNsense includes Unbound DNS Resolver, which handles DNS resolution locally rather than forwarding everything to your ISP’s resolver.

Go to Services → Unbound DNS:

  • Enable: checked
  • Listen Port: 53
  • Network Interfaces: LAN (and any VLANs you create)
  • DNSSEC: enable for DNS validation

Under Query Forwarding (optional): if you want DNS queries forwarded to a specific server (Pi-hole, NextDNS, Quad9) rather than resolved locally by Unbound, add forwarders here. Without forwarders, Unbound resolves recursively from root servers — this is the most private option.

Local host overrides. Under Unbound DNS → Host Overrides, add entries for local services:

pve01    lan    192.168.0.10
pve02    lan    192.168.0.11
nas01    lan    192.168.0.20

Now pve01.lan resolves to 192.168.0.10 from any device on your network.

Step 6: Enable IDS/IPS with Suricata

OPNsense includes Suricata for intrusion detection and prevention (IDS/IPS). Installing it adds deep packet inspection that flags and optionally blocks known malicious traffic patterns.

Install Suricata: System → Firmware → Plugins → search "os-suricata" → Install

After install, go to Services → Intrusion Detection:

  • Enable: checked
  • IPS mode: checked (actually blocks threats, not just alerts — start with unchecked/detection-only for a week to see what it flags)
  • Interfaces: WAN (intrude detection on inbound traffic)
  • Pattern matcher: Hyperscan (fastest, requires AVX2 — check your CPU supports it), or AC-BS for compatibility

Rulesets. Under the Download tab, enable:

  • ET Open (Emerging Threats Open) — free, good coverage
  • ET Pro Telemetry (free tier) — better coverage, requires registration

After enabling rulesets, click Download & Update Rules.

Under the Rules tab, you’ll see thousands of individual rules. Start with all enabled and tune from there as you see false positives. Most home network traffic won’t trigger legitimate rules.

Schedule updates. Under Schedule, set Suricata to update rules daily. Threat intelligence is only useful if it’s current.

Step 7: Firewall rules review

OPNsense’s default ruleset after setup:

  • WAN: block all inbound (correct)
  • LAN: allow all outbound (permissive default)

For a homelab, the default LAN rule (allow all) is usually fine to start. Tighten it after you understand your traffic patterns:

Block private RFC1918 ranges on WAN (should be auto-configured but verify):

Firewall → Rules → WAN → look for “Block private networks” rule. OPNsense adds this automatically when you run the setup wizard.

Add a rule to block IoT devices from reaching your main LAN (after setting up VLANs — see the VLAN guide):

  • Source: IoT_VLAN net
  • Destination: LAN net
  • Action: Block

Step 8: Connect your homelab

With OPNsense handling DHCP and DNS, connect your Proxmox nodes, NAS, and other homelab devices to the LAN port’s switch. They’ll get IPs from OPNsense’s DHCP pool and use OPNsense as their gateway.

Set static DHCP mappings for your homelab nodes so their IPs don’t change. In Proxmox, set the gateway on each node’s network config to OPNsense’s LAN IP.

Check connectivity: from a Proxmox node, ping 1.1.1.1 should succeed through OPNsense’s WAN. ping pve02.lan should resolve and succeed through Unbound.

Ongoing maintenance

OPNsense pushes updates frequently. Apply them under System → Firmware → Updates. Security patches often come weekly. Unlike pfSense Plus, OPNsense community edition has no paywall on updates.

Backups. Export OPNsense config: System → Configuration → Backups → Download. Store this off the firewall — if the unit fails, you can restore the full config to a new box in minutes.


Once OPNsense is routing your homelab, set up VLANs to isolate IoT devices from your main network. AdGuard Home + Local DNS pairs naturally with OPNsense — run AdGuard in an LXC and point OPNsense’s DHCP DNS setting at it for network-wide ad blocking and local hostname resolution. OPNsense’s built-in WireGuard plugin (WireGuard self-hosted VPN guide) gives you remote access without a separate VPN host. The homelab firewall stack guide covers the broader architecture decision between OPNsense, pfSense, and MikroTik.

Sources

Frequently asked questions

What mini PC should I use for OPNsense?
You need a machine with at least two NICs — one for WAN, one for LAN. Dedicated firewall appliances (Protectli Vault, Topton N6005) are designed for this with 4-6 Intel i225/i226 NICs. For a budget option, an N100 mini PC with a single NIC plus a USB NIC or PCIe NIC works but USB NICs are not recommended for production use. Protectli VP2420 (~$250) is the most common recommendation for 2.5GbE WAN/LAN.
OPNsense vs pfSense — which should I choose?
OPNsense is the better choice for new homelab installs in 2026. OPNsense updates more frequently (weekly security releases vs pfSense’s slower cadence), has a cleaner web UI, and does not have the CE vs Plus licensing confusion that pfSense introduced. Both are BSD-based with similar feature sets. Most pfSense guides translate to OPNsense with minor differences.
Can OPNsense replace my ISP's modem/router combo?
OPNsense replaces the router functionality. If your ISP provides a combo modem/router (gateway), you can usually put it in bridge mode — it handles the ISP connection protocol (PPPoE, DOCSIS) and passes a public IP to OPNsense’s WAN port. Some ISPs make bridge mode difficult or impossible; check with your ISP first.
How much RAM does OPNsense need?
Minimum 2GB for basic router functionality. 4GB for IDS/IPS (Suricata/Zeek) with pattern matching enabled. 8GB if you’re running a large Suricata ruleset on a high-throughput line. The base FreeBSD OS plus OPNsense web UI uses about 400–800MB. RAM headroom matters for IDS pattern matching.
Does OPNsense support WireGuard VPN?
Yes. OPNsense has a native WireGuard plugin since version 21.7. Configure it under VPN → WireGuard in the web UI. It supports both road-warrior (client-to-site) and site-to-site configurations. Tailscale is an alternative for road-warrior access without the VPN configuration overhead.

Evidence ledger

Last updated
Methodology
This tutorial was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs, prices, commands, and version numbers are drawn from the official vendor, reseller, and project documentation current on the date above, and were verified before publishing. First-person hardware claims appear only where the article shows a verifiable artifact — a photo, receipt, or measurement — or links to the TechFuelHQ Open Bench Datasets. Every fact is human-verified against its cited source before publishing; AI assists with first-draft structure and source-gathering, not with the verdict. Full editorial standard: methodology.
Update log
  • 2026-07-25 — Last reviewed and updated.
Corrections
Spotted an error or stale price? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV. Lowell builds and runs TechFuelHQ from St. Louis, Missouri, pairing thirteen-plus years of hands-on homelab, PC, server, and networking experience with cited third-party testing and first-party benchmarks on the gear he still runs. He also works ground EMS as a Nationally Registered Paramedic (NREMT).