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.
Gustavo