入侵偵測系統安裝實例分享 – Snort 3(IDS/IPS) on pfSense

Firewall(防火牆)、Intrusion Detection System (IDS,入侵偵測系統)、Intrusion Prevention System (IPS,入侵防禦系統)三者的差異在於:【Firewall – 防火牆】只會對進出的封包做審核;【Intrusion Detection System – 入侵偵測系統】屬於被動式防護機制,只會紀錄惡意封包的攻擊行為;而【Intrusion Prevention System – 入侵防禦系統】屬於主動式防護機制,不僅會紀錄惡意封包的攻擊行為,還會將惡意封包丟棄。

pfSense與OPNsense在IDS/IPS上使用不同的軟體,前者需要安裝外掛才能使用Snort,後者則是內建IDS功能預設使用Suricata。以普遍性來看,Snort似乎在網路上的討論度高於Suricata,所以有較多的文章可以參考。所以,在pfSense安裝Snort,成功啟動IDS/IPS一點都不難。接著就往下看安裝實例的圖文分享~

申請Snort帳號

申請Snort帳號網址:https://www.snort.org/users/sign_up

02_入侵偵測系統安裝實例 - step 1 apply Snort account
申請Snort帳號

前往信箱檢查信件,假使有一封【noreply@snort.org】的信件,請打開並按下【Confirm my account】。接著登入Snort帳戶後,在左手邊點一下【Oinkcode】,然後把右手邊的序號複製下來,等一下需要輸入到外掛程式中。

03_入侵偵測系統安裝實例 - step 2 copy Oinkcode
Oinkcode

安裝IDS/IPS入侵偵測系統外掛 – Snort

前往System > Package Manager > Available Packages底下,在搜尋欄位輸入Snort,按下Search。
接著在下方【Packages】頁面中,找到Snort的外掛程式後,按下【+Install】開始安裝。

04_入侵偵測系統安裝實例 - step 3 install snort plugin in pfsense
安裝Snort外掛程式

完成後,可以在【Installed Packages】頁面中,看到Snort已安裝完成的畫面。

05_入侵偵測系統安裝實例 - step 4 confirmed snort plugin installed in pfsense
確認Snort安裝成功

Snort – Global Settings

在【Snort Subscriber Rules】底下,把剛剛申請的Oinkcode貼到【Snort Oinkmaster Code】欄位中。

06_入侵偵測系統安裝實例 - step 5 snort general setting
輸入Oinkcode

將【Enable Snort GPLv2】與【Enable ET Open】的方塊打勾。

07_入侵偵測系統安裝實例 - step 6 enable rule
Enable rules

將【Enable OpenAppID】、【Enable AppID Open Text Rules】與【Enable FEODO Tracker Botnet C2 IP Rules】的方塊打勾。

08_入侵偵測系統安裝實例 - step 7 enable rules
Enable rules

Rules Update Settings:
– Update Interval:每日更新一次
– Update Start Time:半夜2點進行更新
General Settings:
– Remove Blocked Hosts Interval:將違反規格的來源封鎖1小時
– Remove Blocked Hosts After Deinstall:取消
– Keep Snort Settings After Deinstall:打勾

最後按下【Save】離開設定頁面。

09_入侵偵測系統安裝實例 - step 8 rule update schedule
更新週期與封鎖設定

Snort – Updates

前往Service > Snort > Updates,在Update Your Rule Set底下有一個【Update Rules】按鍵,首次設定時需要手動更新,執行更新後,可以看到下圖2號方塊內的資訊。

10_入侵偵測系統安裝實例 - step 9 manual update rules
首次需要手動更新規則

Snort – Interfaces

按下【Add】將WAN介面新增到Snort外掛當中。

11_入侵偵測系統安裝實例 - step 10 set up interface
新增介面

General Settings
– Enable:打勾
– Interface:通常會指定WAN
– Description:任意

12_入侵偵測系統安裝實例 - step 11 WAN setting
Enable Interface – WAN

Send Alerts to System Log:打勾
– 其餘保持預設值

13_Pfsense snort step 12 alert setting
Alert Settings

– Block Offenders:打勾,當Snort偵測到惡意封包時,會將來源封鎖
– IPS Mode:Legacy mode,自動封鎖來源,不需要在Alert頁面中手動封鎖
– Kill Stats:打勾
– Search Optimize:打勾
– 其餘保持預設值

最後按下【Save】離開設定頁面。

14_Pfsense snort step 13 Block Settings
啟動IPS模式

Snort – IPS Policy

在WAN Categories底下,將【Resolve Flowbits】打勾,並且在【Snort Subscriber IPS Policy Selection】底下,選擇適合自己的IPS Policy。

15_Pfsense snort step 14 IPS policy settings
IPS Policy

在【Select the rulesets (Categories) Snort will load at startup】底下,選擇要啟動的規則。可以優先將Emerging Threats(ET)的規則集全部啟動,外來視情況再來調整。

16_Pfsense snort step 15 IPS ruleset
啟動規則集

Snort – Preprocs

在這個頁面,只需要更改以下的設定即可,其餘保持預設值。

Preprocessors Basic Configuration Settings
– Enable Performance Stats:打勾
– Auto Rule Disable:打勾

Application ID Detection
– Enable:打勾。(Use OpenAppID to detect various applications. Default is Not Checked.)

最後按下【Save】離開設定頁面。

17_Pfsense snort step 16 WAN Pre-processor Configuration
WAN Preprocs Configuration

啟動IDS/IPS入侵偵測系統外掛 – Snort

最後,在Snort Interface底下,可以看到Snort Status有一個藍色三角形的符號,將它按下去就能啟動Snort外掛了,一切正常的話,就會像下圖依樣會出現綠色勾勾的符號。

18_Pfsense snort step 17 start snort on WAN interface
啟動IDS/IPS入侵偵測系統外掛 – Snort

常見問題

為何不使用 OPNsense 內建的 IDS / IPS 功能呢?

雖然 OPNsense 有內建的 IDS / IPS 功能,但是在實際使用方面,似乎出現一些無法解決的狀況。例如:始終無法在 Alert 的頁面中看到任何惡意封包的訊息。所以,才改用 pfsense 搭配 Snort 外掛程式,來實現入侵偵測/入侵防禦系統的目的。

如何驗證 Snort 有正常運作呢?

範例網站:Top 100 virus-infected websites exposed(https://www.smh.com.au/technology/top-100-virusinfected-websites-exposed-20090820-erc8.html),提供了許多惡意網址,例如:
* 17ebook.co
* aladel.net
* bpwhamburgorchardpark.org
* clicnews.com
* dfwdiesel.net
* …
可以將網址複製後,貼在瀏覽器開啟。然後回到 pfSense 的 Service > Snort > Alerts 檢查,剛剛連線的網址是否有偵測到。

可以將 Snort 指定在 LAN interface 嗎?

可以。
但是,通常 Intrusion Detection System / Intrusion Prevention System 主要是運作在對外的 WAN interface。

安裝IDS/IPS入侵偵測系統困難嗎?

不論是 OPNsense 或 pfSense 都實際操作過防火牆 / IDS / IPS 的安裝與運作,不過以 IDS / IPS 而言, OPNsense 可算是無腦安裝,因為軟路由裝好後, IDS / IPS 的功能就等你來開啟。不過,pfSense 的 Snort 雖然在安裝設定方面較為繁瑣,但是它卻能提供較為可靠的資訊,讓你能判斷 IDS / IPS 的運作狀況。而且,以上面的圖文範例來看,其實完整安裝 Snort 外掛,好像也沒有繁瑣到哪裡!