Fail2ban

如果日誌文件沒有時間戳,fail2ban 如何檢測入侵嘗試的時間?

  • February 16, 2017

我知道如何使用fail2ban 以及如何配置jail,但我對它的實際工作方式並不滿意。

問題是,有一個特別的監獄選項激起了我的好奇心:findtime.

我在配置過濾器的時候,需要使用HOST關鍵字(匹配IP地址),這樣fail2ban就可以知道要比較的IP,必要時ban掉。好的。

但是時間沒有這樣的東西:fail2ban 無法知道將一行添加到日誌文件的確切時間,因為沒有TIME關鍵字,對吧?實際上,它可以在任何線路上掃描文件而無需任何時間,它仍然可以工作。

我猜這意味著fail2ban正在定期掃描文件:它在內部設置了掃描時間,因此它可以findtime通過比較自己的掃描日期來處理選項。

首先,我說的對嗎?如果是這樣,掃描頻率是多少?如果有很多大日誌文件需要經常掃描,這不是瓶頸嗎?

那麼,如果掃描頻率優於findtime選項會發生什麼?這是否意味著 fail2ban 適應findtime它發現的最小選項來設置其最小掃描頻率?

首先關。這(也許)不是答案,但也許比評論更好(而且有點長)。

時間戳

找到你的陳述:

實際上,它可以在任何線路上掃描文件而無需任何時間,它仍然可以工作。

與文件衝突。你說的工作是什麼意思?

手冊#filters (v 0.8) 狀態

如果您正在創建自己的 failregex 表達式,您應該知道以下幾點:

  • $$ … $$
  • 為了使日誌行匹配您的 failregex,它實際上必須匹配兩部分:行的開頭必須匹配時間戳模式或 regex,並且行的其餘部分必須匹配您的 failregex。如果失敗正則表達式使用前導 ^ 錨定,則錨點指的是行剩餘部分的開始,在時間戳和中間空格之後。
  • 與時間戳匹配的模式或正則表達式目前沒有記錄,使用者無法讀取或設置。請參閱Debian 錯誤 #491253。如果您的日誌具有 fail2ban 不期望的時間戳格式,則這是一個問題,因為它將無法匹配任何行。因此,您應該針對範例日誌行測試任何新的失敗正則表達式,如下例所示,以確保它匹配。如果 fail2ban 無法辨識您的日誌時間戳,那麼您有兩個選擇:或者重新配置您的守護程序以使用更常見格式的時間戳進行日誌記錄,例如上面的範例日誌行;或送出錯誤報告,要求包含您的時間戳格式。

請注意,日誌文件可以配置為包含時間戳以及時間戳的格式。(包括評論中提到的dmesg 。)

另請參閱此執行緒,特別是消息 #14 和 #19:

兩個例子:

請注意,您還可以使用以下命令進行測試:

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

1 無時間戳:

$ fail2ban-regex ' [1.2.3.4] authentication failed' '\[<HOST>\] authentication failed'

Running tests
=============

Use   failregex line : \[<HOST>\] authentication failed
Use      single line :  [1.2.3.4] authentication failed


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:

Lines: 1 lines, 0 ignored, 0 matched, 1 missed
|- Missed line(s):
|   [1.2.3.4] authentication failed
`-

2 帶時間戳:

$ fail2ban-regex 'Jul 18 12:13:01 [1.2.3.4] authentication failed' '\[<HOST>\] authentication failed'

Running tests
=============

Use   failregex line : \[<HOST>\] authentication failed
Use      single line : Jul 18 12:13:01 [1.2.3.4] authentication failed


Results
=======

Failregex: 1 total
|-  #) [# of hits] regular expression
|   1) [1] \[<HOST>\] authentication failed
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [1] MONTH Day Hour:Minute:Second
`-

Lines: 1 lines, 0 ignored, 1 matched, 0 missed

掃描次數

手動#反應時間

評估反應時間是相當困難的。Fail2ban在檢查要掃描的新日誌之前等待***1 秒。***在大多數情況下,這應該沒問題。但是,登錄失敗次數可能超過 maxretry 指定的次數。

在這方面,還請參閱此執行緒:Re: Bug#481265: fail2ban: Poll interval is not configured

但是在可選但推薦的軟體下,可以找到 Gamin。

Gamin 是一個文件更改監視器。Gamin 極大地受益於啟用“inotify”的核心。因此,不再需要主動輪詢來獲取文件修改。

如果安裝了 Gamin 並且backendinjail.conf設置為auto(或gamin) - 將使用 Gamin。

引用自:https://unix.stackexchange.com/questions/179477