除了默认端口 22/tcp 之外,我的 fail2ban 不适用于 sshd。
我在 jail.local 中的旧工作配置:
[sshd]
enabled = true
port = ssh
测试了 fail2ban,在 3 次尝试失败后按照预期禁止了我。
之后我在 jail.local 中明确指定了一个不同的端口;ssh 隧道在新端口上运行,但是当我故意输入错误的 ssh 密码时,无论尝试多少次都没有被禁止。
sshd.service,fail2ban.service 已重启,也尝试重新启动。
我确实收到了关于被禁止的电子邮件消息,但是,我仍然可以(成功)尝试登录。
答案1
您的配置可能存在一些不正确的地方。
例如,fail2ban 默认的 sshd jail 部分是[sshd]
,而您的示例显示[ssh]
。您有 2 个 jail 吗?或者您是否对自己的 jail 或默认值进行了一些自定义?(例如默认值action
被覆盖)。
为了更深入地检查,你可以显示 fail2ban(合并)配置的转储:
fail2ban-client -d | grep 'ssh'
有趣的是actionstart(和actionban)的值以及端口是否插入到动作定义中。
action
小提示:对于定制(如果由于某种原因您需要覆盖),可以设置banaction
唯一(它将在默认action
声明中插入):
[jail]
banaction = iptables-ipset-proto6
或使用该操作所需的所有参数:
[jail]
action = iptables-ipset-proto6[port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
否则,该操作可以使用其默认端口(可能确实是 22)。