美文网首页
【转载】There were 3577 failed login

【转载】There were 3577 failed login

作者: andycheng | 来源:发表于2021-11-24 14:39 被阅读0次

    当您通过 shell 登录到您的 Linux(Ubuntu/Centos/Redhat/RHEL)时,您会收到这样的警告
    There were xxx failed login attempts since the last successful login.
    那么你的系统可能正在遭受密码暴力破解的风险。

    问题描述

    当您通过 shell 登录到您的 Linux(Ubuntu/Centos/Redhat/RHEL)时,您会收到一条警告,出现如下提示:

    There were xxx failed login attempts since the last successful login.
    # 其中 xxx 可能是数十次、数百次或数千次失败的登录尝试
    
    There were xxx failed login attempts since the last successful login.

    如果你的操作系统不显示上面的提醒,这可能是由于您的服务器提供商修改了 CentOS 的 MOTD 规则 以阻止显示该信息,也可能是因为它们默认使用基于密钥的身份验证(更多信息见下文),或者可能是因为它使用不同的 Linux 发行版,根本不显示此信息。

    对于任何接入到互联网的操作系统来说,这是相当正常的现象,互联网上有数十万个流氓机器人定期扫描并尝试访问服务器。如果您定期更新 SSHD 程序并且您只使用安全密码(例如:超过 20 个随机生成的字符),那么您不需要任何进一步的保护。但是,下面我们将介绍一些方法,您可以使用这些方法进一步防止未经授权的登录。

    解决方案

    有多种方法可以保护您的 Linux 系统免受未经授权的登录尝试,你可以进行以下的这些操作:

    方法1:切换到使用 SSH 密钥,禁止通过密码登录。

    方法2:将 SSHD 的默认端口 从 22更改为另一个端口,如 5522。虽然这比传统的安全加固方式有一定难度,但它可以再一定程度上抵御一些简单的密码暴力破解脚本。但是高级的攻击方式会扫描系统所有开放端口,并很方便地找到修改后的 SSHD 端口。

    方法3:手动禁用登陆失败的IP地址

    查看登陆失败的IP地址
    [root@johnhao ~]# grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr
    
      14861 167.71.52.192
       4119 221.4.210.112
       4119 220.174.25.172
       3916 110.185.107.27
       2760 182.150.48.140
       2745 183.134.217.152
       1921 223.99.195.182
        976 104.248.255.6
        387 46.101.200.235
         40 186.4.161.148
         30 159.89.14.76
    

    通过下面的命令将这些登陆失败的 IP 加入服务器访问限制名单

    [root@johnhao ~]# cat /var/log/secure |  grep "Failed password for invalid user" | awk '{print $13}' | sort | uniq -c | sort -n | tail -10 |awk '{print "sshd:"$2":deny"}' >> /etc/hosts.allow
    
    [root@johnhao ~]# tail -20 /etc/hosts.allow
    #
    # hosts.allow   This file contains access rules which are used to
    #               allow or deny connections to network services that
    #               either use the tcp_wrappers library or that have been
    #               started through a tcp_wrappers-enabled xinetd.
    #
    #               See 'man 5 hosts_options' and 'man 5 hosts_access'
    #               for information on rule syntax.
    #               See 'man tcpd' for information on tcp_wrappers
    #
    sshd:186.4.161.148:deny
    sshd:46.101.200.235:deny
    sshd:104.248.255.6:deny
    sshd:223.99.195.182:deny
    sshd:183.134.217.152:deny
    sshd:182.150.48.140:deny
    sshd:110.185.107.27:deny
    sshd:220.174.25.172:deny
    sshd:221.4.210.112:deny
    sshd:167.71.52.192:deny
    

    方法4:安装 fail2ban 并启用对使用 SSH多次失败登录的自动检测,以便阻止重复尝试。如果在 CentOS 8 或 CentOS 7 上使用 firewalld,请参见下文。

    在 CentOS 7/8 上使用 firewalld 安装和配置 fail2ban

    注意事项:****fail2ban****内置在 Plesk/cPanel 中的,它会配置它使用 iptables 而不是 firewalld。如果使用 Plesk/cPanel,请改用本指南启用它

    dnf install epel-release
    dnf install fail2ban
    echo '
    [sshd] 
    enabled = true
    ' > /etc/fail2ban/jail.local
    systemctl restart fail2ban
    

    要查看fail2ban状态,可以使用具有不同详细程度的各种选项:

    systemctl status fail2ban
    fail2ban-client status
    fail2ban-client status sshd
    

    如果IP被禁止,通过下面的方式取消禁止 IP:

    fail2ban-client unban 192.168.56.1
    

    原文地址

    相关文章

      网友评论

          本文标题:【转载】There were 3577 failed login

          本文链接:https://www.haomeiwen.com/subject/cgvntrtx.html