ubuntu

Ubuntu SSH如何限制登录次数

小樊
90
2025-03-20 09:10:48
栏目: 智能运维

在Ubuntu系统中,可以通过配置SSH服务器来限制登录次数。以下是一些方法:

方法一:使用PAM(Pluggable Authentication Modules)

  1. 安装PAM模块

    sudo apt-get update
    sudo apt-get install libpam-cracklib
    
  2. 编辑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分钟)内无法再次尝试登录。

  3. 重启SSH服务

    sudo systemctl restart sshd
    

方法二:使用Fail2Ban

Fail2Ban是一个更强大的工具,可以监控日志文件并自动禁止恶意IP地址。

  1. 安装Fail2Ban

    sudo apt-get update
    sudo apt-get install fail2ban
    
  2. 配置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分钟)内无法再次尝试登录。

  3. 重启Fail2Ban服务

    sudo systemctl restart fail2ban
    

方法三:使用iptables

如果你更喜欢使用iptables来限制登录次数,可以按照以下步骤操作:

  1. 创建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次,则会被阻止。

  2. 保存iptables规则

    sudo apt-get install iptables-persistent
    sudo netfilter-persistent save
    sudo netfilter-persistent reload
    

通过以上方法,你可以有效地限制Ubuntu系统上的SSH登录次数,提高系统的安全性。

0
看了该问题的人还看了