OPNsense 能提供昂貴商業防火牆中的大多數功能,而且也具備完整的圖形介面(GUI, Graphical User Interface)的管理選單,基本上算是完全脫離指令設定的情況。對於非理工科系背景的人而言,在舊電腦上安裝軟路由防火牆 OPNsense ,不至於讓人感到不知所措!
與 pfSense 相比,在功能方面的差異沒有很大。不過,在圖形介面的外觀上,的確變得美觀多了。而且在選單功能的分類、功能名稱方面,OPNsense 也比較直覺。還有防火牆的更新頻率比 pfSense 頻繁多了,所以發現到漏洞時,可以盡快更新軟體。美中不足的一點就是:【教學文章的數量遠不如 pfSense!】不過,這一點還不至於造成大困擾,可以參考 pfSense 的討論文章,大部分都可以找到答案,因為設定的觀念與步驟,這兩套軟路由防火牆軟體大致上都相同。
自架軟路由防火牆的適合對象
軟路由:
其實就是將路由軟體安裝在桌上型電腦上面,而通常軟路由軟體,對於電腦硬體規格的要求都不高,所以蠻適合把手邊用不到的舊電腦拿來當作家用路由器兼防火牆使用。
軟路由軟體的選擇:
可參考免費防火牆只能選擇 pfsense 嗎?在第一章節,有整理出 16 款免費軟路由防火牆與 3 款 UTM 的個人看法。
硬路由:
其實就是目前家庭中正在使用的【有線/無線路由器】,這一類的產品就是廠商將處理器、記憶體、網路晶片、電源管理晶片…,整合在一台路由器裡面。優點是外觀討喜、耗電量相對低、插電後幾乎可以直接使用。相對的,在功能方面也只有高階/高價機種,才有可能提供跟軟路由相同的功能。
硬路由廠商的選擇:
在電商網站可以找到很多選擇,例如:D-Link、ASUS、DrayTek、Linksys、NETGEAR、Zyxel…等大廠的產品。
假使你是以下族群的話,可以嘗試在家安裝軟路由防火牆來提高居家網路安全:
- 求知慾強的族群
- 網路的應用領域很廣,藉由實作來了解更多專業知識,相信很容易可以在日常生活中,聽懂或想懂一些討論
- 自架站的族群
- 不論是用 WordPress 架設個人部落格、TrueNAS 架設檔案伺服器、nextCloud 架設個人雲端,防火牆是必備的。誰會想要讓自己的資料,被惡意連線動手腳呢?
- 瀏覽網頁時,不想看到太多置入式廣告
- 軟路由軟體幾乎都有現成的外掛或服務,利用這些功能可以封鎖廣告商網域
- 封鎖特定國家連線
- 大部分的惡意連線就是那幾個國家,以國家為單位,全部將 IP 封鎖,省時又省事
- 一物多用
- 安裝軟路由軟體的電腦並不會浪費,改天不想玩軟路由的話,還是可以讓電腦回歸原本的功能
OPNsense 的硬體規格需求
OPNsense 支援 x86-64 (amd64) 的電腦硬體,可以把軟路由軟體安裝在 SD 卡、SATA SSD、NVMe SSD、HDD 上面。
電腦硬體最低規格:
零件 | 規格 |
---|---|
CPU | Intel or AMD 64 bits 1 GHz 雙核心 (若使用 VPN的話,最好支援 AES-NI) |
記憶體 | 2 GB |
網路卡 | Intel 晶片,至少有兩個網路孔 |
安裝磁碟 | 最少 4GB 的SD 或 CF 卡,使用 Nano 的映像檔 |
電腦硬體可接受規格:
零件 | 規格 |
---|---|
CPU | Intel or AMD 64 bits 1 GHz 雙核心 (若使用 VPN的話,最好支援 AES-NI) |
記憶體 | 4 GB |
網路卡 | Intel 晶片,至少有兩個網路孔 |
安裝磁碟 | 40 GB 的 SSD 且安裝過程需要至少 2GB 的記憶體大小 |
電腦硬體推薦規格:
零件 | 規格 |
---|---|
CPU | Intel or AMD 64 bits 1.5 GHz 多核心 (若使用 VPN的話,最好支援 AES-NI) |
記憶體 | 8 GB |
網路卡 | Intel 晶片,至少有兩個網路孔 |
安裝磁碟 | 120 GB 的 SSD |
下載安裝映像檔
官方網址:https://opnsense.org/download/
下圖說明:
【1】、amd64:選擇 64 位元的安裝映像檔
【2】、vga:選擇圖形介面的安裝模式
【3】、Taiwan:有兩個下載映像檔的伺服器可以選擇
【4】、Download:開始下載
製作安裝隨身碟
軟體:Rufus
過程中有出現選項視窗的話,請使用【 dd 】來製作安裝隨身碟。
下圖說明:
【1】、確定 Rufus 有偵測到 USB 隨身碟
【2】、按下選擇鍵,將剛剛下載的映像檔匯入,成功的話檔名會出現在欄位中
【3】、按下執行,開始製作安裝隨身碟
安裝 OPNsense 軟路由軟體
電腦開機後,進入 BIOS 設定 USB隨身碟開機,就可以開始安裝軟路由軟體了。
OPNsense 軟路由軟體的預設帳號與密碼
來到這個畫面後,輸入預設的帳號是:installer,密碼是:opnsense
選擇鍵盤模式
按下【Enter】鍵,保持預設值即可。
ZFS 與 UFS 檔案系統的差異
ZFS (Zettabyte File System)是一個注重資料完整性(data integrity)的檔案系統,支援磁碟陣列(RAID)、檔案系統快照(snapshot)、支援大容量磁碟等特色。FreeBSD 的作業系統,有 background fsck 的功能,所以偶爾發生跳電狀況,軟路由軟體還不至於整個損壞需要重灌。
UFS (Unix File System),在檔案發生問題(file corruption)時, 修復時需要有很多前提成立,才能修正,而且一般的 fsck 只能針對檔案系統的 meta data 修正,若作業系統檔案損壞太嚴重的話,是無法救回的。
建議選取【Install (ZFS) ZFS GPT/UEFI Hybrid】來安裝軟路由軟體。
RAID 模式說明
stripe:也就是 RAID 0,假使只有一顆硬碟的話,就選這個選項來安裝吧,這個選項並沒有【容錯功能 Fault Tolerant 】能力。
mirror:多重備份的概念,也就是 RAID 1。假使有 2 顆硬碟的話,系統檔案會存放在這兩顆硬碟中,其中 1 顆硬碟損毀的話,系統軟體還可以正常使用。
raid10:是一種 RAID 1 與 RAID 0 的組合,擁有 RAID 0 的效能和 RAID 1 的多重備份安全。需要 4 顆硬碟,才能選擇這個模式。
raidz1:需要 3 個硬碟,最多可容忍 1 顆硬碟損壞而不會損失資料
raidz2:需要 4 個硬碟,最多可容忍 2 顆硬碟損壞而不會損失資料
raidz3:需要 5 個硬碟,最多可容忍 3 顆硬碟損壞而不會損失資料
效能比較:stripe > raidz1 > raidz2 > raidz3
穩定性:raidz3> raidz2 > raidz1 > stripe
選擇安裝硬碟
因為只有 1 顆硬碟,所以要選【ada0 SanDisk SDSSDXPS240G】,而另一個選項是 USB 的安裝隨身碟。
安裝確認
提醒你按下【YES】鍵之後,硬碟的資料會被清除。
更改管理員密碼
安裝完成後,會跳出這個視窗,建議選擇【Root Password Change root password】,先把管理員的密碼更改成你熟悉的密碼,方便等一下利用網頁登入來設定基本功能。
安裝完成
當按下【Complete Install Exit and reboot】之後,表示整個安裝軟路由軟體的程序都完成了,剩下就是基本設定的部分了。
OPNsense 的基本設定
當安裝軟路由軟體的電腦開機完成後,會看到 LAN IP。以下圖為例就是:192.168.1.1。所以這個時候,任何一台接到軟路由電腦的筆電或桌上型電腦,只要在瀏覽器輸入 192.168.1.1,就可以連線到軟路由電腦來進行登入與設定了。
假使在設定方面有遇到問題的話,可以觀看 Youtube 影片來找出設定錯誤的地方。影片長度不到 3 分鐘,即可完成基本設定的所有流程。
0:14 連線到軟路由軟體電腦
0:35 設定精靈
0:43 設定 DNS Server
0:58 設定軟路由時區
1:09 設定寬頻連線 PPPoE 或 DHCP
1:48 設定LAN IP
2:00 更新管理員密碼
2:10 基本設定完成,重新開機
2:29 大功告成
如何設定 OpenVPN 呢?
要架設 OpenVPN 的步驟:
1、Create Root CA
2、Create VPN Server 所要使用的憑證 ( Server-Cert )
3、Set up OpenVPN Server via Wizard,並添加防火牆規則
4、新增使用者帳號與憑證設定
5、Export OpenVPN 使用者端的設定檔
6、在終端設備安裝 OpenVPN app(手機)或軟體(電腦),並匯入設定檔(*.ovpn)
Create Root CA
進入 Authorities 設定畫面後,點擊右上角的【+Add】來新增 Root CA。
Descriptive name:任意輸入有意義的標題即可
Method:選取 Create an internal Certificate Authority
Internal Certificate Authority
Key Type:RSA
Key length (bits):2048
Digest Algorithm:SHA256
Lifetime (days):3650
Distinguished name
Country Code:TW(Taiwan)
State or Province:Taipei
City:Taipei
Organization:Sales
Email Address:xxx@gmail.com
Common Name:任意輸入有意義的標題即可
按下【Save】離開!
Create VPN Server 所要使用的憑證 ( Server-Cert )
一樣在 System -> Trust 的底下,找到 Certificates 後進入設定畫面,點擊右上角的【+Add】來新增 Certificates 。
Method:選取 Create an internal Certificate Authority
Descriptive name:任意輸入有意義的標題即可
Internal Certificate
Certificate authority:下拉選單中,選取上一節新增的 Root CA
Type:選取 Server Certificate
Key Type:RSA
Key length (bits):2048
Digest Algorithm:SHA256
Lifetime (days):3650
Private key location:保持預設值即可,Save on this firewall
Distinguished name
Country Code:TW(Taiwan)
State or Province:Taipei
City:Taipei
Organization:Sales
Email Address:xxx@gmail.com
Common Name:任意輸入有意義的標題即可
Alternative Names:保持預設值即可
按下【Save】離開!
Set up OpenVPN Server via Wizard,並添加防火牆規則
來到 VPN -> OpenVPN -> Server 的設定頁面,在右上角有一個設定精靈(4)的符號,按下去開始設定。
Step 1:Select an Authentication Backend Type,選取 Local User Access
Step 2:Choose a Certificate Authority (CA),選取上面第 1 節所建立的 Root CA
Step 3:Choose a Server Certificate,選取上面第 2 節所建立的 Server-Cert
Step 4:在這裡大部分的參數保值預設值,只需要更改以下部分:
General OpenVPN Server Information
– Interface: WAN
– Protocol: UDP
– Local Port: 1194(可更改成其它數字)
Cryptographic Settings
Encryption Algorithm: AES-256-CBC (256 bit key, 128 bit block)
Auth Digest Algorithm: SHA256 (256-bit)
Tunnel Settings
IPv4 Tunnel Network: 10.10.0.0/24
IPv4 Local Network: 192.168.1.1/24(目前在 OPNsense 中已經設定好的 LAN IP)
Concurrent Connections: 10 (視需求來決定是否要限制同時連線的數字)
Client Settings
保持預設值即可
Step 5:Firewall Rule Configuration,將【Firewall Rule】與【OpenVPN rule】前面的方塊打勾
Step 6:完成 OpenVPN 的設定
新增使用者帳號與憑證設定
在 System ->Access -> Users 底下,可以看到【+】的符號用來新增使用者帳號。
– Username:輸入新使用者帳號
– Password:輸入新使用者密碼
– Certificate:在【Click to create a user certificate】前面的方塊打勾
按下【Save】後,會進入【此用戶所要使用的憑證 ( User-Cert )】的頁面,設定如下圖。
Distinguished name
Country Code:TW(Taiwan)
State or Province:Taipei
City:Taipei
Organization:Sales
Email Address:xxx@gmail.com
Common Name:任意輸入有意義的標題即可
Alternative Names:保持預設值即可
按下【Save】後,就完成新使用者帳號建立與憑證 ( User-Cert )設定了!
Export OpenVPN 使用者端的設定檔
接著來到 VPN -> OpenVPN -> Client Export 的設定頁面,強烈建議將 Export type 改成【File only】,然後滑到畫面最底部將使用者的 OpenVPN 設定檔匯出就完成了!
在終端設備安裝 OpenVPN app(手機)或軟體(電腦),並匯入設定檔(*.ovpn)
電腦使用者,建議下載 OpenVPN 軟體將 *.ovpn 匯入到程式中,就可以成功連線。
而手機使用者,官方建議使用以下的 App 來進行連線。
– Android:OpenVPN for Android
– OS:OpenVPN Connect
OPNsense 常見問題
軟路由設定那麼複雜,怎麼不考慮買硬體防火牆就好了呢?
原因 1:專業的硬體防火牆價錢貴,都要上萬元。假使入門款(例如:Vigor2926, Vigor2120),限制也很多,無法封鎖某些國家 IP 或封鎖 IP 的數量有限。
原因 2:設定方面也不會輕鬆到哪裡!
對於 WiFi 的支援度好嗎?
有支援 WiFi,但是根據論壇討論區的結論看來,成功的比例真的不高。
新上市的主機板能安裝軟路由軟體嗎?
教學文章都告訴我們,盡量不要安裝在新晶片組的電腦上面,因為驅動程式可能還沒支援新硬體。不過,我曾經在實驗的過程中,將軟路由軟體安裝在這台 AMD 新平台的電腦上面,運作方面是正常的。
軟路由適合一般家庭嗎?
假使想要限制連線到某些網站或國家的話,一般入門款的路由器好像也無法達到這個要求,家庭有青少年的話,還是要考慮排除一些有害的網路內容比較好。
另一點,假使家庭中有在運作的聯外網伺服器、NAS、網站…等,從軟體的日誌(log)中,可以看到需多莫名其妙地連線,這時候軟路由真的就能派上場,直接封鎖 IP。
結論
從 pfSense 跳過來使用這一套軟路由軟體,其實也沒遇到太大問題,幾乎還是沿用 pfSense 的文章與網路分享都可以解決問題。但是,美觀的介面與直覺的名詞,真的比 pfSense 親切多了。再來,針對應用層防火牆的功能, OPNsense 預設就已經內建了 NGFW Firewall(次世代防火牆)了,這一點對新手而言,幾乎是可以直接上手,短時間內就可以提高居家網路安全的防護等級。
假使你還在考慮用哪一套軟路由軟體的話,強烈建議直接衝 OPNsense 吧!