Ubuntu 22.04 单台 VPS 的基础安全初始化流程

本文记录一套 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 的基础安全配置:

  1. 更新系统
  2. 配置防火墙(UFW)
  3. 安装 Fail2Ban
  4. 启用服务并验证

完成后服务器将具备:

  • 基础防火墙
  • SSH 防爆破
  • 基本安全策略
相关推荐
尽兴-19 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
至乐活着2 天前
Ansible自动化运维实战:从零部署高可用Nginx+静态网站集群
ansible·自动化运维·devops·playbook·配置管理
增量星球3 天前
《持续交付2.0系列六》业务需求协作管理
java·运维·自动化·devops·持续部署·持续集成
砍材农夫3 天前
运维|devops|nginx|基本配置拆解
运维·nginx·devops
love530love4 天前
ComfyUI 插件发布 GitHub Release + Comfy Registry (官方节点商店)完整复盘教程(从零开始)
人工智能·windows·github·devops
龙智DevSecOps解决方案5 天前
Perforce Intelligence 三大平台全新发布:当自动化升级为“自主化”,AI 时代的工作流该如何编排?
软件测试·人工智能·devops·perforce
Geek-Chow6 天前
04 Touring the Stack: One Checkout, Traced Through Every Container
devops
增量星球7 天前
《持续交付2.0系列一》从技术交付到业务引领
java·docker·容器·devops
宋均浩8 天前
# Docker Compose 本地环境标准化:5 个配置避免"我机器上能跑"
devops
李燚10 天前
Eino devops 调试系统源码:GraphCompileCallback 怎么工作(第50篇-E36)
数据库·golang·agent·devops·graphql·aiagent·eino