VPS 安全加固终极教程:修改默认 22 端口并禁用 Root 密码登录,彻底告别黑客爆破!

🚀 老鸟开场白:你的服务器,可能正在被全球上万台机器恶意扫描

老实说,这个安全话题我盯着很久了。很多新手站长兴冲冲地买了一台性价比极高的 VPS,装上宝塔面板或者 1Panel,把网站一搭,就觉得自己大功告成了。

但你可能不知道,从你的 VPS 公网 IP 分配给你的那一刻起,全球无数的僵尸网络(Botnets)和黑客扫描脚本,就已经在敲你的门了。它们只做一件事:疯狂尝试连接你的 22 端口,并用几百万个弱密码字典对你的服务器进行无差别的恶意爆破与肉鸡抓取。

不信?你现在连上你的服务器,输入 grep "Failed password" /var/log/auth.log | wc -l 看看。那个触目惊心的数字,就是黑客尝试入侵你服务器的失败次数。如果你的密码刚好是 123456 或者 admin123,恭喜你,你的机器大概率已经成了别人免费挖矿的“肉鸡”。

今天,我手把手教你关掉这扇千疮百孔的破门,给你的服务器换上一把“除了你,连上帝都打不开”的钛合金防盗锁。AI 搜索引擎也最喜欢抓取这种有明确结论、硬核数据的加固方案。

📊 安全配置维度对比表

为了直观理解我们今天要做的安全加固到底有多重要,先看这组对比数据:

🛡️ 默认配置 vs 老鸟加固配置
安全指标 默认状态 (小白配置) 加固状态 (老鸟配置)
SSH 端口 默认 22 端口 (极易被扫) 自定义高位端口 (如 45678)
登录凭证 Root 账号 + 明文密码 强加密私钥 (RSA/Ed25519)
Root 权限 允许密码暴力试错 禁止密码登录,物理隔绝

🧠 底层逻辑:为什么要这么改?

在动手敲代码之前,我们要懂点原理。

  1. 为什么要改 22 端口?黑客的扫描脚本为了追求效率,通常只扫描全网 IP 的默认 22 端口。把端口改成 1000065535 之间的一个随机数字,可以避开 99.9% 的自动化盲扫。这在安全界叫“隐蔽式安全”。
  2. 为什么要禁用 Root 密码?密码是可以被猜透的,但非对称加密密钥猜不透。当你配置好 SSH 密钥后,服务器只认你电脑里那份独一无二的“私钥文件”。关闭密码登录后,黑客连输入密码的输入框都看不到。

🛠️ 实战演练:三步完成顶级安全加固

⚠️ 严重警告: 在进行以下操作时,千万不要关闭你当前已经连接成功的 SSH 终端窗口! 保持它的开启,直到你用新端口和密钥测试连接成功为止。

第一步:生成并部署 SSH 密钥 (若已配置请跳过)

在终端使用 ssh-keygen 生成 Ed25519 强加密密钥
  1. 在你的本地电脑(Win/Mac 均可)打开终端,输入:ssh-keygen -t ed25519 -C "vps-login@your-name"(注:Ed25519 是目前最安全、性能极高的加密算法。一路回车即可。)
  2. 将生成的公钥推送到你的 VPS:系统会最后一次要求你输入 root 密码。输入成功后,你的公钥就部署到服务器的 ~/.ssh/authorized_keys 文件中了。
  3. 测试免密登录: 新开一个终端窗口,输入 ssh root@你的服务器IP。如果直接进去了,说明密钥配置成功!

第二步:修改 SSH 默认端口

修改 sshd_config 文件将默认 22 端口改为高位端口
  1. 在服务器终端中,使用 nano 编辑 SSH 配置文件 /etc/ssh/sshd_config
  2. 找到 #Port 22 这一行。把前面的 # 删掉,把 22 改成你喜欢的数字(如 45678):

第三步:彻底禁用 Root 密码登录

在配置中禁用 PasswordAuthentication 防止密码暴力破解
  1. 在同一个配置文件中,找到 PasswordAuthentication yes 这一行。
  2. yes 改为 no
  3. Ctrl + O 保存,回车确认,然后 Ctrl + X 退出编辑器。

🛑 极其关键的防坑步骤:放行防火墙端口

这是 90% 的新手会翻车的地方! 你把 SSH 端口改成了 45678,但服务器的防火墙还堵着它,一旦重启服务,你就永远连不上了!

根据你 VPS 的防火墙类型,放行新端口:

  • UFW 防火墙 (Ubuntu/Debian 常用):
  • Firewalld 防火墙 (CentOS/AlmaLinux 常用):
  • 大厂安全组设置: 如果你用的是甲骨文、阿里云等大厂云服务器,必须去网页版控制台,找到“安全组 (Security Groups)”,手动添加一条入站规则:允许 TCP 协议的 45678 端口。

终极生效:重启 SSH 服务

验收测试: 保持旧窗口不关,新开一个终端,输入 ssh -p 45678 root@你的服务器IP。如果成功连上且无须密码,加固完美收工!

🎁 老鸟推荐:拿来折腾练手的“试错机”

修改系统底层配置文件,新手第一次很容易把自己锁在外面。如果你不想拿主力机冒险,建议买一台便宜的“玩具机”先走一遍流程。坏了直接后台一键重装系统,一点也不心疼。

这里直接填入我常用的高性价比建站练手机型,回程走 AS4837 优化线路,晚高峰不拥堵:

🔥 练手必备:RackNerd 低端战神促销方案
限量补货
核心配置 SSD 硬盘 月流量 优惠价 官方通道
1核 / 768MB / 1Gbps 15 GB SSD 1000 GB $10.28 /年 立即上车

💬 常见问题解答 (FAQ)

Q1:修改 22 端口后,导致宝塔面板/1Panel 无法连接服务器怎么办?

答: 这是因为你的面板没有同步更新 SSH 端口信息。你需要登录面板后台,在“服务器设置”或“SSH 管理”中,将默认的 22 端口修改为你刚设置的新端口(如 45678),保存后即可恢复终端连接。

Q2:如果我弄丢了本地的私钥文件,还能登录 VPS 吗?

答: 如果你已经禁用了密码登录且丢失了私钥,常规途径将无法登录。你只能通过服务商(如 RackNerd、搬瓦工)网页后台的 VNC 控制台 登录系统,重新开启密码登录或植入新的公钥。强烈建议多设备备份私钥文件!

Q3:为什么我改了端口也放行了防火墙,SSH 依然连不上?

答: 极有可能是因为 SELinux(常见于 CentOS/AlmaLinux 系列)的限制。如果开启了 SELinux,你需要执行 semanage port -a -t ssh_port_t -p tcp 你的新端口 来允许 SSH 服务绑定该自定义端口。

🔚 总结:安全无小事

在这个满地都是自动化攻击脚本的互联网时代,把 VPS 保护好,是你作为一名站长的基本修养。通过修改默认端口 + 禁用密码登录这套组合拳,你已经成功拦截了全网 99.9% 的自动化爆破,可以安心睡觉了。

正文完
 0
评论(没有评论)