[HAProxy] 搭配 Fail2ban 封鎖惡意請求的 WordPress 網站安全性設定

本篇文章更新時間:2021/01/12
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~


前面文章提到使用 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<HOST>:\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 的本站文章參考:

  1. [Fail2ban] 針對 Nginx 伺服器架構下的 WordPress 資安攻擊防護
  2. [WordPress] 惡意訪客不要來 – IP 封鎖清單
  3. [Fail2ban] 同步封鎖 IP 名單至 Cloudflare 的方法(Nginx 伺服器)

其他參考:

  1. fail2ban regex how to create below mentioned haproxy log #987
  2. haproxy, nginx-naxsi 和 fail2ban 緩解網路攻擊
  3. 設定 Haproxy 以防止 DDOS 攻擊
  4. fail2ban: HTTP 404 error rules for Web frontends (Nginx, HAProxy, HTTP)


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *