喺 Google Cloud 安裝 pfSense

Google Cloud 自己有 Firewall、VPN,所以唔係咁歡迎你自己搞同樣嘅嘢,仲有多一層麻煩,就係 Google Cloud 啲 Compute Engine 唔支持 FreeBSD,咁啱 pfSense 個 Installer ISO 就係用 FreeBSD,啱啱遇著剛剛,你想用 pfSense 就要花多啲功夫先得。咁多 open source 嘅 choices 又點解一定要揀 pfSense 呀?自尋煩惱囉,阿甲用 m0n0wall,阿乙就話用 Endian,阿丙就唔執輸佢揀 pfSense,😝

其實搞邊隻都係要花時間去學,熟悉咗之後仲要時不時花時間去跟進,終身學習嘛!做 IT 人真係唔易。😀

我嘅目的係要用 Google Cloud 隻 pfSense 做個 switching hub,俾其他 sites 駁上嚟,於是,靠隻 hub, 啲 site to site 可以互通。

你或者會問點解唔用 Google Cloud 提供嘅 VPN 搞 IPsec site to site 呀?哩個我搞咗,今次係因為有啲 sites 係喺 firewall 後面,唔用得 WAN 嘅 fixed IP,又或者係家居,冇 fixed IP,咁就可以睇落去。🤗

首先聲明,我係參考哩個 web page 搞嘅,各位可以去睇下。

大概嘅步驟就係下載隻 pfSense ISO,改成 Google Cloud 要求嘅格式,上載去 Google Cloud,造隻 image,再 create 你最終嘅 compute instance。

我今次用 Windows 10 搞,我估計用 Mac 會易好多:

 

你要用到 Google Cloud SDK Shell 同埋 Bash on Ubuntu on Windows,先行安裝好再番嚟。😜 用 bash 下載 pfSense,句 command 係用 curl 去指定嘅 address link 讀入隻 boot disk 放入一個新檔案 disk.raw 內。
 
你可以用 File Explorer 去確認一下,又可以用 7 zip 之類去打開隻檔案睇下。檔案名一定要用 disk.raw,Google Cloud 規定嘅,冇得商量。 再用 bash command tar 壓縮成 gz 格式,個名就可以改成有意思啲嘅檔案名。
你可以唔用 bash,直接去 pfSense 個 site 下載相同嘅檔案。 不過,個檔案名就可能有啲混淆,你點都要先轉成 disk.raw 然後再 tar 成 gz Google Cloud 先收貨,所以用 bash 會易少少,照抄就 OK。
   
 Local 準備好,去 Google Cloud Console,選 Storage > Browser > Create a bucket,張圖有紅字係因為我已經 create 咗一次。  打開隻新 bucket,然後 click UPLOAD FILES 或者 drag 隻準備好嘅檔案入去都得。
去 Images > CREATE IMAGE,將個上載檔案由 Google Cloud 檢定一下,同時由 bucket 轉成可以用嘅 bootable image。 有咗 image 就可以去 Compute Engine > VM instances > Create an instance,哩個唔係最終要嘅 instance,係利用佢 install 個 pfSense,等於由 bootable CD 轉成 bootable HD 咁,所以個 Boot disk 要揀剛才整嘅 image。
然後,就要加多隻 disk-1 俾佢安裝,名冇所謂,不過一定要選 None(blank disk),我用 10GB,日後再生出嚟嘅 instances 會 default 用 10GB。 記得選 When deleting instance = Delete Disk,因為唔使保留,成功嘅話,可以用完即棄,Google Cloud 咩都計錢㗎。
成功 create 之後就可以打開哩個 instance,然後 click Connect to serial console (紅圈)。 依家係用 Serial Terminal 駁住隻 instance 當係 monitor 同 keyboard,vt100 係阿爺嗰代最流行嘅 terminal,你按 Enter (Return) 就 OK。
Enter Enter
Enter Enter
然後佢就會自動安裝隻 pfSense。 最後,安裝完畢,佢會問你有冇補充?冇,佢就會 reboot,我冇補充,不過我哋唔要 reboot,因為 reboot 又會再安裝一次,我哋要 Google Cloud Console stop 個 instance。
停咗之後,去 Compute Engine > Snapshot > Create a snapshot,將啱啱整出嚟 install 咗 pfSense 嘅 disk-1 造成 snapshot,以後再整幾多個 pfSense instance 都係用哩個 snapshot 最重要係 Boot disk 選啱你造出嚟嘅 snapshot,其他就照你想要嘅嚟選就得哂!安裝嘅時候 pfSense 衹搵到個 WAN,冇 LAN,而且個 WAN port = Google Cloud Console 個 internal IP,有人話 IP Forwarding 要 check,我有,不過我諗唔 check 都應該得。

*** 完 ***

P.S. 上文用到嘅 Bash command:

curl https://nyifiles.pfsense.org/mirror/downloads/pfSense-CE-memstick-serial-2.4.2-RELEASE-amd64.img.gz | gunzip > disk.raw

tar -Sczf pfSense-CE-memstick-serial-2.4.2-RELEASE-amd64.img.tar.gz disk.raw