fail2ban 惡意樣式 網路監控 Log

fail2ban主機型入侵偵測 即時防護網路服務

2015-05-13
fail2ban提供多種網路服務的惡意樣式,當所監控的Log檔案內出現了預先定義的惡意樣式,就立即執行預先設定過的動作,以達到自動發現惡意行為並自動處理的功能。

jail.conf

jail.conf是用來設定個別網路服務所使用的組態檔,可以設定什麼網路服務將使用何種惡意樣式,而在發現惡意的行為時,又要採取什麼樣的動作等相關資訊。

就如同fail2ban.conf,jail.conf的結構如下所述,其相關組態說明如表2所示。


表2 jail.conf相關組態

開始實作

本文將利用部署fail2ban軟體來偵測是否有惡意的來源IP正在對系統進行SSH的暴力攻擊,一旦發現有惡意的來源IP正在進行SSH的暴力攻擊,就自動呼叫iptables(防火牆軟體,Linux系統通常都會預設安裝)來封鎖該惡意來源IP,預定自動封鎖該IP十?分鐘之久。

首先,設定fail2ban.conf,如圖1所示。


▲圖1 設定fail2ban.conf。

圖1中的「loglevel = 4」表示記錄最詳盡的資訊,並將相關資訊記錄在fail2ban.log,它是由logtarget所設定,如果有偵測到惡意的攻擊,也會將相關資訊記錄在此檔案內。

接下來,繼續設定jail.conf,如圖2所示。


▲圖2 設定jail.conf。

圖2中設定的意思為,在10分鐘的時間區間內(由findtime組態所設定),如果同一個來源IP符合所設定的惡意樣式次數達3次以上(由maxretry組態所設定),就視為惡意來源IP,並自動呼叫iptables封鎖惡意來源IP連線(封鎖時間為10分鐘,由bantime組態設定)。

其中要特別提醒的是,各種Linux版本儲存SSH登入資訊的Log檔案都不一樣,而本文使用的是Fedora系統,相關的SSH登入資訊會儲存在「/var/log/secure」檔案內,所以logpath組態設定為「/var/log/secure」。

設定完成後,執行指令「fail2ban-client start」即可啟動fail2ban軟體。

啟動成功後,基本上可利用SSH登入測試(故意輸入3次錯誤的密碼),如果一切正常,在「/var/log/fail2ban.log」檔案內就會發現如圖3的資訊。

圖3是筆者將系統實際上線測試的結果,圖中被偵測到的惡意來源IP總共嘗試了110次要登入系統,有些人也許會問,不是3次錯誤就被封鎖,為什麼會允許嘗試110次,這是因為本文所設定的是僅暫時封鎖10分鐘。10分鐘後就會自動解鎖,所以會不斷地嘗試登入(這通常是由程式來實作)。


▲圖3 「/var/log/fail2ban.log」檔案內所出現的訊息。

如果將maxretry組態設為「-1」,就會將該惡意來源IP永久封鎖,換句話說,當該惡意來源IP嘗試3次之後就永遠被封鎖。

結語

在本文中,筆者僅針對SSH的暴力攻擊進行偵測及處理,而事實上,fail2ban可針對各種不同類型的網路服務(如DNS、Web)進行偵測與處理,所以後續可視本身系統的情況來開啟適當的偵測組態,以達到防護網路服務的功能。

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!