fail2ban 區分相同 ip 的結果

fail2ban 區分相同 ip 的結果

我需要實作fail2ban 來保護伺服器。我想掃描日誌並禁止產生大量 404 訊息的主機。

我遇到的問題是,某個 NAT IP 後面可能有許多客戶端,我需要區分它們。每個客戶端都請求不同的 URL,格式如下:

https://server.example.com/path/<uniqueid>/<mac_address>

我想運行fail2ban,以便它考慮正規表示式中的唯一ID,而不是僅僅查看每個IP 的404 錯誤數量。

我開發了以下正則表達式,它似乎捕獲了所需的事件:

(?P<host>(\d{1,3}.){4})\ -\ -\ \[\d{1,2}\/\w+\/\d{4}[\:\d{2}]+\ \+\d{4}\] "GET \/path\/(?P<unique_id>.+)\/.+HTTP\/\d.\d" ".+" ".+" 404.+

這應該可以匹配:

1.1.1.11 - - [29/Aug/2018:01:27:45 +0100] "GET /path/3B44444444483/ddddee37D4.cfg HTTP/1.1" "somestring" "otherstring" 404 - 2005 5 0.117

這應該匹配,但被視為與上面不同的實例:

1.1.1.11 - - [29/Aug/2018:01:27:45 +0100] "GET /path/3B46666444483/ddddee37D4.cfg HTTP/1.1" "somestring" "otherstring" 404 - 2005 5 0.117

答案1

使用此配置,您的伺服器在日誌中尋找 404 回應會消耗更多的 CPU,而不是不為 X IP 提供 404 回應的任何安全優勢或 CPU 優勢。

如果您不喜歡看到這些回應,請不要為它們建立日誌條目。

相關內容