本文记录一套 Ubuntu 22.04 单台 VPS 的基础安全初始化流程。
结构采用:
先执行命令 → 再解释配置。
适用环境:
- Ubuntu 22.04
- root + 密码登录的 VPS
一、快速执行(直接操作)
更新系统:
apt update && apt upgrade -y
安装常用工具:
apt install -y curl wget vim git unzip lrzsz
安装防火墙:
apt install -y ufw
放行 SSH(非常重要,避免把自己锁在服务器外):
ufw allow 22/tcp
如果是 Web 服务器:
ufw allow 80/tcp
ufw allow 443/tcp
启用防火墙:
ufw enable
安装 Fail2Ban:
apt install -y fail2ban
编辑配置:
vim /etc/fail2ban/jail.local
写入配置:
sshd
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
findtime = 600
bantime = 3600
让配置生效:
systemctl restart fail2ban
systemctl enable fail2ban
二、验证
查看防火墙状态:
ufw status
查看 Fail2Ban 状态:
systemctl status fail2ban
查看 sshd jail:
fail2ban-client status sshd
三、UFW 防火墙说明
UFW(Uncomplicated Firewall)是 Ubuntu 推荐的防火墙管理工具,用于控制服务器端口访问。
查看状态:
ufw status
Ubuntu 默认策略:
ufw default deny incoming
ufw default allow outgoing
含义:
- 拒绝所有进入服务器的连接
- 允许服务器主动访问外网
可以通过查看确认:
ufw status verbose
如果策略被修改,可以执行:
ufw default deny incoming
ufw default allow outgoing
恢复默认策略。
常用操作:
放开端口:
ufw allow 80
放开指定协议端口:
ufw allow 8080/tcp
删除规则:
ufw delete allow 8080/tcp
禁止端口:
ufw deny 80
查看规则:
ufw status numbered
四、Fail2Ban 说明
Fail2Ban 用于检测暴力破解并自动封禁恶意 IP。
配置文件目录:
/etc/fail2ban/
常见文件:
jail.conf
默认配置(不建议修改)
jail.local
本地自定义配置
加载顺序:
jail.conf → jail.local → jail.d/*.conf
说明:
jail.local 在 jail.conf 默认配置基础上 补充或覆盖相同配置项。
五、查看是否有人爆破 SSH
查看失败登录次数:
grep "Failed password" /var/log/auth.log | wc -l
含义:
/var/log/auth.log
SSH 登录日志
Failed password
表示登录失败记录
如果这个数字持续增加,说明服务器正在被暴力尝试登录。
六、Fail2Ban 常用命令
查看 jail 状态:
fail2ban-client status sshd
手动封禁 IP:
fail2ban-client set sshd banip 1.2.3.4
查看封禁 IP:
fail2ban-client status sshd
输出中的:
Banned IP list
就是当前封禁的 IP。
解封 IP:
fail2ban-client set sshd unbanip 1.2.3.4
七、总结
一台 VPS 的基础安全配置:
- 更新系统
- 配置防火墙(UFW)
- 安装 Fail2Ban
- 启用服务并验证
完成后服务器将具备:
- 基础防火墙
- SSH 防爆破
- 基本安全策略