您的位置:首页 > 文旅 > 美景 > 移动端显卡_企业网页是什么_培训网站模板_免费网站服务器

移动端显卡_企业网页是什么_培训网站模板_免费网站服务器

2025/1/9 2:26:07 来源:https://blog.csdn.net/2409_89014517/article/details/144930995  浏览:    关键词:移动端显卡_企业网页是什么_培训网站模板_免费网站服务器
移动端显卡_企业网页是什么_培训网站模板_免费网站服务器

SSH 暴力破解攻击是指攻击者通过尝试大量用户名和密码组合,试图获取服务器的 SSH 访问权限。这种攻击如果不加以防护,可能导致服务器被入侵。以下是 SSH 暴力破解攻击的诊断与防御方法


一、SSH 暴力破解攻击的常见表现

  1. 系统登录日志异常

    • /var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL)中出现大量失败的 SSH 登录尝试。
    • 日志中会显示类似以下信息:

      plaintext

      复制

      Failed password for invalid user admin from 192.168.1.100 port 54321 ssh2
      Failed password for root from 203.0.113.45 port 41234 ssh2
      
  2. 大量异常 SSH 连接

    • 使用工具 netstatss 查看服务器的 SSH 连接,发现大量来自同一或不同 IP 地址的连接。

      bash

      复制

      netstat -tn | grep :22
      
  3. 系统资源消耗异常

    • 攻击可能导致 SSH 服务占用过多 CPU 或内存资源,影响系统性能。
  4. 服务器可能被封锁

    • 如果攻击持续,可能导致服务器 IP 被托管服务商临时封锁。

二、SSH 暴力破解攻击的诊断方法

1. 检查 SSH 登录日志

  • 查看最近的 SSH 登录失败记录:

    bash

    复制

    grep "Failed password" /var/log/auth.log   # Ubuntu/Debian
    grep "Failed password" /var/log/secure    # CentOS/RHEL
    
  • 示例输出:

    plaintext

    复制

    Sep 25 10:23:45 server sshd[12345]: Failed password for root from 203.0.113.45 port 54321 ssh2
    Sep 25 10:23:46 server sshd[12346]: Failed password for invalid user admin from 203.0.113.46 port 54322 ssh2
    

2. 检查登录的来源 IP

  • 统计攻击来源 IP:

    bash

    复制

    grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
    
  • 示例输出:

    plaintext

    复制

    100 203.0.113.45
    85 203.0.113.46
    

3. 检查当前 SSH 连接

  • 查看当前 SSH 连接的来源 IP:

    bash

    复制

    netstat -tn | grep :22
    
  • 或使用 ss 命令:

    bash

    复制

    ss -tn sport = :22
    

4. 检查系统负载

  • 如果攻击正在进行,可能导致系统负载升高:

    bash

    复制

    top
    
    或:

    bash

    复制

    htop
    

三、SSH 暴力破解的防御措施

1. 修改默认 SSH 端口

  • 默认的 SSH 端口是 22,攻击者通常会针对该端口进行扫描和攻击。通过修改端口,可以降低被攻击的可能性。
  • 修改 SSH 配置文件:

    bash

    复制

    sudo vi /etc/ssh/sshd_config
    
    • 修改以下行(例如改为 2222):

      plaintext

      复制

      Port 2222
      
    • 重启 SSH 服务:

      bash

      复制

      sudo systemctl restart sshd
      

2. 禁用 Root 用户登录

  • 禁止使用 Root 用户直接登录,强制使用普通用户并通过 sudo 提权。
  • 修改 SSH 配置文件:

    bash

    复制

    sudo vi /etc/ssh/sshd_config
    
    • 找到并设置:

      plaintext

      复制

      PermitRootLogin no
      
    • 重启 SSH 服务:

      bash

      复制

      sudo systemctl restart sshd
      

3. 使用强密码和 SSH 密钥认证

(1) 强密码策略
  • 使用 12 位以上的复杂密码,包括大小写字母、数字和特殊字符。
  • 强制所有用户更换弱密码。
(2) 配置 SSH 密钥认证
  • 生成 SSH 密钥:

    bash

    复制

    ssh-keygen -t rsa -b 4096
    
  • 将公钥上传到服务器:

    bash

    复制

    ssh-copy-id user@<服务器IP>
    
  • 禁用密码登录:
    • 修改 /etc/ssh/sshd_config,设置:

      plaintext

      复制

      PasswordAuthentication no
      
    • 重启 SSH 服务:

      bash

      复制

      sudo systemctl restart sshd
      

4. 限制 SSH 登录尝试

(1) 使用 Fail2Ban
  • Fail2Ban 是一个基于日志的防护工具,可以自动封禁尝试暴力破解的 IP。
  • 安装 Fail2Ban:

    bash

    复制

    sudo apt install fail2ban   # Ubuntu/Debian
    sudo yum install fail2ban   # CentOS/RHEL
    
  • 配置 SSH 防护规则:
    • 编辑 /etc/fail2ban/jail.local(如果文件不存在,复制 /etc/fail2ban/jail.conf):

      plaintext

      复制

      [sshd]
      enabled = true
      port = ssh
      logpath = /var/log/auth.log   # Ubuntu/Debian
      # logpath = /var/log/secure    # CentOS/RHEL
      maxretry = 5
      bantime = 3600
      
    • 启动服务并启用开机启动:

      bash

      复制

      sudo systemctl start fail2ban
      sudo systemctl enable fail2ban
      
(2) 限制登录尝试次数
  • 修改 SSH 配置文件:

    bash

    复制

    sudo vi /etc/ssh/sshd_config
    
    • 添加以下内容:

      plaintext

      复制

      MaxAuthTries 3
      
    • 重启 SSH 服务:

      bash

      复制

      sudo systemctl restart sshd
      

5. 设置防火墙规则

(1) 使用 UFW(Ubuntu/Debian)
  • 只允许特定 IP 或子网访问 SSH:

    bash

    复制

    sudo ufw allow from <IP地址或子网> to any port 22
    sudo ufw enable
    
(2) 使用 iptables
  • 限制每个 IP 每分钟的连接次数:

    bash

    复制

    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 60 --hitcount 5 -j DROP
    

6. 使用 GeoIP 限制登录

  • 如果服务器只需要特定国家的访问,可以使用 GeoIP 模块限制 SSH 登录。

  • 安装 xtables-addons 并配置 GeoIP 规则:

    bash

    复制

    sudo iptables -A INPUT -p tcp --dport 22 -m geoip ! --src-cc CN,US -j DROP
    

7. 设置 IP 白名单

  • 如果只有固定的 IP 地址需要访问服务器,可以设置白名单。
  • 使用防火墙规则限制 SSH 登录来源:

    bash

    复制

    sudo iptables -A INPUT -p tcp --dport 22 -s <允许的IP地址> -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    

8. 监控并报警

  • 配置 SSH 登录监控和报警:
    • 使用工具(如 LogwatchFail2Ban)定期检查登录日志。
    • 设置邮件通知,当超过一定数量的失败登录尝试时发送报警。

四、总结

针对 SSH 暴力破解的防护,可以采取以下综合措施:

  1. 修改默认端口并禁用 Root 登录。
  2. 使用强密码或 SSH 密钥认证,彻底禁用密码登录。
  3. 配置 Fail2Ban 或类似工具自动封禁恶意 IP。
  4. 使用防火墙限制 SSH 登录来源,启用 IP 白名单。
  5. 监控登录日志,及时发现和应对潜在威胁。

通过这些防御手段,可以有效减少 SSH 暴力破解攻击的风险,提高服务器的安全性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com