封鎖政策
Fail2ban 會根據日誌是否符合篩選條件來封鎖 IP,但不同 Jail 的判斷方式並不相同。
SSH、郵件等服務通常統計一段期間內的符合次數;某些 HTTP 掃描特徵只要符合一次就會永久封鎖。解讀 API 資料時,必須分清楚這兩種情況。
目前設定
以下是 2026 年 11 月 1 日確認的收集來源設定,並非所有伺服器都適合直接套用的建議值。收集來源標籤為 freebsd 與 oci。兩者各使用 15 個 Jail:6 個用於傳統服務,9 個用於掃描器防護。
兩種評估方式
| 方式 | 範圍 | 封鎖條件 |
|---|---|---|
| 重複偵測 | SSH、郵件認證、HTTP、累犯 | 在設定的偵測期間內符合的次數 |
| 單次偵測 | 設定的 HTTP 掃描器特徵 | 單次符合即永久封鎖 |
此處的「符合」是指日誌行符合某個 Jail 的篩選條件。彙總與排除設定可能使其與單純的請求次數不同。
掃描器共用設定
maxretry = 1
findtime = 10m
bantime = -1
bantime.increment = false這 9 個設定的 Jail 在單次符合時即永久封鎖。bantime = -1 表示不會自動到期。10 分鐘的偵測期間並不代表封鎖持續的時間。
封鎖範圍涵蓋 TCP 與 UDP 的 80、443 埠上的 HTTP/HTTPS。freebsd 以 PF 套用,oci 以 nftables 套用。偵測與防火牆執行在各來源的 Fail2ban 中;本公開 API 不發布封鎖指令。
為什麼不該直接照搬這些規則
在會正常使用管理介面、WebDAV、WordPress、PHP 或延伸 HTTP 方法的服務上,相同的請求可能是正常行為。此處列出的條件是收集來源的運作標準,並非可直接套用至任何網站的建議設定。
管理用的排除網路、端點、憑證與內部日誌內容不會公開。公開說明與各伺服器上管理的完整設定會分開保存。