Install PFSense on a Digital Ocean Droplet

This article is a rewrite of the following Original and Updated Version only with a few thoughts and observations added.

The technique described here may or may not work on other cloud/vps providers, it is imperative that you have some kind of console access so you can follow the pfsense installation steps.

Start by logging in your Digital Ocean Dashboard then create a new droplet, it actually doesn’t matter the size of the droplet but it ideally it you should enable the following options:
1) Select FreeBSD 11.X, the exact version probably doesn’t matter 11.x or 12.x are fine
2) Enable “Private Networking”, it will be nicer in the long term when you setup a VPN then you’ll be able to access your DigitalOcean VMs like a big LAN.
3) Enable “IPv6”, because ipv6 its the future, better start adapting now rather than later.

While your VPS is starting, go to the pfsense download site https://www.pfsense.org/download/

The image that you need is ‘AMD64 (64-bit)’, ‘USB Memstick Installer’ and ‘VGA’ , find the download link ( there are many ways ) you will need this link on your VPS next

First log in to your VPS and write down the network information, this will come in handy when you are configuring your pfsense install for the first time, you can do it with the “ifconfig” command, write down the “hwaddr” “inet” and “inet6” information so you can use it later.

After taking notes, change user to root then run the next commands, you can substitute the DOWNURL variable to the link you found of the pfsense mirror


DOWNURL="https://nyifiles.pfsense.org/mirror/downloads/pfSense-CE-memstick-2.4.4-RELEASE-p1-amd64.img.gz"
cd /tmp
curl -O ${DOWNURL}
swapoff -a
sysctl kern.geom.debugflags=0x10
gunzip pfSense-CE-memstick-2.4.4-RELEASE-p1-amd64.img.gz
dd if=pfSense-CE-memstick-2.4.4-RELEASE-p1-amd64.img of=/dev/vtbd0
reboot

If all went well, log in to your droplet console, you should see a pfsense install starting

Sources:

https://www.pickysysadmin.ca/2019/04/19/how-to-install-pfsense-in-digitalocean/
and https://squigly.blogspot.com/2018/02/running-pfsense-on-digitalocean-droplet.html