Fail2ban
如何為fail2ban中的特定IP添加監獄?
我想添加一個特定的 IP 列表,在他們發出幾個“GET”請求後,我想從 Fail2ban 收到一封電子郵件。
在 apache 的訪問日誌中尋找的模式是 ^1.2.3.4 - .*$ 但是 fail2ban-regex 失敗(我不能怪它)說:
無法刪除正則表達式。索引 0 無效 ^1.2.3.4 中沒有“主機”組 - .*$
無論如何我可以在自定義過濾器/監獄中設置“HOST”變數嗎?
正則表達式需要對 IP 地址進行(括號)分組,因此fail2ban 知道要禁止的 IP:
在 failregex 的每一行中,與主機名或 IP 地址匹配的部分必須包裹在
(?P<host> ... )
三明治中。這是一個特定於 Python 的正則表達式擴展,它將匹配的內容分配給 name<host>
。<host>
標籤是您告訴fail2ban 哪個主機正在連接的方式,因此它必須存在於failregex 的每一行中。如果不是,fail2ban 將發出一條關於“No ‘host’ group”的錯誤消息。在您的情況下,您的正則表達式應該是
^(?P<host>1.2.3.4) - .*$