大家好,
我在 QNAP(QTS)和 Nginx Proxy Manager(NPM)之間遇到了一個設定問題,導致我的 Fail2ban(或 QTS 存取保護)無法有效防禦暴力破解攻擊。
我的設定如下:
QNAP(QTS):本地 IP 192.168.10.10(我已將其更改為標準 RFC1918 IP 位址,您也可以使用自己的)
Nginx Proxy Manager:本地 IP 192.168.10.6(在 Docker 容器或獨立 VM 上)
目標:通過網域名稱(例如 myqnap.domain.com)使用 NPM 進行 SSL 與反向代理來存取 QTS。
問題描述:
存取功能運作正常。我的網域名稱指向路由器,路由器將 80/443 埠轉發給 Nginx Proxy Manager(100.6),然後 NPM 再將流量轉發到我的 QNAP(100.10)。
問題在於 QTS 看不到訪客的真實來源 IP(公開 IP)。
當連線嘗試失敗(暴力破解攻擊)時,QTS 安全日誌顯示嘗試來自 IP 100.6(我的 Nginx Proxy Manager 的 IP)。
後果:如果我在 QNAP 上啟用 IP 存取保護或 Fail2ban,讓其在多次失敗後封鎖 IP,結果會封鎖掉我的 Nginx Proxy Manager(100.6)。
結果:
攻擊者永遠不會被封鎖。
我自己的代理被封鎖,導致所有合法使用者都無法存取 QTS。
我的問題是:如何設定 Nginx Proxy Manager 正確轉發來源 IP 位址(透過 X-Forwarded-For 或 X-Real-IP 標頭),以及如何設定 QTS 讀取並信任這個標頭?
我已經查看過 NPM 的選項(已勾選「Forward Client-IP」和「Forward Hostname」),但 QTS 似乎仍然只看到代理的 IP 位址。我是否需要在 Nginx(NPM 的「進階」標籤)中新增自訂設定,或者 QTS 是否有隱藏的設定可以「信任」代理?
非常感謝大家的協助!