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

如果香港VPS服务器的 SSH 服务被暴力破解,攻击者可能会获取服务器的访问权限,威胁服务器安全。


1. 立即处理

1.1 切断服务器访问

为了防止进一步的入侵和损害,立即切断 SSH 连接或限制访问:

  • 通过防火墙只允许特定 IP 登录:
    bash
    sudo ufw allow from <your_ip> to any port 22
    sudo ufw deny 22
    
  • 或停止 SSH 服务(仅在您有其他方式访问服务器时使用,如通过控制面板):
    bash
    sudo systemctl stop sshd
    

2. 诊断与排查

2.1 检查登录记录

通过 lastlastb 命令查看最近登录和失败的尝试:

bash
last
lastb

重点:

  • 查找是否有异常的登录时间或未知 IP。
  • 记录下恶意登录的 IP 地址。

2.2 检查 SSH 日志

查看 SSH 的日志文件,找到攻击行为的证据:

  • Ubuntu/Debian
    bash
    sudo cat /var/log/auth.log | grep "sshd"
    
  • CentOS/RHEL
    bash
    sudo cat /var/log/secure | grep "sshd"
    

重点关注:

  • Accepted password:表示成功登录的记录,重点排查可疑账户。
  • Failed password:暴力破解尝试的记录。
  • Invalid user:尝试使用不存在用户登录。

示例:

plaintext
Aug 19 10:15:01 server sshd[12345]: Accepted password for root from 192.168.1.100 port 53212 ssh2
Aug 19 10:15:01 server sshd[12345]: Failed password for invalid user admin from 203.0.113.45 port 12345 ssh2

2.3 检查新增账户

攻击者可能会创建后门账户,检查系统中是否有异常用户:

bash
cat /etc/passwd | grep '/bin/bash'
  • 正常用户:例如 rootubuntuadmin
  • 异常用户:检查是否有您不认识的用户名。

如发现可疑用户,删除账户:

bash
sudo userdel -r <username>

2.4 检查计划任务

攻击者可能会通过计划任务定期执行恶意脚本。检查系统的 Cron 任务:

bash
crontab -l
sudo cat /etc/crontab
sudo ls /etc/cron.d/

删除任何可疑的 Cron 任务。


3. 清理被篡改的文件

3.1 查找最近修改的文件

攻击者可能已经修改了系统文件或上传了恶意脚本:

bash
find / -type f -mtime -7
  • -mtime -7:查找最近 7 天被修改的文件。
  • 仔细检查 /root/tmp/var/www/etc 等目录。

3.2 检查运行中的进程

查看是否有异常的进程正在运行:

bash
ps aux | grep -v "root"
  • 检查是否有陌生的进程名或路径。
  • 杀死可疑进程:
    bash
    sudo kill -9 <PID>
    

3.3 检查网络连接

查看是否有可疑的外部连接:

bash
netstat -tulnp
  • 检查是否有未知的服务监听端口。
  • 如果发现恶意进程建立的连接,立即阻止其 IP:
    bash
    sudo iptables -A INPUT -s <malicious_ip> -j DROP
    

4. 防御措施

4.1 禁用密码登录,启用密钥认证

密码登录容易被暴力破解,建议改用 SSH 公钥认证。

生成密钥对(本地电脑运行):

bash
ssh-keygen -t rsa -b 4096

默认会生成 id_rsa(私钥)和 id_rsa.pub(公钥)。

将公钥上传到服务器:

bash
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip

修改 SSH 配置:

编辑 SSH 配置文件 /etc/ssh/sshd_config,启用密钥认证并禁用密码登录:

plaintext
PasswordAuthentication no
PubkeyAuthentication yes

重启 SSH 服务:

bash
sudo systemctl restart sshd

4.2 修改默认 SSH 端口

攻击者通常扫描默认的 SSH 端口(22)。更改 SSH 端口可以减少被暴力破解的几率。

修改配置:

编辑 /etc/ssh/sshd_config,找到 Port 选项,修改为非默认端口(如 2222):

plaintext
Port 2222

重启 SSH 服务:

bash
sudo systemctl restart sshd

注意:

  • 更改端口后,需要在防火墙中开放新端口:
    bash
    sudo ufw allow 2222
    

4.3 限制登录 IP

如果仅需从固定 IP 登录香港VPS服务器,可以通过防火墙限制 SSH 访问:

bash
sudo ufw allow from <your_ip> to any port 22

4.4 安装 Fail2ban

Fail2ban 可以自动检测和封禁多次尝试登录失败的 IP。

安装:

bash
sudo apt install fail2ban

配置:

编辑 /etc/fail2ban/jail.local

plaintext
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

重启 Fail2ban 服务:

bash
sudo systemctl restart fail2ban

查看封禁的 IP:

bash
sudo fail2ban-client status sshd

4.5 定期检查系统漏洞

  1. 更新系统和软件:
    bash
    sudo apt update && sudo apt upgrade -y
    
  2. 安装安全工具(如 ClamAV 或 RKHunter):
    • 检查是否存在恶意软件或后门:
      bash
      sudo apt install rkhunter
      sudo rkhunter --checkall
      

5. 总结

步骤 操作
切断访问 停止 SSH 或限制 IP 登录。
检查登录记录 使用 lastlastb 和 SSH 日志排查异常登录。
清理恶意文件 查找最近修改的文件,检查计划任务和运行中的进程。
启用密钥认证 禁用密码登录,使用 SSH 公钥认证。
修改 SSH 端口 修改默认端口,减少被扫描的风险。
安装 Fail2ban 自动封禁暴力破解 IP。
定期更新系统 安装最新补丁,修复已知漏洞。

 

通过以上诊断和防御措施,您可以有效防止 SSH 暴力破解攻击,并提升服务器的整体安全性。如果VPS服务器已经被严重入侵,建议重新安装系统并恢复干净的数据备份。

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