在 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
秒。