如何保障全新 VPS 的安全
介绍
你的 brand new VPS 刚到手,一切只有一个 IP、一个用户名和一个密码。接下来该干什么?
本指南将带你从零开始强化 VPS 安全,从用户管理、SSH 配置,到防火墙设置,再到几项实用自动化脚本,全面构建一个安全可控的环境。示例基于 Ubuntu 发行版,并假定你使用的是那种需要自行完成大部分配置的廉价 VPS。若你在阿里云等大厂云平台上操作,部分步骤可能已被预先优化或省略。
保障访问安全
第一步:更新系统
-
使用提供的凭据 SSH 登录到 VPS:
ssh root@**.**.**.**
将
root
和 IP 替换为你的信息,输入密码登录。 -
登录后,更新软件包列表并升级已安装的软件:
sudo apt update sudo apt upgrade
确保你使用的是所有软件的最新安全版本。
创建非 root 用户
-
如果你是以 root 身份登录,务必为日常操作新建一个普通用户:
sudo adduser username
将
username
换成你喜欢的用户名,按提示为该用户设置密码(其他信息可直接回车跳过)。 -
将新用户加入 sudo 组:
sudo usermod -aG sudo username
-
切换到新用户并验证 sudo 权限:
su - username sudo whoami
若输出
root
,说明配置成功。
配置 SSH 密钥认证
生成并部署密钥对
-
在本地生成 Ed25519 密钥对:
ssh-keygen -t ed25519 -C "email@example.com"
按回车接受默认存储路径,可选填入密钥口令。
-
将公钥上传到 VPS:
ssh-copy-id -i ~/.ssh/ed25519.pub username@**.**.**.**
-
测试免密登录,并禁用密码认证:
ssh -i ~/.ssh/ed25519 -o PasswordAuthentication=no username@**.**.**.**
-
为简化使用,将密钥添加到本地 SSH agent:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/ed25519
以后就能直接
ssh username@**.**.**.**
连接了。
(可选)添加快捷别名
编辑 ~/.bashrc
或 ~/.zshrc
,加入:
alias ssh-vps='ssh username@**.**.**.**'
保存后执行 source ~/.bashrc
(或对应文件),即可通过 ssh-vps
快速连接。
禁用密码登录与 root 登录
-
用新用户登录 VPS:
ssh username@**.**.**.**
-
编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
-
修改或添加以下条目:
PermitRootLogin no ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no
-
保存并重载 SSH 服务:
sudo service sshd reload
-
确认 root 登录已被禁止:
ssh root@**.**.**.**
应返回 “Permission denied”。
注意:务必先完成非 root 用户与密钥认证的配置,否则可能将自己永远锁在服务器之外。
强化服务器防护
配置防火墙(UFW)
-
安装 UFW:
sudo apt install ufw
-
确保 OpenSSH 已被允许,以免断开连接:
sudo ufw allow OpenSSH sudo ufw status verbose
-
设置默认策略:
sudo ufw default deny incoming sudo ufw default allow outgoing
-
(若部署 Web 服务)允许 HTTP/HTTPS:
sudo ufw allow 'Nginx Full'
-
启用防火墙:
sudo ufw enable
-
再次检查状态,确认规则生效:
sudo ufw status verbose
安装并配置 Fail2Ban
-
安装 Fail2Ban:
sudo apt install fail2ban
-
复制并编辑配置:
cd /etc/fail2ban sudo cp jail.conf jail.local sudo vim jail.local
-
在
[sshd]
段启用并设为 “aggressive” 模式:[sshd] enabled = true mode = aggressive
-
设置开机自启并启动服务:
sudo systemctl enable fail2ban sudo systemctl start fail2ban
-
验证运行状态:
sudo systemctl status fail2ban
若你想测试,可以从另一台机器故意输错多次密码,确认 IP 被暂时封禁(默认 10 分钟)。
自动化安全更新
安装 unattended-upgrades
-
安装并检查状态:
sudo apt install unattended-upgrades sudo systemctl status unattended-upgrades
-
(可选)自动重启以应用内核更新。编辑
/etc/apt/apt.conf.d/50unattended-upgrades
,将:Unattended-Upgrade::Automatic-Reboot "false";
改为
Unattended-Upgrade::Automatic-Reboot "true";
-
重载服务:
sudo systemctl reload unattended-upgrades
之后,系统会自动下载并安装安全补丁。
注意:自动重启会中断所有服务,只有在你能接受短暂停机时才开启此功能。
总结:打造坚不可摧的 VPS
恭喜你完成以下操作:
- 升级并维护最新软件版本
- 禁用 root 和密码登录,仅使用密钥认证
- 配置防火墙仅开放必要端口
- 安装 Fail2Ban 自动封禁恶意访问
- 启用自动安全补丁更新
现在,你的 VPS 已从一台“裸机”进化为一个加固的、安全的环境,随时可以放心部署你的服务。
祝你托管愉快且安全!