pfSense is focused on security out of the box, and you can make as many complicated rules or networks as you like. You can make it work with pretty weak hardware (two of my firewalls are using a Celeron P4500 dual core @ 1.87GHz with 2GB RAM, and one manages 100 network clients with ease) but for Gigabit speeds you’ll want to invest in a decent NIC from Intel.

Packages like ntopng, bandwidthd, iperf, etc. are all easy to install, letting you take complete control of your network. Set up for OpenVPN is a piece of cake, letting you get a secure tunnel back to your network (or bridge two pfSense routers so that two local networks can communicate together) in a matter of minutes.

Here is a wonderful starter breakdown of the best firewall I’ve ever used by Lawrence Systems, and I highly recommend you subscribe to their YouTube channel for more great content.