fail2ban 不适用于 ssh,除非在端口 22 上

fail2ban 不适用于 ssh,除非在端口 22 上

除了默认端口 22/tcp 之外,我的 fail2ban 不适用于 sshd。

我在 jail.local 中的旧工作配置:

[sshd]
enabled  = true
port     = ssh

测试了 fail2ban,在 3 次尝试失败后按照预期禁止了我。

之后我在 jail.local 中明确指定了一个不同的端口;ssh 隧道在新端口上运行,但是当我故意输入错误的 ssh 密码时,无论尝试多少次都没有被禁止。

sshd.service,fail2ban.service 已重启,也尝试重新启动。

我确实收到了关于被禁止的电子邮件消息,但是,我仍然可以(成功)尝试登录。

编辑:这是fail2ban-client -d | grep 'ssh'

答案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)。

相关内容