在 CentOS 系统中,您可以通过使用 Fail2Ban 服务来限制 SSH 登录次数
sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
编辑 Fail2Ban 的配置文件 /etc/fail2ban/jail.local
。如果文件不存在,请创建一个新文件:
sudo vi /etc/fail2ban/jail.local
在 jail.local
文件中,添加以下内容以限制 SSH 登录次数:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 5
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 5
bantime = 600
这里的配置表示:
bantime
:封禁时间(秒),在此期间内,尝试登录失败的 IP 地址将被封禁。findtime
:查找时间窗口(秒),在此期间内,如果 IP 地址尝试登录失败次数超过 maxretry
,则该 IP 地址将被封禁。maxretry
:允许的最大失败尝试次数。port
:要限制的端口,这里是 SSH 端口(默认为 22)。filter
:用于匹配日志文件中的失败登录尝试的过滤器名称,这里是 sshd
。logpath
:要检查的日志文件路径,这里是 /var/log/secure
。sudo systemctl restart fail2ban
现在,Fail2Ban 将根据您的配置限制 SSH 登录次数。当某个 IP 地址在 findtime
时间窗口内尝试登录失败超过 maxretry
次时,该 IP 地址将被封禁 bantime
秒。