2023年6月28日 星期三

[套件分享] 開源軟體防火牆與路由器:OPNsense

  



過去很長一段時間,因為找不到足夠防護功能的開源防火牆,所以都是直接採購商用硬體式產品。直到今年,終於等到適合的開源軟體方案。

我已將公司對外防火牆更換成 OPNsense 這套開源的軟體防火牆/路由器,安裝在一台上個月買入的二手工業級無風扇小主機上運作 (型號 ARK-1124U),用起來相當痛快,而且再一次節省大量經費支出。如果是需要更高階一點的設備,我則是選用防火牆網通設備廠的機架式設備 (型號 CAD-0263),在文末參考連結有硬體廠商資訊。

本文整理實際上線的心得,提供參考。




實際使用

比 pfSense 更簡單的操作畫面,容易擴充的機制搭配各種外掛,以及現代流行的深色主題,用起來感覺充滿高科技味道 😂

資訊看板





安裝好 ntopng 外掛程式後,就可以在即時更新的流量圖上快速檢視目前網路裝置用量較多者,以及其連線的目標;還能檢視各個裝置的資訊探測、連線目標、連接埠等等重要網路行為資訊。圖中所示可以清楚看見,有 5 個節點正跟 Proxmox 官方位於新加坡的 CDN 伺服器連線,進行 Proxmox VE 版本升級作業中。

ntopng 即時流量圖、裝置探索與連線行為分析





接著安裝 Maltrail 外掛程式,內建許多自動更新的資料庫,從 OPNsense 的流量中識別惡意行為,同時將這些惡意 IP 自動整合進 OPNsense 防火牆的阻擋清單裡,阻絕惡意連線發生。除此之外,它也提供一個方便檢視、搜尋與篩選的使用介面,協助追查惡意連線行為的細節。圖中的很多欄位都提供游標懸停時,顯示更多資訊的功能,例如在 IP 欄位會自動查詢相關惡意 IP 行為的資料庫來源、參考資訊網址等等。

maltrail 流量分析惡意行為,並結合阻擋來源與目標連線





繼續強化,安裝 Suricata 這套強大的 IDS/IPS 外掛程式後,藉由其所提供的豐富規則資料庫,即時識別封包的行為、應用程式、使用服務等等,讓管理者容易統計約分析網路使用狀況,更可進一步啟用阻擋機制,將具有惡意的封包阻斷,例如各種已知 CVE 漏洞的掃描探測,或是來自惡意網路主機的攻擊。圖中即是準備對社群網站進行控管規則的調整。

suricata 識別及防護封包行為,提供豐富且自動更新的規則資料庫





在防火牆當中的 aliases 功能,可以設定多種資料類型與來源,除了本身已經整合好的地理 GeoIP 資訊來源,也可以自行將指定網址下的 IP 清單、本機下的 IP 清單檔案排程自動同步回來,再搭配防火牆的 Rule 規則功能,直接協助我們將惡意來源擋在外面,不放行入內網。

aliases 功能可直接整合多種惡意情資來源多方攔阻,並可排程更新






OpenVPN 是應用普遍且功能強大的虛擬私人網路開源套件,OPNsense 將 OpenVPN 整合進來,並且為它提供了相當容易設定的管理介面,讓我們可以用快速的方式將 VPN 伺服器建立完成。加上 OPNsense 本身已經支援 AD/LDAP 與 TOTP 認證,我們即可打造具有雙因素認證的安全加密連線通道。

註:OpenVPN 我是另外建置在 Proxmox VE 虛擬機裡的 OPNsense,沒有裝在出口防火牆這台 OPNsense 上。

OpenVPN 建立安全加密連線通道,並搭配 AD/LDAP 與 TOTP 認證






Unbound 可以做為域名伺服器使用,在 OPNsense 整合後的應用,還可以化身為 DNS 連線防護機制。在 OPNsense 的管理介面中,已經內建取多會自動更新的 DNS 惡意 FQDN 清單,只要簡單勾選後即可讓 Unbound 將這些具有惡意風險存在的域名給封鎖,避免內部裝置連到惡意網站後慘遭值入或控制。

Unbound 提供 DNS 連線防護,搭配多源惡意阻擋清單保護使用者






最後,我們設定 OPNsense 將記錄傳送至 Graylog 伺服器,即可利用 Graylog 強大的索引、擷取器、管線、看板等功能,打造出綜觀全貌的看板,並兼具快速篩選狀況、統計排行數據、追查事件原因等等,除了方便又能符規,更可以避免查詢大量資料時對防火牆效能的影響。此圖顯示事件數量、介面、協定、動作、應用程式、DHCP 等等概觀。

OPNsense 搭配 Graylog 應用 1





這張圖呈現出外部來源 IP 連線的統計,尤其以國家來源分別看出擋掉的國家排行榜,再利用 Graylog 的 Lookup Table 功能由 IP 反解出 FQDN,便於快速識別來源 IP 的相關資訊。

OPNsense 搭配 Graylog 應用 2





將 Suricata 所收集的記錄拉出對應小工具呈現數據,可以統計網路連線相關的行為、應用服務等狀況。例如圖中右方的優先級1行為監視,就看到有外部 IP 正在以 Zimbra 的已知 CVE 漏洞對我方的 Zimbra Server 發動攻擊,儘管我的 Zimbra 早已修補掉該漏洞,此攻擊仍然在到達 Zimbra 之前就已經被 Suricata 攔截處理。

OPNsense 搭配 Graylog 應用 3





將 Suricata 所攔下的所有行為以看板呈現,包括各種行為的統計、來源 IP、來源 FQDN、來源國家等等,協助管理者掌握近期的防火牆防護狀況。在 Graylog 這邊,其實還可以將這些 Log 資料利用起來,再做出告警或自己撰寫 API 與其它資安設備做聯防的強化機制。

OPNsense 搭配 Graylog 應用 4






最後一張圖,除了以 LibreNMS 監測 OPNsense 的效能、服務運作狀況外,啟用 LibreNMS 整合 Oxidized 組態備份的能力,自動備份 OPNsense 的組態設定內容,避免那天系統故障或設定搞爛時,隨時可以倒回正確組態,儘快恢復上線運作。

LibreNMS 自動化監測 OPNsense 與備份組態設定














更多功能

OPNsense 還有很多強大的能力,沒有在這次的上線作業開通。例如可以安裝 Nginx 搭配 NAXSI 建立 WAF 網頁應用程式防火牆。

除了 Suricata 與 Maltrail 之外,OPNsense 還有一個更強悍的防火牆外掛 Zenarmor,有興趣的朋友可以參考看看。

以下將 OPNsense 相關功能與實用外掛列為清單,提供參考:
  • 防火牆 (Firewall)
  • 負載平衡 (Load Balancing)
  • 路由協定 (Routing Protocol)
  • 高可用 (High Availability)
  • 虛擬私人網路 (VPN)
  • 軟體定義網路 (SD-WAN)
  • 入侵偵測與入侵防護系統 (IDS/IPS)
  • 雙因素認證 (2FA)
  • 網頁篩選 (Web Filtering)
  • 韌體升級 (Firmware Update)
  • 外掛程式 (Plugin)

    效能監測、域名伺服器、暴力攻擊防禦、流量監測、網頁認證機制、反向代理伺服器、網頁應用程式防火牆、防毒引擎、垃圾郵件篩選、商業防火牆與規則...







參考資料