最近在折腾服务器的时候,看到日志里一堆红色的报错,心里一慌:"这提示是不是有人一直在暴力破解我的 root 密码?"

如果你也遇到了类似的情况,先别慌,这在 VPS 圈子里简直太常见了。只要你的服务器暴露在公网上,并且开启了 SSH 默认的 22 端口,那你就是全网扫描机器眼中的"肥羊"。今天我们就来聊聊,这种攻击到底是怎么回事,以及我们普通用户该怎么把自己这台小服务器加固成铁桶。

这种"爆破"到底是个啥?

SSH暴力破解日志截图

服务器日志中常见的SSH暴力破解记录,显示大量来自不同IP的登录失败尝试。

简单来说,这就是一场毫无技术含量的"广撒网"。黑客控制的僵尸网络会在互联网上疯狂扫描 IP,发现开放了 22 端口的服务器后,就会拿着字典(常见的密码库,比如 123456, password, root 等)疯狂尝试登录。

如果是单纯的密码错误,只要你的密码够复杂,他们理论上破解成功需要几百年。但怕就怕两点:一是你的密码设成了 admin123 这种弱口令,分秒被破;二是大量的攻击请求会占用你的 CPU 和带宽资源,导致服务器响应变慢,甚至被云服务商因为"对外发起/遭受异常攻击"而警告封锁。

所以,面对这种骚扰,我们不能坐视不理。

第一招:弃用密码,改用 SSH 密钥(最推荐)

这是防御暴力破解最彻底的方法,没有之一。密码是可以被猜出来的,但私钥几乎是不可被暴力破解的。

操作思路如下:

SSH密钥认证原理示意图

SSH密钥对工作原理:私钥保留在本地,公钥放置在服务器,实现免密安全登录。

  1. 在自己电脑上生成密钥对:如果你用的是 Windows,可以使用 PowerShell 或 Git Bash;如果是 Mac/Linux,直接打开终端。输入命令:
    ssh-keygen -t ed25519 -C "你的邮箱"
    
    ed25519 是目前公认更安全且性能更好的算法,如果老设备不支持,可以用 rsa -b 4096)。
  2. 把公钥上传到服务器:生成后,会有 id_ed25519(私钥,留在电脑)和 id_ed25519.pub(公钥,给服务器)。你可以用 ssh-copy-id 命令一键上传,或者手动把公钥内容复制到服务器的 ~/.ssh/authorized_keys 文件里。
  3. 关闭密码登录:这一步很多小白会忘,却是关键!修改服务器上的 /etc/ssh/sshd_config 文件,找到 PasswordAuthentication 这一项,把它改成 no
  4. 重启 SSH 服务systemctl restart sshd

做完这套操作,即使黑客知道你的密码也没用,因为服务器根本就不接受密码验证了。记得千万保管好你的私钥,丢了服务器可就真的进不去了(除非去云控制台用 VNC 救援模式)。

第二招:修改默认 SSH 端口

22 端口是攻击者的最爱,因为扫描全网的 22 端口效率最高。如果你把它改成 22222 或者其他高位端口,就能挡住 99% 的脚本小子。

修改步骤:

依然是编辑 /etc/ssh/sshd_config,找到 #Port 22,去掉注释,把 22 改成你想要的端口(比如 23456)。同时建议在这里保留一条 Port 22 作为备用,测试新端口没问题后再回来删掉,以免把自己关在门外。

记得去云服务商控制台的**安全组(防火墙)**里放行这个新端口,别光在系统里改了,外面墙堵着还是白搭。

第三招:安装 Fail2Ban 自动封禁

如果一定要用密码登录,或者想多加一道防线,那就必须上 Fail2Ban。它的作用很简单:监控日志,一旦发现某个 IP 连续几次登录失败,就直接在防火墙层面把它拉黑,比如封禁 1 小时或永久。

安装与配置(以 Debian/Ubuntu 为例):

  1. 安装apt install fail2ban
  2. 配置:新建一个配置文件 jail.local(不要改原文件,更新会被覆盖):
    [DEFAULT]
    bantime = 3600   # 封禁时间,秒
    findtime = 600   # 在这时间内失败多少次触发
    maxretry = 5     # 最大重试次数
    
    

[sshd] enabled = true port = ssh # 如果你改了端口,这里要改成具体的数字,比如 port = 23456 ``` 3. 启动systemctl start fail2bansystemctl enable fail2ban

你可以用 fail2ban-client status sshd 命令查看当前有多少倒霉蛋被封了。看着那一长串被封 IP 的列表,心里顿时就有安全感了。

总结

服务器遭遇 SSH 爆破就像住在大街上,总有人来试着拧你家门把手。

对于新手,我最推荐的组合拳是:SSH 密钥登录 + 修改默认端口。这两步做完,基本可以高枕无忧。如果你不想折腾密钥,至少也要保证密码极其复杂(16位以上大小写+数字+符号),并且把 Fail2Ban 跑起来。

别等到数据被删了才后悔,安全加固宜早不宜迟!

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭