刚上架的服务器

每次新开一台服务器,我都会按同一套流程走一遍。不是什么高深操作,但漏掉任何一步,后面都可能变成麻烦。整理成清单,也方便自己照着抄。

1. 更新系统

sudo apt update && sudo apt upgrade -y
sudo reboot   # 有内核更新就重启一次

2. 建一个非 root 用户

adduser deploy
usermod -aG sudo deploy

之后所有操作都用这个账号,root 只通过 sudo 用。

3. 配 SSH 密钥并禁用密码

这一步在《SSH 加固实战》里展开写过,核心是先配密钥、验证能登录,再关密码:

ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@服务器IP
# 验证能登录后再改:
# PermitRootLogin no
# PasswordAuthentication no

4. 开防火墙

默认拒绝,按需放行:

sudo ufw default deny incoming
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from 你的IP to any port 22
sudo ufw enable

注意:如果用 Docker,容器发布的端口可能绕开 UFW,需要额外处理——要么绑 127.0.0.1,要么改 DOCKER-USER 链。

5. 设置时区和 NTP

时间不对会导致证书校验失败、日志对不上、定时任务跑偏。

sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-ntp on
timedatectl status

6. 改个认得出来的主机名

sudo hostnamectl set-hostname web-01

在多台机器之间跳的时候,能一眼看出自己在哪台。

7. 装常用工具

sudo apt install -y curl wget git vim htop tmux rsync unzip fail2ban

8. 配 swap(小内存机器)

1GB 内存的机器编译东西或跑构建很容易 OOM,加一点 swap 兜底:

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

9. 开自动安全更新

手动打补丁这事,久了一定会忘。

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

10. 想清楚备份

最容易被跳过、也最要命的一步。上线前就该定好:

  • 备份什么(配置文件、数据卷、数据库)
  • 备到哪(另一台机器或对象存储,别放同一块盘)
  • 多久一次
  • 恢复怎么操作——没演练过的备份等于没有

上线前最后确认

sudo ufw status                                  # 防火墙规则对不对
sudo sshd -T | grep passwordauthentication      # 密码关了没
timedatectl                                     # 时区时间对不对
df -h                                           # 磁盘够不够

小结

这十件事做完大概半小时,换来的是后面不用半夜救火。清单本身不复杂,难的是每台机器都认真走一遍——所以才值得写下来照着抄。