配置从路由器到树莓派的端口 22 转发后,我发现每天都有大量 IP 试图进入。我尝试通过设置ufw
和 来使我的系统更加安全fail2ban
。
在 中fail2ban
,我将其配置为无限期禁止 3 次登录树莓派失败的 IP。我通过将以下行添加到/etc/fail2ban/fail.local
:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
但是,我发现当我在终端中运行以下命令时:
zgrep -a "Unban" /var/log/fail2ban.log*
我仍然看到很多 IP 正在被解除禁止。
/var/log/fail2ban.log.4.gz:2020-04-03 15:40:37,096 fail2ban.actions [503]: NOTICE [sshd] Unban <IP here>
/var/log/fail2ban.log.4.gz:2020-04-04 02:28:23,485 fail2ban.actions [503]: NOTICE [sshd] Unban <IP here>
/var/log/fail2ban.log.4.gz:2020-04-04 23:51:52,909 fail2ban.actions [503]: NOTICE [sshd] Unban <IP here>
ssh
和 和有什么区别sshd
?如何防止所有解除禁令?
答案1
禁令总是暂时的,因为错误,ip是动态分配的。
所以我向你推荐:
1)修改bantime
该命令将提取 sshd Jail 的当前配置
fail2ban-client -d --dp | grep -e 'sshd' | grep -E '(maxretry|findtime|bantime)'
所以你可以添加:
[sshd]
bantime = 3600
在您的文件中fail.local
,因此每次都会禁止 1 小时,而不是默认的 10 分钟。
我会保持这个bantime很小,以防你在远程并尝试访问你的服务器时犯错误。
2)激活累犯
但你可以启用这累犯监狱 。重犯监狱会捕获多次封禁的IP,并封禁更长时间。
[recidive]
enabled = true
maxretry = 4
bantime = 1w
findtime = 1d
通过这些设置,在最后一天进行 4 x 3 次尝试后,不良 IP 将被禁止 1 周
答案2
像这样将 bantime 添加到你的监狱中 -
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
它将在 3 次失败尝试后对每个 IP 进行 1 小时的测试,而不是无限期地进行测试。您可以通过更改 bantime 轻松调整此设置。另外,您还想激活累犯