如何保障全新 VPS 的安全

如何保障全新 VPS 的安全


介绍

你的 brand new VPS 刚到手,一切只有一个 IP、一个用户名和一个密码。接下来该干什么?

本指南将带你从零开始强化 VPS 安全,从用户管理、SSH 配置,到防火墙设置,再到几项实用自动化脚本,全面构建一个安全可控的环境。示例基于 Ubuntu 发行版,并假定你使用的是那种需要自行完成大部分配置的廉价 VPS。若你在阿里云等大厂云平台上操作,部分步骤可能已被预先优化或省略。


保障访问安全

第一步:更新系统

  1. 使用提供的凭据 SSH 登录到 VPS:

    ssh root@**.**.**.**
    

    root 和 IP 替换为你的信息,输入密码登录。

  2. 登录后,更新软件包列表并升级已安装的软件:

    sudo apt update
    sudo apt upgrade
    

    确保你使用的是所有软件的最新安全版本。

创建非 root 用户

  1. 如果你是以 root 身份登录,务必为日常操作新建一个普通用户:

    sudo adduser username
    

    username 换成你喜欢的用户名,按提示为该用户设置密码(其他信息可直接回车跳过)。

  2. 将新用户加入 sudo 组:

    sudo usermod -aG sudo username
    
  3. 切换到新用户并验证 sudo 权限:

    su - username
    sudo whoami
    

    若输出 root,说明配置成功。


配置 SSH 密钥认证

生成并部署密钥对

  1. 在本地生成 Ed25519 密钥对:

    ssh-keygen -t ed25519 -C "email@example.com"
    

    按回车接受默认存储路径,可选填入密钥口令。

  2. 将公钥上传到 VPS:

    ssh-copy-id -i ~/.ssh/ed25519.pub username@**.**.**.**
    
  3. 测试免密登录,并禁用密码认证:

    ssh -i ~/.ssh/ed25519 -o PasswordAuthentication=no username@**.**.**.**
    
  4. 为简化使用,将密钥添加到本地 SSH agent:

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/ed25519
    

    以后就能直接 ssh username@**.**.**.** 连接了。

(可选)添加快捷别名

编辑 ~/.bashrc~/.zshrc,加入:

alias ssh-vps='ssh username@**.**.**.**'

保存后执行 source ~/.bashrc(或对应文件),即可通过 ssh-vps 快速连接。


禁用密码登录与 root 登录

  1. 用新用户登录 VPS:

    ssh username@**.**.**.**
    
  2. 编辑 SSH 配置文件:

    sudo vim /etc/ssh/sshd_config
    
  3. 修改或添加以下条目:

    PermitRootLogin no
    ChallengeResponseAuthentication no
    PasswordAuthentication no
    UsePAM no
    
  4. 保存并重载 SSH 服务:

    sudo service sshd reload
    
  5. 确认 root 登录已被禁止:

    ssh root@**.**.**.**
    

    应返回 “Permission denied”。

:warning: 注意:务必先完成非 root 用户与密钥认证的配置,否则可能将自己永远锁在服务器之外。


强化服务器防护

配置防火墙(UFW)

  1. 安装 UFW:

    sudo apt install ufw
    
  2. 确保 OpenSSH 已被允许,以免断开连接:

    sudo ufw allow OpenSSH
    sudo ufw status verbose
    
  3. 设置默认策略:

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
  4. (若部署 Web 服务)允许 HTTP/HTTPS:

    sudo ufw allow 'Nginx Full'
    
  5. 启用防火墙:

    sudo ufw enable
    
  6. 再次检查状态,确认规则生效:

    sudo ufw status verbose
    

安装并配置 Fail2Ban

  1. 安装 Fail2Ban:

    sudo apt install fail2ban
    
  2. 复制并编辑配置:

    cd /etc/fail2ban
    sudo cp jail.conf jail.local
    sudo vim jail.local
    
  3. [sshd] 段启用并设为 “aggressive” 模式:

    [sshd]
    enabled = true
    mode    = aggressive
    
  4. 设置开机自启并启动服务:

    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    
  5. 验证运行状态:

    sudo systemctl status fail2ban
    

    若你想测试,可以从另一台机器故意输错多次密码,确认 IP 被暂时封禁(默认 10 分钟)。


自动化安全更新

安装 unattended-upgrades

  1. 安装并检查状态:

    sudo apt install unattended-upgrades
    sudo systemctl status unattended-upgrades
    
  2. (可选)自动重启以应用内核更新。编辑 /etc/apt/apt.conf.d/50unattended-upgrades,将:

    Unattended-Upgrade::Automatic-Reboot "false";
    

    改为

    Unattended-Upgrade::Automatic-Reboot "true";
    
  3. 重载服务:

    sudo systemctl reload unattended-upgrades
    

    之后,系统会自动下载并安装安全补丁。

:warning: 注意:自动重启会中断所有服务,只有在你能接受短暂停机时才开启此功能。


总结:打造坚不可摧的 VPS

恭喜你完成以下操作:

  • 升级并维护最新软件版本
  • 禁用 root 和密码登录,仅使用密钥认证
  • 配置防火墙仅开放必要端口
  • 安装 Fail2Ban 自动封禁恶意访问
  • 启用自动安全补丁更新

现在,你的 VPS 已从一台“裸机”进化为一个加固的、安全的环境,随时可以放心部署你的服务。

祝你托管愉快且安全!