

当香港站群服务器的 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 -
搜索失败的登录尝试:
bashsudo grep "Failed password" /var/log/auth.log # Ubuntu/Debian sudo grep "Failed password" /var/log/secure # CentOS/RHEL -
搜索成功的登录尝试:
bashsudo grep "Accepted password" /var/log/auth.log # Ubuntu/Debian sudo grep "Accepted password" /var/log/secure # CentOS/RHEL
(2) 检查异常 IP 地址
分析登录记录中是否有陌生 IP 地址,尤其是来自未知国家或地区的 IP。可以使用以下命令:
sudo grep "Accepted password" /var/log/auth.log | awk '{print $1, $2, $3, $11}'
(3) 检查暴力破解行为
查看是否有大量快速的登录尝试:
sudo grep "Failed password" /var/log/auth.log | awk '{print $1, $2, $3, $11}' | sort | uniq -c | sort -nr
输出示例:
50 192.168.1.5
30 203.0.113.10
- 表示某个 IP(如
203.0.113.10)尝试了 30 次登录。
2. 检查是否存在恶意用户或后门
攻击者可能创建了新用户或植入恶意后门。
(1) 检查系统用户
列出系统中所有用户:
cat /etc/passwd | grep '/bin/bash'
- 确认是否有未知用户被添加。
- 删除可疑用户:
bash
sudo userdel -r <username>
(2) 检查用户的 SSH 公钥
攻击者可能通过植入公钥实现无密码登录:
cat ~/.ssh/authorized_keys
- 删除可疑的公钥。
(3) 检查计划任务
攻击者可能通过计划任务(cron)设置定期后门。
crontab -l
sudo cat /etc/crontab
sudo ls /etc/cron.d/
- 删除可疑任务。
3. 检查异常进程
检测是否有可疑的后台进程运行。
ps aux | grep -v '\[' | grep -i "ssh\|python\|perl\|nc\|sh"
- 如果发现可疑进程,可以使用
kill命令终止:bashsudo kill -9 <PID>
4. 检查网络连接
查看服务器是否与可疑 IP 建立了连接:
netstat -tulnp
- 确认是否有未知程序监听端口,或与可疑外部 IP 通信。
二、防御暴力破解攻击
在诊断完成并清理服务器后,需要采取强有力的防御措施,以防止 SSH 再次被暴力破解。
1. 禁用密码登录,使用 SSH 密钥
SSH 密钥认证是防御暴力破解的最佳方法。
(1) 生成 SSH 密钥对
在本地计算机生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 公钥文件:
~/.ssh/id_rsa.pub - 私钥文件:
~/.ssh/id_rsa
(2) 将公钥上传到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@<server_ip>
(3) 禁用密码登录
编辑 SSH 配置文件:
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:
Port 2222
(2) 更新防火墙规则
允许新端口通过防火墙:
# Ubuntu/Debian
sudo ufw allow 2222/tcp
# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
(3) 重启 SSH 服务
sudo systemctl restart sshd
3. 限制登录来源 IP
如果您只需从固定 IP 登录服务器,可以限制 SSH 登录来源。
(1) 配置防火墙规则
使用 UFW 或 Firewalld 限制允许访问 SSH 的 IP:
# 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
# Ubuntu/Debian
sudo apt install fail2ban -y
# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install fail2ban -y
(2) 配置 Fail2Ban
编辑配置文件:
sudo nano /etc/fail2ban/jail.local
添加以下内容:
[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
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
5. 启用双因素认证(2FA)
为 SSH 启用双因素认证可以显著增强安全性。
(1) 安装 Google Authenticator
sudo apt install libpam-google-authenticator -y # Ubuntu/Debian
sudo yum install google-authenticator -y # CentOS/RHEL
(2) 配置 Google Authenticator
运行以下命令为当前用户生成 2FA:
google-authenticator
根据提示完成设置,并保存密钥。
(3) 配置 PAM 模块
编辑 /etc/pam.d/sshd,添加:
auth required pam_google_authenticator.so
(4) 修改 SSH 配置文件
启用 2FA:
sudo nano /etc/ssh/sshd_config
添加或修改以下内容:
ChallengeResponseAuthentication yes
重启 SSH 服务:
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 被暴力破解后,您需要快速诊断问题,清除安全隐患,并实施以下防御措施:
- 禁用密码登录,使用 SSH 密钥认证。
- 修改默认端口,避免常规扫描。
- 限制登录来源 IP,仅允许可信 IP 访问。
- 安装 Fail2Ban,自动阻止暴力破解。
- 启用双因素认证,增加额外的安全层。
- 定期更新和监控,确保系统处于良好状态。
通过这些措施,可以显著增强香港站群服务器的安全性,防止类似攻击再次发生。
