香港主机 SSH 天天被扫?一文教你把暴力破解挡在门外

很多用户租用香港主机后,系统刚上线没多久,就会在安全日志里看到大量 SSH 登录失败记录:有的在不断尝试 root 用户,有的使用 admin、test、oracle、mysql 等常见账号,有的甚至每隔几秒就换一个 IP 来撞库。表面看只是“密码输错”,但如果不及时处理,轻则日志暴涨、CPU 被异常占用,重则弱密码被撞开,服务器被植入木马、挖矿程序或后门脚本。
香港主机因为线路访问方便、延迟低、适合企业官网、后台管理、跨境业务和 API 服务,所以公网 SSH 端口一旦暴露,就很容易被全球扫描器盯上。防护这类问题,不能只靠“把密码设复杂一点”,而要从登录入口、账户权限、防火墙、日志审计和自动封禁几个层面一起加固。
以 A5IDC 香港服务器中较常见的一类企业入门配置为例,比如 E3-1271 V3、16G 内存、240G SSD,搭配香港 100M BGP + 15M CN2 线路,用来部署企业官网、轻量后台、WordPress、ZBlog 或小型业务系统完全够用。但这类服务器通常会长期暴露在公网环境中,如果 SSH 没有做好限制,性能再稳定也挡不住持续不断的暴力破解。因此,服务器交付后的第一件事,不应该是急着部署网站,而是先把 SSH 登录安全做好。
先确认:是不是正在被暴力破解?
SSH 暴力破解最明显的信号,就是系统日志中出现大量失败登录记录。Linux 服务器可以先查看登录失败情况。
Ubuntu / Debian 系统常用命令:
grep "Failed password" /var/log/auth.log | tail -50
CentOS 系统常用命令:
grep "Failed password" /var/log/secure | tail -50
如果你看到同一个 IP 反复尝试 root、admin、test 等用户,或者短时间内出现大量不同来源 IP 的登录失败记录,基本可以判断 SSH 正在被扫描或暴力破解。
还可以查看最近失败登录用户:
lastb | head
查看当前 SSH 连接:
ss -tnp | grep ssh
如果 SSH 失败记录很多,但业务访问正常,说明攻击主要集中在登录入口;如果同时出现 CPU 异常、带宽异常、陌生进程、异常计划任务,就要进一步排查是否已经被入侵。
第一步:禁止 root 直接登录
很多暴力破解脚本第一目标就是 root,因为 root 权限最高,一旦撞开就能完全控制系统。因此,建议先创建普通用户,再禁止 root 直接通过 SSH 登录。
创建普通用户:
adduser a5admin
usermod -aG sudo a5admin
然后编辑 SSH 配置文件:
vim /etc/ssh/sshd_config
找到或添加以下配置:
PermitRootLogin no
保存后重启 SSH:
systemctl restart ssh
这样即使攻击者继续尝试 root 用户,也无法直接登录成功。管理员日常可以先使用普通用户登录,再通过 sudo 执行管理命令。
第二步:关闭密码登录,改用密钥登录
如果服务器只使用密码登录,即使密码很复杂,也仍然会被不断尝试。更稳妥的方式是启用 SSH 密钥登录,并关闭密码认证。
本地生成密钥:
ssh-keygen -t ed25519
将公钥上传到服务器:
ssh-copy-id a5admin@服务器IP
确认密钥可以正常登录后,再修改 SSH 配置:
PasswordAuthentication no
PubkeyAuthentication yes
然后重启 SSH:
systemctl restart ssh
这一步非常关键。关闭密码登录后,普通撞库脚本基本失去效果,因为它们没有你的私钥,即使知道用户名也无法登录。
操作时要注意:关闭密码登录前,必须先开一个新的终端测试密钥登录是否成功,不要直接断开当前 SSH,避免把自己锁在服务器外面。
第三步:修改默认 SSH 端口,但不要只依赖改端口
默认 SSH 端口是 22,互联网上的扫描器会优先扫描这个端口。将 SSH 改到非默认端口,可以减少大量低级扫描。
例如修改为 22222:
Port 22222
重启 SSH 后,连接方式变为:
ssh -p 22222 a5admin@服务器IP
同时需要在防火墙或安全组中放行新端口,并确认新端口可以登录后,再关闭 22 端口。
不过要注意,改端口只能降低被普通扫描器命中的概率,不能代替真正的安全加固。专业扫描器仍然可能发现新端口,所以它必须和密钥登录、防火墙白名单、Fail2ban 等方案一起使用。
第四步:用防火墙限制 SSH 来源 IP
如果公司有固定办公网络、固定宽带 IP,或者管理员经常从固定地区登录,建议直接限制 SSH 只允许可信 IP 访问。
使用 UFW 的示例:
ufw allow from 管理员IP to any port 22222 proto tcp
ufw deny 22222/tcp
ufw enable
如果使用 firewalld,可以按区域或来源地址放行。这样做的好处是,攻击者即使知道 SSH 端口,也无法从非授权 IP 建立连接。
对于没有固定 IP 的用户,可以考虑使用 VPN、堡垒机、跳板机或面板安全入口,不建议长期把 SSH 完全暴露给公网。
第五步:安装 Fail2ban 自动封禁恶意 IP
Fail2ban 的作用是读取 SSH 日志,当某个 IP 在短时间内多次登录失败时,自动把它加入防火墙封禁列表。它非常适合处理 SSH 暴力破解这类高频尝试。
Ubuntu / Debian 安装:
apt update
apt install fail2ban -y
CentOS 安装:
yum install epel-release -y
yum install fail2ban -y
创建 SSH 防护配置:
vim /etc/fail2ban/jail.local
示例配置:
[sshd]
enabled = true
port = 22222
filter = sshd
maxretry = 5
findtime = 600
bantime = 3600
含义很简单:10 分钟内失败 5 次,就封禁 1 小时。对于攻击特别频繁的服务器,可以将 bantime 调高,例如 86400 秒,也就是封禁一天。
启动并设置开机自启:
systemctl enable fail2ban
systemctl start fail2ban
查看封禁状态:
fail2ban-client status sshd
Fail2ban 不能替代密钥登录,但可以有效减少日志污染和无效连接,让服务器登录入口更安静。
第六步:清理无用账户,避免隐藏入口
很多服务器被破解,并不是 root 密码太弱,而是系统里存在长期不用的测试账号、旧运维账号、默认账号。建议定期检查系统用户。
查看可登录用户:
cat /etc/passwd | grep /bin/bash
锁定不需要登录的用户:
usermod -L 用户名
或者将其 shell 改为不可登录:
usermod -s /usr/sbin/nologin 用户名
如果服务器曾经交给多人维护,尤其要检查是否存在陌生用户、异常 sudo 权限、异常 SSH 公钥。
查看 sudo 权限:
getent group sudo
查看用户 SSH 公钥:
cat /home/用户名/.ssh/authorized_keys
如果发现陌生公钥,不要急着删除后就算完成,还要继续检查计划任务、启动项、进程和外联连接,因为服务器可能已经被植入后门。
第七步:做好日志审计和异常告警
SSH 防护不是一次性配置完就结束。很多暴力破解是持续性的,今天封掉一批 IP,明天又会换一批 IP 继续尝试。因此,建议保留必要日志,并定期检查登录记录。
查看成功登录记录:
last
查看最近登录失败记录:
lastb
查看 SSH 服务日志:
journalctl -u ssh
如果是生产环境,可以进一步接入安全告警,例如登录成功邮件提醒、异常 IP 登录提醒、日志集中存储、WAF 或安全审计系统。对于企业后台、财务系统、客户管理系统等敏感业务,建议不要只依赖服务器本机日志,最好将日志同步到独立位置,避免服务器被入侵后日志被清空。
如果已经怀疑被破解,该怎么处理?
如果发现陌生用户、异常进程、CPU 被挖矿程序占满、SSH 登录记录异常,建议不要只改密码。正确处理顺序应该是:
先断开公网访问或限制 SSH 来源 IP,防止攻击者继续操作。
然后保留现场日志,包括 auth.log、secure、history、last、lastb、crontab、systemd 服务列表等。
接着检查异常进程、计划任务、启动项、公钥文件和外联连接。
如果确认已经被入侵,最稳妥的方式是备份业务数据后重装系统,再重新部署环境。因为被拿到 root 权限的服务器,单纯删除几个木马文件并不可靠,攻击者可能已经留下隐藏后门。
香港主机 SSH 加固建议清单
一台新交付的香港主机,建议按下面顺序处理:
创建普通管理用户,禁止 root 直接登录。
启用 SSH 密钥登录,关闭密码登录。
修改默认 SSH 端口,减少低级扫描。
使用防火墙限制 SSH 来源 IP。
安装 Fail2ban,自动封禁频繁失败的 IP。
清理无用账户和陌生公钥。
定期查看 last、lastb 和 SSH 日志。
重要业务增加异地备份和登录告警。
如果服务器上部署的是企业官网、跨境业务后台、客户系统或 API 服务,这些动作最好在网站上线前完成。否则等到业务跑起来之后再处理,既容易影响访问,也容易因为误操作导致远程连接中断。
总结
香港主机 SSH 频繁被暴力破解,并不一定说明服务器本身不安全,而是公网服务器都会长期暴露在自动化扫描环境中。真正的问题在于,SSH 是否仍然使用默认端口、是否允许 root 登录、是否开放密码认证、是否没有防火墙限制、是否缺少自动封禁机制。
对于 A5IDC 香港服务器这类适合企业建站、后台管理和轻量业务部署的配置来说,硬件性能和线路稳定只是基础,安全加固同样是长期稳定运行的一部分。服务器上线前,先把 SSH 登录入口收紧,再部署网站和业务程序,才是更稳妥的运维顺序。
简单来说,SSH 防暴力破解不要只靠一个复杂密码,而要做到“少暴露、强认证、能封禁、可审计、可恢复”。这样即使服务器每天面对大量扫描,也不容易被撞开入口,业务运行也会更稳定。