本篇文章更新時間:2021/01/12
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
前面文章提到使用 HAProxy 處理高負載網站 [HAProxy] 建立 WordPress 負載平衡 Load balancing 架構筆記,這套服務會將請求轉發給後面的主機來處理請求,安全性部分要顧慮的也會更多。
續前篇,把原本伺服器架構拆成兩台,而後面這兩台拿到請求的 IP 沒解析過的話又只會拿到 HAProxy 主機的 IP,在 WAF 軟體防火牆服務上的阻擋不完全。(取得實際請求IP方法參考上篇引用)
這時候還可以在 HAProxy 那台搭配 Fail2ban 這套老牌防火牆工具使用!使用方式一樣,判斷 HAPorxy 轉發請求的服務路徑與 HTTP 方法,把惡意的請求給在這關就先阻擋起來。
建立規則
檔案路徑: /etc/fail2ban/filter.d/haproxy-fail.conf
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = haproxy
blockcode = (?:404|500|503|403|410)
failregex = ^%(__prefix_line)s:\S+ \[[^\]]+\] \S+ \S+ \d+/\d+/\d+/\d+/\d* %(blockcode)s [^"]* "POST+ .* HTTP/[^"]+"$
enabled = true
啟用規則
啟用列表: /etc/fail2ban/jail.local
[haproxy-fail]
enabled = true
port = http,https
filter = haproxy-fail
logpath = /var/log/haproxy.log
maxretry = 10
bantime = 300
findtime = 300
完成後 fail2ban-client reload
重新載入設定即可!
後記
這個操作順著前篇用 apt
套件安裝的 HAProxy,預設 log 路徑在 /var/log/haproxy.log
。
然後就是不要在轉發的伺服器上面啟用,或者原本有啟用的要關閉。避免 Fail2ban 把 HAProxy 這台機器給封鎖了,導致網站無法分流。
這些工具能做的有限,還是要自己主動的更新網站,讓網站軟體面掌控度越高,不然多數被駭的情境,都跟這些主機等基礎架構無關了。
其他跟 Fail2ban 與 WordPress 的本站文章參考:
- [Fail2ban] 針對 Nginx 伺服器架構下的 WordPress 資安攻擊防護
- [WordPress] 惡意訪客不要來 – IP 封鎖清單
- [Fail2ban] 同步封鎖 IP 名單至 Cloudflare 的方法(Nginx 伺服器)
其他參考:
- fail2ban regex how to create below mentioned haproxy log #987
- haproxy, nginx-naxsi 和 fail2ban 緩解網路攻擊
- 設定 Haproxy 以防止 DDOS 攻擊
- fail2ban: HTTP 404 error rules for Web frontends (Nginx, HAProxy, HTTP)