Over the weekend I have been installing and configuring a PfSense, Pihole and an OpenVPN VM’s.
PfSense
It took me 2 attempts to get the Pfsense VM to run correctly then once it was up and running set a Hyper-V checkpoint so when i break it again its just 1 button away to be back to its original config. It is pretty easy to install as its mostly a self guided install, the configuring is the tricky part, especially when merging into an existing network.
PfSense works pretty much out of the box once installed and you have completed the Auto Config Wizard to assign LAN & WAN interfaces. then its just about setting up firewall and NAT/ Port forwarding ruled
The one part i need to finish configuring the Pfsense VM is a hardware router capable of ‘Bridge Mode’ to properly set up Port Forwarding correctly.
PfSense can also automagicly setup and maintain your External IP address to Cloudflare using the built in DDNS tools, all you have to do is enter your email address used for Cloudflare and the global or Zone (with dns edit) API as the password and it will detect changes to your External IP and update them on the Cloudflare portal

PiHole

Setting up PiHole on a Ubuntu VM is quite easy, configuring is easy. This is probably the easiest thing Ive set up on my current list of projects, I have pointed all devices on the network to use PiHole as their DNS resolver so most ad’s and trackers are blocked by the VM. I also added the ‘BlockList’ from Firebog. he has a great list that will block most trackers and ad’s from YouTube, Facebook ect…
Adding blocklists to PiHole is as easy as copying the links from Firebog to the Adlist under the Group Management tab in the PiHole Page shown below

Ill do a quick write up on OpenVPN when I have finished setting it up, I will also be looking into other VPN solutions as an alternative to OpenVPN.
So far, all devices on the home network all use PiHole as their DNS resolver and PfSense as their Gateway to access the internet and connect with each-other.