簡體   English   中英

如何使用Rancher負載均衡器(HAProxy)設置fail2ban

[英]How to setup fail2ban with Rancher Load Balancer (HAProxy)

我想在我的Rancher代理上設置fail2ban。

我有一個Cattle環境,運行一個托管網絡,其中每個Rancher代理都運行一個HAProxy,用作網絡服務器+負載平衡器。

我想基於來自HTTP和HTTPs端口的不同條件(登錄失敗太多,請求太多等)禁止用戶。

目前,我在正則表達式中使用了帶有正則表達式的 fail2ban 設置,但在fail2ban中卻不禁止任何IP。

fail2ban-client status <my-jail>表示該監獄已啟動,但即使我執行不正確的請求也有0禁止。

在調試模式下運行fail2ban並調查IP表之后,我發現了問題。

發生此問題是由於3個原因:

1)HAProxy正在使用服務器時間(UTC)運行docker映像,並且您的服務器可能位於不同的時區。

2)HAProxy在Cattle托管網絡的docker容器中運行,這意味着傳入的數據包是Forward數據包,而不是 iptables的Input數據包

3)Cattle處理轉發的方式有點難看 ,因此不允許自定義fail2ban規則


在我的情況下,由於HAProxy在具有不同時區的docker映像中,fail2ban忽略了禁令嘗試,因為時間縮短了幾個小時。 更改服務器時間可以解決第一個問題。

現在,我可以看到使用以下命令時確實禁止使用IP:

fail2ban-client status <my-jail>

但是問題仍然存在,即使我看到正確的IP被禁止,我仍然可以完全正常地訪問服務器。

這是因為Rancher設置iptables的方式。 要解決此問題,我將我的/etc/fail2ban/jail.local從以下位置更改:

[DEFAULT]
...
chain = INPUT
...

至:

[DEFAULT]
...
chain = CATTLE_FORWARD
...

現在,由於時區匹配,因此正確禁止了用戶,然后將其放入轉發鏈中的監獄,因此刪除了被禁止用戶的請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM