逐步保护新的 Ubuntu VPS
要保护新的 Ubuntu VPS,应更新系统、创建独立的管理员账户、验证基于密钥的 SSH 访问、限制暴露服务、启用主机防火墙,并安排监控和备份。按顺序完成每项更改,始终保留服务商控制台访问;在第二个连接成功前绝不要关闭原始 SSH 会话。
关键信息
- 适用范围
- 使用 systemd 与 OpenSSH 的受支持 Ubuntu Server 版本
- 首要保障
- 保留控制台访问并测试第二个会话
- 认证方式
- 独立用户账户配合受本地口令保护的 SSH 密钥
- 恢复措施
- 独立备份并验证恢复
更改访问前先更新并检查
只有平台提供该功能且您明白它并非独立备份时,才创建服务商快照。按照文档所述初始方式登录,确认操作系统镜像,然后先执行 sudo apt update,再执行 sudo apt full-upgrade 来应用软件源更新。接受配置文件替换前仔细阅读提示;若内核或核心组件要求,请运行 sudo reboot。
重新连接后用 sudo ss -tulpn 盘点监听服务。每个公开监听端口都应有明确负责人和用途。最小化 Ubuntu 云镜像可能不同于安装镜像,因此不要假定哪些服务已经启用。安装应用技术栈前记录基线。
- 仅使用您明确信任的软件源和密钥。
- 确认并非依赖后再移除不用的软件。
- 把更新设为持续安排,不要让首次升级成为一次性事件。
创建独立管理员账户并验证 SSH 密钥
运行 sudo adduser deploy 创建独立账户,并把 deploy 换成您选择的名称;随后用 sudo usermod -aG sudo deploy 授予管理权限。把 SSH 密钥的公开部分加入该用户的 ~/.ssh/authorized_keys;可使用服务商的密钥功能或 ssh-copy-id。绝不要上传私钥文件。
打开第二个终端并测试 ssh deploy@SERVER_IP,确认 sudo -v 正常。只有测试成功后才考虑关闭直接 root 登录与密码登录。用 sudoedit /etc/ssh/sshd_config.d/60-local-hardening.conf 编辑附加配置,设置 PermitRootLogin no 和 PasswordAuthentication no;先以 sudo sshd -t 验证,再运行 sudo systemctl reload ssh。保留原会话并再次测试。
- 明确替换所有示例名称和地址。
- 使用本地口令与密码管理器或安全代理。
- 验证失败时修复文件,不要重载 SSH。
只允许必要的网络服务
Ubuntu 的 UFW 是便利的主机防火墙界面。先确认 SSH 服务使用预期端口,再以 sudo ufw allow OpenSSH 放行;若您有意更换端口,则创建对应规则。用 sudo ufw status verbose 检查拟议状态,以 sudo ufw enable 启用,并在关闭旧终端前从新终端验证访问。
只有应用服务安装完成且准备就绪后才开放端口。Web 服务器通常需要 TCP 80 和 443,但不存在通用清单。服务商防火墙与 UFW 可以互补;应把两者都记录下来,让事件处理人员知道哪一层阻断了流量。
- 远程启用默认拒绝规则前,必须先设置 SSH 放行规则。
- 将私有数据库绑定到本地或私有接口。
- 部署软件后再次运行
sudo ss -tulpn。
把加固变成日常运维
使用 sudo apt install unattended-upgrades 安装并检查自动安全更新,再按维护和重启政策配置。监控磁盘、内存、认证失败、服务健康、证书到期以及备份结果。不要在缺少认证和网络限制时暴露监控代理。
创建独立、带版本的备份,并恢复到隔离测试系统。将恢复码与控制台说明同 VPS 分开保存。安全设置会变化,因此上线前请把这份通用清单与当前 Ubuntu 文档及应用需求对照。
- 定期审核管理员账户和密钥。
- 除了操作系统,也要及时修补应用。
- 删除任何登录方式前先记录恢复路径。
来源
常见问题
是否应该更换 SSH 端口?
这可以减少常规扫描噪声,但不能替代密钥认证、补丁、访问控制和监控。如果更换,请更新每一层防火墙,并在结束会话前测试。
可以立即关闭 root 登录吗?
只有独立用户账户能够用密钥认证、取得所需 sudo 权限并在单独会话中重新连接后才可以。请保留控制台恢复能力。
UFW 足以保护 VPS 吗?
不足。防火墙只限制网络可达性,不能修补漏洞软件、保护被盗凭据、修复应用逻辑,也不能替代备份。