如何在共享系统上为每个用户的 SSH 登录设置基于速率的限制和/或配额?例如:将 SSH 登录限制为每 10 秒一次。
我看过的东西:
- pam throttle 和 throttle2,但它们会查找失败的登录,然后进行节流。相反,我想查找成功的登录,然后进行节流。
- fail2ban,但它会阻止 IPS/范围而不是用户,这对我没有帮助。(已编辑以注意 IP 与用户阻止)
答案1
fail2ban
允许自定义过滤器和自定义操作。您可以创建自定义过滤器来解析适当的日志,以了解 ssh 登录是否成功并执行了适当的操作。
您可以在中找到许多不同过滤器的示例/etc/fail2ban/filter.d/
,也可以在中找到许多不同操作的示例/etc/fail2ban/action.d/
如果你不想使用 IP 封锁,那么你可以用 锁定用户账户passwd -l username
。或者你可以创建一个/bin/sshratelimit
打印一些强烈警告的脚本,并将此脚本设置为用户的 shell。