Ubuntu 初始化安全配置(服务器/云主机必做)

在 Ubuntu 刚安装完成后,如果直接投入生产或公网使用,通常是非常危险的。默认配置更偏向“可用性”,而不是“安全性”。

本文提供一套标准服务器初始化安全加固流程,适用于 VPS、云服务器、本地服务器。


一、首次登录后必须做的基础操作

1️⃣ 更新系统

sudo apt update && sudo apt upgrade -y

2️⃣ 安装常用工具

sudo apt install -y curl wget vim git ufw fail2ban

二、创建普通用户(禁止直接用 root)

1️⃣ 新建用户

adduser leo

2️⃣ 授权 sudo

usermod -aG sudo leo

3️⃣ 禁止 root 直接登录(重要)

编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

修改:

PermitRootLogin no

三、配置 SSH 安全(核心)

SSH 是服务器最常见攻击入口。


1️⃣ 修改默认端口(可选但推荐)

Port 2222

2️⃣ 禁用密码登录(强烈推荐)

PasswordAuthentication no

3️⃣ 使用密钥登录

在本地生成密钥:

ssh-keygen -t rsa -b 4096

上传到服务器:

ssh-copy-id leo@your-server-ip

4️⃣ 重启 SSH

sudo systemctl restart ssh

四、防火墙配置(UFW)

Ubuntu 推荐使用 UFW


1️⃣ 启用防火墙

sudo ufw enable

2️⃣ 默认策略

sudo ufw default deny incoming
sudo ufw default allow outgoing

3️⃣ 开放必要端口

SSH

sudo ufw allow 22

或(如果改端口):

sudo ufw allow 2222

Web 服务

sudo ufw allow 80
sudo ufw allow 443

4️⃣ 查看状态

sudo ufw status

五、防暴力破解(Fail2Ban)

Fail2Ban 可以自动封禁异常登录。


1️⃣ 启动服务

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

2️⃣ 查看状态

sudo fail2ban-client status

3️⃣ SSH 防护配置

sudo nano /etc/fail2ban/jail.local

添加:

[sshd]
enabled = true
maxretry = 5
bantime = 3600

六、关闭不必要服务

查看服务

systemctl list-unit-files --type=service

禁用服务

sudo systemctl disable service_name

七、系统安全优化


1️⃣ 自动安全更新

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades

2️⃣ 限制登录失败次数

sudo nano /etc/security/faillock.conf

3️⃣ 隐藏系统信息(可选)

sudo nano /etc/issue

八、检查端口与监听

ss -tulnp

九、日志安全监控

查看登录日志

sudo cat /var/log/auth.log

实时监控

tail -f /var/log/auth.log

十、推荐安全配置清单(生产必备)

✔ 禁用 root 登录
✔ SSH 密钥登录
✔ 修改 SSH 端口
✔ 启用 UFW 防火墙
✔ 启用 Fail2Ban
✔ 关闭无用端口
✔ 系统自动更新


十一、常见错误


❌ SSH 连不上

原因:

  • 防火墙没放行端口
  • SSH 端口改错

❌ ufw 开启后断连

解决:

sudo ufw allow ssh

❌ 密钥登录失败

检查:

  • authorized_keys 权限
  • ~/.ssh 权限 700

十二、总结

在 Ubuntu 上进行初始化安全配置的核心思路是:

默认拒绝 + 最小开放 + 身份认证强化 + 自动防护

配合:

  • UFW(控制访问)
  • Fail2Ban(防暴力破解)

可以让服务器安全性提升一个数量级。


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部