INCOGNITO VPS
security 10 分钟阅读 更新于 July 17, 2026

加固新VPS

回答

加固新VPS大约需二十分钟:禁用密码和root SSH登录,启用仅密钥认证,配置nftables默认拒绝入站,启用无人值守安全升级,并安装fail2ban。这五个步骤消除绝大多数现实妥协。

实际上什么导致服务器沦陷

不是零日漏洞。实际是:SSH密码暴力破解针对弱凭据、数月未修补的服务、暴露的默认密码管理员面板,以及操作者安装的应用程序漏洞。这列表很无聊,但十五年来未曾改变。

下方的清单按每一步每分钟去除风险量排序。按顺序执行,若失去耐心可停止——您仍将去除大部分风险。

第1步——仅SSH密钥

这一改动可彻底消除最常见的攻击方式。生成一个 Ed25519 密钥,将公钥上传,然后编辑 /etc/ssh/sshd_config,设置 PasswordAuthentication noPermitRootLogin prohibit-passwordKbdInteractiveAuthentication no

在关闭第一个终端之前,先在第二个终端中测试密钥。把自己锁在外面虽然尴尬,但通过控制台访问可以完全恢复——不过还是按正确顺序操作吧。

第 2 步 — 默认拒绝的防火墙

在较新的 Debian 和 Ubuntu 上使用 nftables,在 RHEL 衍生版上使用 firewalld。默认拒绝入站,允许已建立和相关连接,允许 SSH 端口,允许工作负载实际需要的端口,其他一概拒绝。

重要的原则是“其他一概拒绝”是关键所在。如果在调试时添加了允许规则但从未移除,那么这个防火墙就没有起到任何作用。

  • 默认策略:丢弃入站,接受出站
  • 接受已建立和相关连接
  • 接受回环接口
  • 接受 SSH 端口,最好有速率限制
  • 明确列出工作负载端口并接受
  • 接受 ICMP 回显 — 不要破坏路径 MTU 发现

第 3 步 — 自动安全更新

在 Debian 和 Ubuntu 上使用 unattended-upgrades,在 RHEL 衍生版上使用 dnf-automatic,仅配置安全更新。大多数入侵都是利用几个月前已修补的漏洞。

如果工作负载允许,请在维护窗口内启用自动重启。内核更新在重启前不会生效,一台运行 400 天且有 11 个未修复内核 CVE 的服务器并不是荣誉的象征。

第 4 步 — fail2ban 及其真正价值说明

在密码认证已禁用的情况下,fail2ban 阻止的实际入侵相对较少。它真正的作用是大幅减少日志噪音,这一点很重要,因为充满数千次失败尝试的日志没人会读,而没人读的日志正是真实入侵数周不被发现的根源。

默认的 sshd 监狱就足够了。为其他暴露在互联网上的服务添加监狱。

第 5 步 — 减少攻击面

运行 ss -tlnp 检查正在监听的端口。在默认安装中,这通常包括您不知道在运行且不需要的服务。卸载它们,而不是用防火墙拦截——未安装的软件没有漏洞。

将仅需本地访问的服务绑定到 127.0.0.1,而不是 0.0.0.0。监听所有接口的数据库,即使有防火墙,也可能因一次配置错误而暴露给公网。

哪些操作可以跳过

更改 SSH 端口可以減少日志噪音,但对针对性攻击毫无作用。如果您愿意可以这样做,但不要将其视为安全措施。端口敲门增加了复杂性,收益甚微。入侵检测系统在单台服务器上会产生无人处理的警报。

如果您想在上述五个步骤之外再增加一个有意义的步骤,那就是在不同司法管辖区进行加密的异地备份,并通过实际恢复来测试。恢复能力比多一层防护更有价值。

FAQ

常见问题

01 更改 SSH 端口值得吗?

对于减少日志噪音来说,值得。但对于安全,不值得——它只能阻止机会主义扫描器,对针对性攻击毫无作用。如果您喜欢更安静的日志,可以这样做,但不要将其视为一项控制措施。

02 如果使用 SSH 密钥,还需要 fail2ban 吗?

对于直接安全来说,几乎不需要。但对于日志卫生,需要——成千上万次失败尝试会让日志不可读,而不可读的日志正是真实入侵不被发现的根源。

03 我应该启用自动重启吗?

如果工作负载允许,应该在维护窗口内启用。内核补丁在重启前不会生效。长时间运行但存在未修复内核 CVE 是负债,而不是成就。

相关

55 秒部署

选择一个司法管辖区。用加密货币支付。一分钟内即可运行。

无需创建账户、确认电子邮件或输入信用卡。