新购 CN2 VPS 初始安全加固的核心是限制 root 直接登录、配置 SSH 密钥认证并启用主机防火墙。适用场景为所有基于 Linux 的云服务器,主要风险边界是配置错误可能导致无法远程连接,操作前务必保留当前会话直到新连接验证成功。
先说结论:CN2 线路仅优化网络路由,安全加固步骤与普通 Linux VPS 一致,必须优先建立非 root 用户和密钥认证。
- 先判断:确认当前 SSH 连接稳定,且拥有 VPS 控制台(VNC/Reset Password)权限以防锁死。
- 优先做:创建 sudo 用户、禁用 root 密码登录、开放 SSH 端口后启用防火墙。
- 再验证:新开终端窗口测试新用户登录,确认无误后再关闭旧会话。
命令速用版
以下命令适用于 Ubuntu/Debian 系统,CentOS 请将 apt 替换为 yum 或 dnf,防火墙命令替换为 firewall-cmd。
# 更新系统补丁
apt update && apt upgrade -y
# 创建新用户并赋予 sudo 权限
adduser newadmin
usermod -aG sudo newadmin
# 生成 SSH 密钥(在本地电脑执行)
ssh-keygen -t ed25519
# 启用防火墙并放行 SSH
ufw allow 22/tcp
ufw enable
# 重启 SSH 服务
systemctl restart sshd为什么会这样
安全加固的本质是减少攻击面,防止自动化脚本暴力破解 root 密码。CN2 VPS 虽然网络延迟低,但暴露在公网的 IP 同样会被全球扫描器探测,默认开放的 22 端口和 root 登录权限是最高风险点。禁用 root 登录能强制攻击者先猜测用户名再猜测密码,大幅增加爆破难度。启用防火墙则默认拒绝所有未明确允许的入站连接,防止未知服务端口暴露。
分步处理
按顺序执行以下步骤,每步完成后需确认无误再进行下一步,切勿一次性全部执行后重启。
1. 系统更新与基础清理
登录 VPS 后首先更新软件源和安全补丁,修复已知漏洞。检查当前登录用户,确保不是必须长期使用的 root 账户。
2. 创建受限管理用户
使用 adduser 命令创建新用户,将其加入 sudo 组。测试新用户能否使用 sudo 执行命令,确认权限配置正确。
3. 配置 SSH 密钥认证
在本地生成密钥对,将公钥上传至 VPS 的~/.ssh/authorized_keys。修改本地 SSH 客户端配置,指定使用该密钥连接新用户。
4. 修改 SSH 服务端配置
编辑/etc/ssh/sshd_config 文件,设置 PermitRootLogin no 和 PasswordAuthentication no。修改前确保新用户的密钥登录已测试成功。
5. 配置主机防火墙
启用 UFW 或 Firewalld,默认策略设为 deny incoming。明确允许 SSH 端口(默认 22 或自定义端口)和必要的业务端口(如 80/443)。
怎么验证是否生效
验证的核心是确认新配置不影响正常连接,且旧的不安全路径已阻断。
1. 检查防火墙状态
执行 ufw status verbose 或 firewall-cmd `--list-all`,确认状态为 active 且 SSH 端口在 allow 列表中。
2. 检查 SSH 监听端口
使用 ss -tlnp | grep ssh 确认 SSH 服务正在运行且监听预期端口。
3. 测试 root 密码登录
新开一个终端窗口,尝试使用 root 账号和密码登录,预期结果应为 Permission denied 或连接被拒绝。
4. 测试新用户密钥登录
使用 ssh newadmin@ip 命令,预期结果应为无需密码直接登录。
常见坑
操作过程中最容易导致服务器失联的错误是防火墙规则未放行 SSH 端口就启用了防火墙。在修改 sshd_config 禁用密码登录前,如果密钥配置错误,会导致无法进入系统。修改配置后不要立即关闭当前 SSH 会话,应保留该窗口直到新窗口验证成功。如果修改了 SSH 端口,必须在防火墙规则中同时放行新端口,否则启用防火墙后无法连接。
常见问题
可以直接修改 SSH 端口来增加安全吗?
可以但不是必须,修改端口能减少日志中的自动化扫描噪音,但不能替代密钥认证和防火墙。如果修改端口,务必先在防火墙放行新端口,再重启 SSH 服务。
CentOS 和 Ubuntu 防火墙命令有什么区别?
Ubuntu 默认使用 UFW,命令简单直观;CentOS 默认使用 Firewalld,基于 zone 管理。两者效果一致,根据系统版本选择对应工具,不要混用。
配置错了导致连不上怎么办?
使用云服务商提供的网页控制台(VNC/Console)登录服务器,还原/etc/ssh/sshd_config 配置或关闭防火墙服务后重启 SSH。
参考来源
- Ubuntu Security Guide, "Secure SSH", https://ubuntu.com/server/docs/service-openssh
- OpenSSH Documentation, "sshd_config", https://man.openbsd.org/sshd_config
- CIS Benchmarks, "Linux CIS Benchmark", https://www.cisecurity.org/benchmark/ubuntu_linux