永久禁止IP時fail2ban的奇怪行為
根據文件,將監獄禁令時間設置為負值應該會導致永久禁令。但是,一旦完成,與將 bantime 設置為正整數時相比,以下行為會發生變化:
1)
ipset list
不顯示fail2ban-sshd 雜湊表2)
firewall-cmd --direct --get-all-rules
為空3)
/var/log/fail2ban.log
變成單行。有趣的條目sshd
$$ 25772 $$:來自 93.174.89.88 埠 37477 的無效使用者 ubuntu,“ip”:“93.174.89.88”,“ipmatches”:在 0x7f4588f9dc08>,“ipfailures”:在 0x7f4588f9daa0>,“時間”:1536301842.0844,“失敗”:18076 ‘ipjailfailures’: at 0x7f4588f9dd70>})’: 錯誤禁止 93.174.89.88
4)
/var/log/messages
有以下防火牆
$$ 916 $$:警告:’/usr/sbin/iptables-restore –wait=2 -n’失敗:iptables-restore v1.4.21:設置fail2ban-sshd不存在。#012#012錯誤發生在行:2#012Try’ iptables-restore -h’ 或 ‘iptables-restore –help’ 以獲取更多資訊。防火牆$$ 916 $$: 錯誤: COMMAND_FAILED
唯一按預期工作的命令是
fail2ban-client status sshd
,但是顯示被禁止的 IP 仍然嘗試連接。我認為所有問題的根源在於,一旦整數為負,無論出於何種原因都不會創建 ipset。有任何想法嗎?此外,該命令是否與應用新配置時
fail2ban-client reload
具有相同的影響?systemctl restart fail2ban.service
就我而言, /etc/fail2ban/jail.d/local.conf
[sshd] enabled = true bantime = -1 findtime = 3600 maxretry = 5 action = %(action_)s
這是舊版本的fail2ban 中的一個錯誤。此後它已被修復,但如果您的 Linux 發行版仍然提供舊版本,您可能還需要一種解決方法。
解釋問題和修復的GitHub 問題還包括一個解決方法:
這在較新的版本中已修復。對於 0.9,您可以簡單地覆蓋監獄內的 bantime (timeout) 參數(ipset 持久規則的參數超時為 0)。
[sshd] bantime = -1 action = %(banaction)s[name=%(__name__)s, bantime=0, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]