香港站群服务器购买后SSH被暴力破解后如何进行诊断与防御

香港站群服务器的 SSH 被暴力破解后,您需要迅速采取措施诊断问题并加强服务器的安全性,以防止进一步的攻击并保护数据。


一、诊断被暴力破解的 SSH 服务器

1. 检查异常登录记录

通过系统日志文件查看是否有可疑的登录行为或暴力破解尝试。

(1) 查看 SSH 登录日志

  • 检查 /var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL):

    bash
    # Ubuntu/Debian
    sudo cat /var/log/auth.log | grep ssh
    
    # CentOS/RHEL
    sudo cat /var/log/secure | grep ssh
    
     
     
  • 搜索失败的登录尝试:

    bash
    sudo grep "Failed password" /var/log/auth.log  # Ubuntu/Debian
    sudo grep "Failed password" /var/log/secure   # CentOS/RHEL
    
     
     
  • 搜索成功的登录尝试:

    bash
    sudo grep "Accepted password" /var/log/auth.log  # Ubuntu/Debian
    sudo grep "Accepted password" /var/log/secure   # CentOS/RHEL
    
     
     

(2) 检查异常 IP 地址

分析登录记录中是否有陌生 IP 地址,尤其是来自未知国家或地区的 IP。可以使用以下命令:

bash
sudo grep "Accepted password" /var/log/auth.log | awk '{print $1, $2, $3, $11}'
 
 

(3) 检查暴力破解行为

查看是否有大量快速的登录尝试:

bash
sudo grep "Failed password" /var/log/auth.log | awk '{print $1, $2, $3, $11}' | sort | uniq -c | sort -nr
 
 

输出示例:

bash
50  192.168.1.5
30  203.0.113.10
 
 
  • 表示某个 IP(如 203.0.113.10)尝试了 30 次登录。

2. 检查是否存在恶意用户或后门

攻击者可能创建了新用户或植入恶意后门。

(1) 检查系统用户

列出系统中所有用户:

bash
cat /etc/passwd | grep '/bin/bash'
 
 
  • 确认是否有未知用户被添加。
  • 删除可疑用户:
    bash
    sudo userdel -r <username>
    
     
     

(2) 检查用户的 SSH 公钥

攻击者可能通过植入公钥实现无密码登录:

bash
cat ~/.ssh/authorized_keys
 
 
  • 删除可疑的公钥。

(3) 检查计划任务

攻击者可能通过计划任务(cron)设置定期后门。

bash
crontab -l
sudo cat /etc/crontab
sudo ls /etc/cron.d/
 
 
  • 删除可疑任务。

3. 检查异常进程

检测是否有可疑的后台进程运行。

bash
ps aux | grep -v '\[' | grep -i "ssh\|python\|perl\|nc\|sh"
 
 
  • 如果发现可疑进程,可以使用 kill 命令终止:
    bash
    sudo kill -9 <PID>
    
     
     

4. 检查网络连接

查看服务器是否与可疑 IP 建立了连接:

bash
netstat -tulnp
 
 
  • 确认是否有未知程序监听端口,或与可疑外部 IP 通信。

二、防御暴力破解攻击

在诊断完成并清理服务器后,需要采取强有力的防御措施,以防止 SSH 再次被暴力破解。


1. 禁用密码登录,使用 SSH 密钥

SSH 密钥认证是防御暴力破解的最佳方法。

(1) 生成 SSH 密钥对

在本地计算机生成密钥对:

bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
 
 
  • 公钥文件:~/.ssh/id_rsa.pub
  • 私钥文件:~/.ssh/id_rsa

(2) 将公钥上传到服务器

bash
ssh-copy-id -i ~/.ssh/id_rsa.pub root@<server_ip>
 
 

(3) 禁用密码登录

编辑 SSH 配置文件:

bash
sudo nano /etc/ssh/sshd_config
 
 
  • 修改以下内容:
    ini
    PasswordAuthentication no
    PubkeyAuthentication yes
    
     
     
  • 重启 SSH 服务:
    bash
    sudo systemctl restart sshd
    
     
     

2. 修改默认 SSH 端口

默认的 SSH 端口是 22,容易被攻击者扫描。修改为其他端口可以降低被攻击的风险。

(1) 修改 SSH 配置文件

编辑 /etc/ssh/sshd_config

bash
Port 2222
 
 

(2) 更新防火墙规则

允许新端口通过防火墙:

bash
# Ubuntu/Debian
sudo ufw allow 2222/tcp

# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
 
 

(3) 重启 SSH 服务

bash
sudo systemctl restart sshd
 
 

3. 限制登录来源 IP

如果您只需从固定 IP 登录服务器,可以限制 SSH 登录来源。

(1) 配置防火墙规则

使用 UFW 或 Firewalld 限制允许访问 SSH 的 IP:

bash
# Ubuntu/Debian 使用 UFW
sudo ufw allow from <your_ip> to any port 2222

# CentOS/RHEL 使用 Firewalld
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<your_ip>" port protocol="tcp" port="2222" accept'
sudo firewall-cmd --reload
 
 

(2) 配置 /etc/hosts.allow/etc/hosts.deny

  • /etc/hosts.allow 中添加:
     
    sshd: <your_ip>
    
     
     
  • /etc/hosts.deny 中添加:
     
    sshd: ALL
    
     
     

4. 使用 Fail2Ban 防止暴力破解

Fail2Ban 是自动阻止暴力破解的工具。

(1) 安装 Fail2Ban

bash
# Ubuntu/Debian
sudo apt install fail2ban -y

# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install fail2ban -y
 
 

(2) 配置 Fail2Ban

编辑配置文件:

bash
sudo nano /etc/fail2ban/jail.local
 
 

添加以下内容:

ini
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log  # Ubuntu/Debian
# logpath = /var/log/secure   # CentOS/RHEL
maxretry = 5
bantime = 3600
findtime = 600
 
 

(3) 启动 Fail2Ban

bash
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
 
 

5. 启用双因素认证(2FA)

为 SSH 启用双因素认证可以显著增强安全性。

(1) 安装 Google Authenticator

bash
sudo apt install libpam-google-authenticator -y  # Ubuntu/Debian
sudo yum install google-authenticator -y        # CentOS/RHEL
 
 

(2) 配置 Google Authenticator

运行以下命令为当前用户生成 2FA:

bash
google-authenticator
 
 

根据提示完成设置,并保存密钥。

(3) 配置 PAM 模块

编辑 /etc/pam.d/sshd,添加:

ini
auth required pam_google_authenticator.so
 
 

(4) 修改 SSH 配置文件

启用 2FA:

bash
sudo nano /etc/ssh/sshd_config
 
 

添加或修改以下内容:

ini
ChallengeResponseAuthentication yes
 
 

重启 SSH 服务:

bash
sudo systemctl restart sshd
 
 

6. 定期更新和监控

  • 更新系统和软件:确保 SSH 和操作系统处于最新版本。
    bash
    sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
    sudo yum update -y                      # CentOS/RHEL
    
     
     
  • 设置监控工具:使用工具(如 Zabbix、Nagios 或 Cloudflare Logs)监控服务器登录行为。

三、总结

当发现 SSH 被暴力破解后,您需要快速诊断问题,清除安全隐患,并实施以下防御措施:

  1. 禁用密码登录,使用 SSH 密钥认证。
  2. 修改默认端口,避免常规扫描。
  3. 限制登录来源 IP,仅允许可信 IP 访问。
  4. 安装 Fail2Ban,自动阻止暴力破解。
  5. 启用双因素认证,增加额外的安全层。
  6. 定期更新和监控,确保系统处于良好状态。

 

通过这些措施,可以显著增强香港站群服务器的安全性,防止类似攻击再次发生。

超过 50,000 人的信任 网硕互联期待你加入我们的会员。