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
前往信箱檢查信件,假使有一封【noreply@snort.org】的信件,請打開並按下【Confirm my account】。接著登入Snort帳戶後,在左手邊點一下【Oinkcode】,然後把右手邊的序號複製下來,等一下需要輸入到外掛程式中。
安裝IDS/IPS入侵偵測系統外掛 – Snort
前往System > Package Manager > Available Packages底下,在搜尋欄位輸入Snort,按下Search。
接著在下方【Packages】頁面中,找到Snort的外掛程式後,按下【+Install】開始安裝。
完成後,可以在【Installed Packages】頁面中,看到Snort已安裝完成的畫面。
Snort – Global Settings
在【Snort Subscriber Rules】底下,把剛剛申請的Oinkcode貼到【Snort Oinkmaster Code】欄位中。
將【Enable Snort GPLv2】與【Enable ET Open】的方塊打勾。
將【Enable OpenAppID】、【Enable AppID Open Text Rules】與【Enable FEODO Tracker Botnet C2 IP 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】離開設定頁面。
Snort – Updates
前往Service > Snort > Updates,在Update Your Rule Set底下有一個【Update Rules】按鍵,首次設定時需要手動更新,執行更新後,可以看到下圖2號方塊內的資訊。
Snort – Interfaces
按下【Add】將WAN介面新增到Snort外掛當中。
General Settings
– Enable:打勾
– Interface:通常會指定WAN
– Description:任意
– Send Alerts to System Log:打勾
– 其餘保持預設值
– Block Offenders:打勾,當Snort偵測到惡意封包時,會將來源封鎖
– IPS Mode:Legacy mode,自動封鎖來源,不需要在Alert頁面中手動封鎖
– Kill Stats:打勾
– Search Optimize:打勾
– 其餘保持預設值
最後按下【Save】離開設定頁面。
Snort – IPS Policy
在WAN Categories底下,將【Resolve Flowbits】打勾,並且在【Snort Subscriber IPS Policy Selection】底下,選擇適合自己的IPS Policy。
在【Select the rulesets (Categories) Snort will load at startup】底下,選擇要啟動的規則。可以優先將Emerging Threats(ET)的規則集全部啟動,外來視情況再來調整。
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】離開設定頁面。
啟動IDS/IPS入侵偵測系統外掛 – Snort
最後,在Snort Interface底下,可以看到Snort Status有一個藍色三角形的符號,將它按下去就能啟動Snort外掛了,一切正常的話,就會像下圖依樣會出現綠色勾勾的符號。
常見問題
為何不使用 OPNsense 內建的 IDS / IPS 功能呢?
如何驗證 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 外掛,好像也沒有繁瑣到哪裡!