VPS 到手先加固!一条命令全自动搞定 SSH 改端口、防火墙与 Fail2ban 防护

新购入 VPS 之后,第一件事永远是安全加固,任何业务部署都应该往后排。

由于 22 端口长期处于全网扫描和暴力破解的“重灾区”,一台未加固的默认配置 VPS 往往在几小时内就会被扫描上万次。过去手动执行安全加固流程(修改 sshd_config、新建 sudo 用户、变更 SSH 端口、配置 UFW 防火墙、部署 Fail2ban 等)既繁琐又容易遗漏关键配置。

通过开源工具 vps-security-hardening,只需在本地终端输入一条命令,即可全自动对远程 VPS 完成 7 层安全加固。

自动化安全加固包含的 7 层防护

该脚本通过 SSH 远程连接目标服务器,按顺序自动执行以下防御配置并进行最终有效性验证:

  1. SSH 基础连通性与系统更新:检查网络与 SSH 响应,自动更新系统软件包并补齐安全补丁。
  2. 新建普通 sudo 用户:创建指定的新用户并赋予 root/sudo 权限,禁用直接使用 root 用户登录。
  3. SSH 密钥认证与密码禁用:强制启用 SSH Key 密钥登录,全面关闭密码认证(PasswordAuthentication no)。
  4. 自定义 SSH 端口:将默认的 22 端口修改为高位自定义端口,避开绝大多数全网自动化扫描脚本。
  5. 部署 Fail2ban 防爆破:自动安装并配置 Fail2ban,对频繁尝试失败的恶意 IP 实施自动封禁。
  6. 配置 UFW 防火墙:开启 UFW,默认拦截所有入站流量,放行新 SSH 端口,并彻底删除默认的 22 端口规则。
  7. 修复 Docker 防火墙绕过漏洞:自动修正 Docker 默认接管 iptables 导致绕过 UFW 防火墙规则的安全隐患。

一键加固命令与使用条件

1. 前置准备

  • 厂商防火墙放行:前往 VPS 提供商(如 ConoHa、AWS、腾讯云等)的控制台,在安全组/云防火墙中提前放行你准备设置的新 SSH 端口。
  • 本地依赖安装:本地电脑需要安装 sshpass 工具(用于首次通过密码自动连接 VPS)。
    • macOS: brew install sshpass
    • Ubuntu/Debian: sudo apt install sshpass

2. 执行加固脚本

运行以下单条命令,替换为你自己的 VPS 参数:

Bash

./scripts/harden-vps.sh \
  --ip <VPS_IP> \
  --root-pass <ROOT_PASSWORD> \
  --user <NEW_USER> \
  --user-pass <NEW_USER_PASSWORD> \
  --port <SSH_PORT>

开源协议:MIT License

适用系统:Debian / Ubuntu 系列 VPS

发表评论