
购买 VPS 后的第一步不是部署应用,而是安全加固。很多新手用户在服务器上线几天后才发现被暴力破解或植入挖矿程序。本文将提供一份面向 Ubuntu 24.04 的完整安全清单,涵盖 SSH 密钥登录、防火墙配置、Fail2ban 防爆破、自动安全更新、备份策略等核心步骤,并介绍如何利用 AI 工具(如 Claude Code、Cursor)辅助完成这些操作——但前提是,你必须理解每一条命令的作用,而不是盲目复制。
适用读者与前提条件
- 你已通过某商家购买了一台 Ubuntu 24.04 VPS(例如 Vultr、RackNerd 或 InterServer)。
- 你拥有 root 权限,并能够通过 SSH 连接到服务器。
- 你具备基本的 Linux 命令行操作能力(cd、nano、systemctl 等)。
- 本文所有命令均在 Ubuntu 24.04 LTS 下测试通过,其他发行版可能需要调整。
如果你还没选好 VPS,可以查看 UltraVPS 深度评测 或 RackNerd VPS 评测 了解各商家的安全特性。
加固前准备:检查当前状态与备份

在对 VPS 进行任何重大更改之前,应当先记录当前状态。建议执行以下操作:
- 创建快照:如果你的 VPS 面板支持快照(如 Vultr),先拍一张快照,以便回滚。
- 检查当前 SSH 登录方式:确认是否已设置 root 密码登录,记录当前 SSH 端口(默认22)。
- 检查已安装的软件:
dpkg -l | grep -E "openssh|ufw|fail2ban"。 - 备份关键配置文件:
cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.bak
注意:如果使用 AI 工具辅助,可以要求 Claude Code 解释当前配置文件中各项参数的含义,不要让它直接修改。
第一步:使用 SSH 密钥登录替代密码

为什么需要 SSH 密钥
密码登录极易被暴力破解。SSH 密钥使用非对称加密,攻击者即使获得公钥也无法反推出私钥。
操作步骤
- 在本地计算机生成密钥对(如尚未拥有):
ssh-keygen -t ed25519 -C "your_email@example.com"
建议设置 passphrase 以增加一层保护。
- 将公钥复制到 VPS:
ssh-copy-id root@你的VPS_IP
如果没有 ssh-copy-id,也可以手动将公钥内容追加到 ~/.ssh/authorized_keys。
- 测试密钥登录成功后,再禁用密码登录。
禁用密码登录
编辑 /etc/ssh/sshd_config,修改或添加以下行:
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
修改后重启 SSH 服务:
systemctl restart sshd
AI 辅助建议:让 Claude Code 检查
sshd_config语法:sshd -t。它可以解释每条指令的作用,帮你理解为什么这么改。
第二步:更改默认 SSH 端口
将 SSH 端口从 22 改为一个高位端口(如 22022),可以大幅减少扫描日志中的攻击尝试。
编辑 /etc/ssh/sshd_config,将 #Port 22 修改为:
Port 22022
(选择一个大于 1024 且未被占用的端口,避免与常见服务冲突。)
重启 SSH 后,务必在防火墙中允许新端口,然后再关闭 22 端口。不要关闭旧端口前断开当前 SSH 连接,否则可能被锁在外面。
第三步:配置 UFW 防火墙
UFW(Uncomplicated Firewall)是 Ubuntu 默认的前端防火墙工具。
基本配置
# 设置默认策略
ufw default deny incoming
ufw default allow outgoing
# 允许 SSH(使用刚才设置的新端口)
ufw allow 22022/tcp comment 'SSH'
# 根据需要允许 HTTP/HTTPS(如果在 VPS 上运行网站)
ufw allow 80/tcp
ufw allow 443/tcp
# 启用防火墙
ufw enable
# 查看状态
ufw status verbose
注意:如果启用了 Fail2ban,你可以让 Fail2ban 动态管理规则,但基础防火墙仍然必要。
第四步:安装并配置 Fail2ban 防爆破
Fail2ban 通过监控日志文件,自动将多次失败的 IP 加入临时黑名单。
安装
apt update
apt install fail2ban -y
配置
复制默认配置文件:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑 /etc/fail2ban/jail.local,确保 [DEFAULT] 部分包含:
bantime = 3600
findtime = 600
maxretry = 5
启用 SSH 保护:
[sshd]
enabled = true
port = ssh,22022
注意:如果你更改了 SSH 端口,必须在 Fail2ban 配置中指定新端口,否则它仍会监控 22 端口,导致错误。
重启 Fail2ban:
systemctl restart fail2ban
查看状态
fail2ban-client status sshd
第五步:配置自动安全更新
Ubuntu 的 unattended-upgrades 包可以自动安装安全更新,减少手动维护成本。
安装与启用
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
执行后者时选择“是”,会自动创建配置文件。你也可以手动编辑 /etc/apt/apt.conf.d/50unattended-upgrades,确保以下内容未被注释:
"origin=Ubuntu,archive=${distro_codename}-security";
设置自动重启
安全更新有时需要重启系统。如果 VPS 是业务关键,建议手动重启;如果允许,可以启用自动重启:
sed -i 's|//Unattended-Upgrade::Automatic-Reboot "false";|Unattended-Upgrade::Automatic-Reboot "true";|' /etc/apt/apt.conf.d/50unattended-upgrades
第六步:创建普通用户并限制权限
长期使用 root 账户运维存在风险。建议创建一个普通用户,并授予 sudo 权限,日常操作使用该用户。
adduser yourusername
usermod -aG sudo yourusername
然后将你的 SSH 公钥也添加到该用户的 ~/.ssh/authorized_keys 中,并确保该用户目录权限为 700。
最小权限原则:只给用户必需的权限。如果未来有多个用户,可使用 groups 和 sudoers 文件精细控制。
第七步:配置日志与监控
日志审计
启用 auditd 可以记录系统调用,检测可疑行为:
apt install auditd -y
systemctl enable auditd
systemctl start auditd
资源监控
安装 htop、vnstat、netstat 等基础工具,定期检查 CPU、内存、网络流量异常。
AI 辅助:可以请 Claude Code 编写简单的监控脚本,例如每天通过邮件发送关键指标,但不要直接在生产环境执行未审查的脚本。
第八步:可选高级加固方案
使用 Tailscale 替代公网端口
Tailscale 基于 WireGuard 构建,可以创建 Zero Trust 网络。安装 Tailscale 后,只需在节点之间通过可信网络通信,可以将 SSH、数据库等端口完全隐藏在公网之后。
配置 SSH 双重验证(2FA)
通过 google-authenticator 可以为 SSH 登录增加 TOTP 二次认证,但要注意与自动化部署工具(如 Ansible)兼容性。
第九步:定期备份策略
手动备份
利用 rsync 将关键数据同步到另一个位置(如另一个 VPS、对象存储)。
自动化备份
可使用 cron 定时执行 rsync 或 duplicity。建议至少每日备份数据库和用户目录,每周全量备份。
第十步:测试与验证
- 从外部扫描你的 VPS:
nmap -p- yourVPSIP,仅开放必要的端口。 - 模拟暴力破解:用错误的密码连接多次,检查 Fail2ban 是否生效。
- 检查自动更新日志:
grep -i "installed" /var/log/unattended-upgrades/unattended-upgrades.log
AI 辅助运维:正确的工作流
可以做
- 让 Claude Code 解释配置文件中参数的含义。
- 请求 AI 生成配置文件的注释版本。
- 使用 AI 审查你写好的脚本(例如
ufw_status.sh),检查语法错误。 - 让 AI 帮你梳理报错日志中的关键信息。
不可以做
- 不要直接复制 AI 给出的命令并执行,尤其是包含
rm -rf、chmod 777、ufw disable等潜在危险操作。 - 不要将敏感信息(如私钥、密码)直接粘贴给 AI。
- 不要依赖 AI 做安全决策,最终责任在管理员。
常见错误与避坑指南
| 错误操作 | 后果 | 正确做法 |
|---|---|---|
| 忘记放开新 SSH 端口就重启 SSH | 自己被锁在 VPS 外 | 先测试新端口连接成功后再删除旧端口;使用面板的 VNC 控制台作为逃生手段 |
| 直接复制 Fail2ban 示例配置 | 可能匹配不到新端口,失效 | 在 [sshd] 中明确 port 为你设置的端口 |
| 启用 UFW 后未允许必要端口 | 网站无法访问 | 先开放端口再 ufw enable |
| 跳过创建普通用户 | root 密码泄露导致完全沦陷 | 务必创建 sudo 用户并仅使用 sudo 日常操作 |
| 让 AI 自动修改系统配置 | 可能导致不可逆故障 | 手动执行每条命令前先确认 |
结论
通过以上十个步骤,你的 Ubuntu 24.04 VPS 已经具备基本的安全防护能力。安全加固不是一次性任务,而是一个持续过程:定期检查日志、更新策略、监控异常行为。
如果你正计划购买一台新的 VPS,建议选择提供快照功能、自带防火墙、支持一键安全配置的商家。例如 Vultr 提供免费快照和自动备份;RackNerd 的低价 VPS 也支持基础安全设置。阅读 InterServer VPS 值得买吗? 了解其安全特性。
立即行动:根据本文清单,花 30 分钟为你的 VPS 完成加固。如果中途遇到问题,可以查阅本文提到的 AI 辅助工作流快速排查。你的服务器安全,从今天开始。
原创文章,作者:dakule,如若转载,请注明出处:https://dakule.com/content/1092.html
