在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登录次数,提高系统的安全性。