以每日数量限制 ssh 连接

atx*_*atx -4 ssh pam authorization

这最好通过 PAM 来完成吗?

Dav*_*sta 11

您可以通过多种方式做到这一点。您可以通过使用 pam_tally(更好的 pam_tally2)模块来限制用户通过 SSH 连接的次数

auth     required       pam_tally.so deny=10 unlock_time=60 per_user
Run Code Online (Sandbox Code Playgroud)

这将每个用户限制为 10 次登录/分钟。

这当然不会以任何方式阻止与 SSH 守护程序的连接。为此,您应该使用 netfilter 和最近的模块

iptables -A INPUT -tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -tcp --dport 22 -m state --state NEW -m recent --update --hitcount 10 --seconds 20 -j DROP
Run Code Online (Sandbox Code Playgroud)

这将每个主机(无论登录成功或失败)限制为每 20 秒 10 个连接。

您可以通过编写一个脚本(由 pam_exec.so 执行)来使 PAM 重置 iptables 计数器,该脚本执行 echo "-IPaddress" > /proc/net/xt_recent/nameoftherecentlist 或添加一个不受信任的主机执行相同操作但使用 echo "+IPaddress" > ...

更多信息可以在:http : //www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/sag-pam_tally.htmlhttp://www.debian-administration.org/articles /187当然还有 man 命令。