上一篇 下一篇 分享链接 返回 返回顶部

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

发布人:Minchunlin 发布时间:2026-06-10 09:45 阅读量:268

很多用户租用香港主机后,系统刚上线没多久,就会在安全日志里看到大量 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 防暴力破解不要只靠一个复杂密码,而要做到“少暴露、强认证、能封禁、可审计、可恢复”。这样即使服务器每天面对大量扫描,也不容易被撞开入口,业务运行也会更稳定。

目录结构
全文