在Ubuntu系統中,可以通過配置SSH服務器來限制登錄次數。以下是一些方法:
安裝PAM模塊:
sudo apt-get update
sudo apt-get install libpam-cracklib
編輯PAM配置文件:
打開/etc/pam.d/sshd
文件:
sudo nano /etc/pam.d/sshd
在文件頂部添加以下行:
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600
這里的deny=5
表示允許最多5次失敗的登錄嘗試,unlock_time=600
表示在鎖定后600秒(10分鐘)內無法再次嘗試登錄。
重啟SSH服務:
sudo systemctl restart sshd
Fail2Ban是一個更強大的工具,可以監控日志文件并自動禁止惡意IP地址。
安裝Fail2Ban:
sudo apt-get update
sudo apt-get install fail2ban
配置Fail2Ban:
編輯Fail2Ban的配置文件/etc/fail2ban/jail.local
:
sudo nano /etc/fail2ban/jail.local
添加以下內容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 5
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
這里的maxretry
表示允許最多5次失敗的登錄嘗試,bantime
表示在鎖定后600秒(10分鐘)內無法再次嘗試登錄。
重啟Fail2Ban服務:
sudo systemctl restart fail2ban
如果你更喜歡使用iptables來限制登錄次數,可以按照以下步驟操作:
創建iptables規則:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 600 --hitcount 5 -j DROP
這里的--seconds 600
表示在600秒(10分鐘)內,如果某個IP地址嘗試登錄超過5次,則會被阻止。
保存iptables規則:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
通過以上方法,你可以有效地限制Ubuntu系統上的SSH登錄次數,提高系統的安全性。