virt-install --name pfsense --ram 1024 --vcpus=1 --os-variant freebsd7 --hvm --vnc \
--controller type=scsi,model=virtio-scsi --disk path=pfSense-2.2.2.raw,size=4,bus=scsi \
--network=bridge:br0,model=virtio \
--cdrom pfSense-LiveCD-2.2.2-RELEASE-amd64.iso
Configure vtnet0 as WAN.
- Interfaces/WAN:
- General configuration/MTU: 1460
- DHCP client configuration/Advanced: Checked
- DHCP client configuration/Option Modifiers: supersede subnet-mask 255.255.0.0
- System/Advanced:
- webConfigurator/Browser HTTP_REFERER enforcement: Checked
- Secure Shell/Secure Shell Server: Checked (optional)
curl https://sdk.cloud.google.com | bash
gcloud auth login
gcloud config set project endless-gamma-92206
gsutil mb gs://pfsense
gsutil cp pfSense-2.2.2-1.tar.gz gs://pfsense
gcloud compute images create pfsense-2-2-2-1 --source-uri gs://pfsense/pfSense-2.2.2-1.tar.gz
- Allow HTTPS: Checked
- Allow HTTP: Checked (optional)
Hi all,
here are all the steps I´ve done to complete the PFSense installation on a GCP instance:
References (Credits):
Route Card: https://groups.google.com/forum/#!topic/gce-discussion/tPYonu9dwbc
nlienard: https://gist.github.com/nlienard/0ca5aa8397af6e90d70f
Desra Blog: http://desrablog.blogspot.co.uk/2017/11/using-t1n1wall-on-google-compute-engine.html
Google Cloud Documentation
The pfsense downloads contain a disk image inside, the instructions say that you extract it, rename it (to the convention gce expects) and compress it again. you can do this in your cloud console or a linux system:
wget https://nyifiles.pfsense.org/mirror/downloads/pfSense-CE-memstick-serial-2.4.2-RELEASE-amd64.img.gz
gunzip pfSense-CE-memstick-serial-2.4.2-RELEASE-amd64.img.gz
mv pfSense-CE-memstick-serial-2.4.2-RELEASE-amd64.img disk.raw
tar -Sczf pfSense-CE-memstick-serial-2.4.2-RELEASE-amd64.img.tar.gz disk.raw
Create an image based on the file you uploaded to the bucket:
Activate the serial console on the project:
sudo ./google-cloud-sdk/bin/gcloud compute project-info add-metada --metadata=serial-port-enable
Create an instance and add a second disk to it:
Use the serial console to perform the install:
sudo ./google-cloud-sdk/bin/gcloud compute connect-to-serial-port [INSTANCE_NAME] -- zone [ZONE]
Install the PFSense on the second disk:
Create a snapshot from this disk you created:
Create an instance from this disk:
Use the serial to perform the setup:
sudo ./google-cloud-sdk/bin/gcloud compute connect-to-serial-port [INSTANCE_NAME] -- zone [ZONE]
Using the shell, disable HTTP REFERER:
"pfSsh.php playback disablereferercheck"
from that point on, you can access the GUI with the external IP address provided on the instance.
Hope it helps someone.