I learned a ton, and definitely recommend this as the next step for someone who installed a BSD in a VM and is intrigued.
Edit: hardware for building a router that is.
https://man.openbsd.org/pf.conf.5
That + https://www.openbsd.org/faq/pf/example1.html were more than enough to get me going.
Throwing a NIC in an old box works well, but any board with 2 or more network connections will suffice.
I just went to a local computer shop and picked up a HP desktop which was likely off a business lease, then tossed another NIC in. It works a charm and routes gigabit just fine.
It's small, quiet and has 2 ethernet for WAN and LAN and you can plug in an official USB Wifi dongle addon and it's good to go as a router.
You need to pick a few addons from the bare machine, like memory (I went with 8GB to run many containers), ssd (I went with m2 instead of emmc) and a case.
It's x86, so you'd have maximum compatibility for architectural differences.
Then I installed FreeBSD on an arm based sbc I use as a server and NAS. It has been a joy to use there. Basically rock solid, and the scheduler seems to prioritize interactive processes so that even under heavy load I can diagnose what’s going on quickly. I now prefer it to Linux in shell environments. I also have openBSD on a thinkpad laptop, which has been fun
I liked it because it was rock solid and configurations were simple and straightforward. It also made some things, like read-only bind mounts, easier than Linux did at the time.
However we finally gave up because the update/upgrade process was a big pain compared to Debian so it was harder to schedule updates, and because it was hard to find people who were familiar enough with it to take anything off my plate.
Now only using it for firewalls. Everything else on Debian linux which is slowly getting more annoyingly opaque with stuff like systemd that infuses magic and binary-format logs and stuff into things that used to be easy to debug. Who knows, maybe we'll be begging it to come back into our arms again one day.
About which one to use, Manuel Kasper, the original m0n0wall author, encourages to use and contribute to OPNSense, which is also the one I would personally choose after [0] happened.