Proxmox All-in-One
Installing PVE
Start with the port you will want as your WAN port (primary) from pfSense connected to your network
Install PVE
Fix repositories
- Add "pve-no-subscription"
- Disable "pve-enterprise"
- Refresh updates
- Upgrade
Add a second Linux Bridge (This will be named vmbr1)
- No addresses or gateways
- Assign your, as yet unused, second physical Ethernet port to this bridge
- For good measure, put something along the lines of "Local Network" in the comment for this one
- (You could edit vmbr0 & put "The Interwebs" in it's comment too...)
- Do NOT Forget to Apply Configuration...
pfSense
- Build the pfSense VM
- 8GB drive, 4 cores, 4096MB RAM
- Use the original bridge (vmbr0) as the first network port & the new bridge (vmbr1) as the second port.
- For some reason, when you choose "other" as your OS type, PVE defaults the network device model to "Intel E1000".
This seems unreliable for pfSense. Select "VirtIO (paravirtualized)" instead.
- For some reason, when you choose "other" as your OS type, PVE defaults the network device model to "Intel E1000".
- Configure the pfSense VM to start at boot.
- Strongly reccomend setting it to boot FIRST & give a startup delay of at least a couple of minutes.
- Do a BACKUP
- Open the VM console & pretend you're building a normal pfSense router
- Do a BACKUP
Management VM
- Pick your favourite OS & build a VM
(Or... Ya know... Since ya gave that second network bridge a physical NIC (Ya did, right?)... You could just plug a computer in there.)- Point its network device at the second network bridge (vmbr1).
- Do a BACKUP
Further VMs
Note: Any further VMs created on this server need to have their network interfaces on vmbr1 or else they'll appear on the WAN port.
pfSense Configuration
- Sign into https://192.168.0.1 (from the Management VM)
- In Services / DNS Resolver / General Settings, under Host Overrides
- set up a DNS entry for PVE. (I like 192.168.0.2)
- In Firewall / NAT / Port Forward
- set up port forwarding for the pfSense UI (port 443)
- set up port forwarding for the PVE UI (port 8006)
- set up port forwarding for SSH (port 22) to the Management VM (if used...)
- QEMU Guest Agent would be handy too...
- In Services / DNS Resolver / General Settings, under Host Overrides
- Do a BACKUP
Do note: These port forwards may be a security risk when you take the system live. They are here for ease of access while configuring the system.
Taking it LIVE
Up to this point, your server works fine on an internal network. Unfortunately, as far as the world outside the box is concerned, there are 2 machines there. The Proxmox install AND a pfSense install. They both show up on the network.
So...
Let's fix that.
- Sign into the physical machine (PVE)
- edit /etc/network/interfaces
- Move the address & gateway from vmbr0 to vmbr1 and change them to those assigned for PVE on the pfSense VM.
- edit /etc/hosts
- Change the address to that assigned for PVE on the pfSense VM
- Change the address to that assigned for PVE on the pfSense VM
- edit /etc/network/interfaces
Reboot the machine
Wait at least a couple minutes for pfSense to fully boot.
At this point, the machine shows up on your network as a single device (The pfSense VM!)
You can now browse to https://MachineAddress/ to access pfSense or https://MachineAddress:8006/ to access the PVE UI to do further setup of the system.
(Where MachineAddress is the address or name assigned to it by your local network...)
Congratulations! You have built a router out of a server. If you plug the first Ethernet port into the Internet and connect a switch to the second Ethernet port, this machine can replace the router provided by your ISP...