新购入 VPS 之后,第一件事永远是安全加固,任何业务部署都应该往后排。
由于 22 端口长期处于全网扫描和暴力破解的“重灾区”,一台未加固的默认配置 VPS 往往在几小时内就会被扫描上万次。过去手动执行安全加固流程(修改 sshd_config、新建 sudo 用户、变更 SSH 端口、配置 UFW 防火墙、部署 Fail2ban 等)既繁琐又容易遗漏关键配置。
通过开源工具 vps-security-hardening,只需在本地终端输入一条命令,即可全自动对远程 VPS 完成 7 层安全加固。
自动化安全加固包含的 7 层防护
该脚本通过 SSH 远程连接目标服务器,按顺序自动执行以下防御配置并进行最终有效性验证:
- SSH 基础连通性与系统更新:检查网络与 SSH 响应,自动更新系统软件包并补齐安全补丁。
- 新建普通 sudo 用户:创建指定的新用户并赋予 root/sudo 权限,禁用直接使用 root 用户登录。
- SSH 密钥认证与密码禁用:强制启用 SSH Key 密钥登录,全面关闭密码认证(PasswordAuthentication no)。
- 自定义 SSH 端口:将默认的 22 端口修改为高位自定义端口,避开绝大多数全网自动化扫描脚本。
- 部署 Fail2ban 防爆破:自动安装并配置 Fail2ban,对频繁尝试失败的恶意 IP 实施自动封禁。
- 配置 UFW 防火墙:开启 UFW,默认拦截所有入站流量,放行新 SSH 端口,并彻底删除默认的 22 端口规则。
- 修复 Docker 防火墙绕过漏洞:自动修正 Docker 默认接管 iptables 导致绕过 UFW 防火墙规则的安全隐患。
一键加固命令与使用条件
1. 前置准备
- 厂商防火墙放行:前往 VPS 提供商(如 ConoHa、AWS、腾讯云等)的控制台,在安全组/云防火墙中提前放行你准备设置的新 SSH 端口。
- 本地依赖安装:本地电脑需要安装
sshpass工具(用于首次通过密码自动连接 VPS)。- macOS:
brew install sshpass - Ubuntu/Debian:
sudo apt install sshpass
- macOS:
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