Debian Buster 上的 Fail2ban - 正確的配置方式?
Fail2ban 可以在很多地方進行配置。
$ fail2ban-client -i Fail2Ban v0.10.2 reads log file that contains password failure report and bans the corresponding IP addresses using firewall rules.
在 Debian Buster 上,我可以在幾個配置文件中編輯我的設置:
/etc/fail2ban/jail.d/defaults-debian.conf /etc/fail2ban/fail2ban.conf /etc/fail2ban/jail.conf /etc/fail2ban/action.d/
而且 - 最後但並非最不重要 - 一些教程推薦:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
fail2ban的文件說:
修改應在 .local 而不是 .conf 中進行。這避免了升級時的合併問題。這些文件有據可查,那裡應該有詳細的資訊。
這是否意味著,我要編輯的每個 .conf 文件都應該作為 .local 文件存在?
我很困惑!有人可以對此有所了解嗎?
您只需要編輯一個文件。
為避免在系統升級過程中出現問題,您應該始終只複製
jail.conf
和jail.local
修改後者。所有其他的 fail2ban 配置文件都是一樣的。cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
然後編輯此文件並向下滾動到您要使用的過濾器。
在這些過濾器中,添加
enabled = true
. 我建議不要在開始時啟用太多過濾器。一兩個就夠了。如果您通過 SSH 連接,請小心使用 SSH 過濾器。你可能會把自己鎖在外面。過濾器
查看
filter.d
目錄以查看所有可用的過濾器。選擇一兩個合適的。請務必了解他們的正則表達式匹配的內容以及您需要的日誌文件。Fail2ban 適用於日誌文件。因此過濾器必須匹配適當的日誌文件。你可以用
fail2ban-regex <logfile> <filter>
例如
fail2ban-regex /var/log/nginx/default_access.log /etc/fail2ban/filter.d/nginx-botsearch.conf
例如,此過濾器
404
會在您的 NGINX 中查找錯誤access.log
並在條件匹配時阻止它們。有關條件,請參見下文。完成編輯後重啟fail2ban:
systemctl restart fail2ban
文件中的其他設置
jail.local
:所有設置都可以全域化,也可以特定於過濾器。
bantime = 7200 findtime = 10m maxretry = 10
意味著 10 分鐘內出現 10 個錯誤將導致 2 小時禁令。
如果你不想使用 iptables 來禁止,你可以改變你的
banaction
. 預設禁令使用 iptables,它應該適用於我知道的所有系統,但您可能在熟悉的防火牆界面中看不到禁令。banaction = ufw
請參閱 中的操作
action.d
。使用此設置,fail2ban 將使用 ufw 阻止 IP。然後你可以通過 看到禁令ufw status
。特別是對於 SSH,請務必將您的本地 IP 範圍排除在禁止之外,這樣您就無法禁止自己:
ignoreip = 127.0.0.1/8 ::1 192.168.178.0/24
我建議您不要創建或修改新的過濾器或操作。使用隨附的並感到高興。建構自己的正則表達式模式並不容易,並且日誌文件格式會不時更改 - 這會破壞您的過濾器。您的系統將不會受到保護。您也不應該編輯
Apaches
預設日誌格式。