## 前言
VPS 被入侵是最糟心的体验:数据丢失、被挂马、被当肉鸡。以下 10 条是服务器的安保底线,每一条都来自实战教训。
## 1. 禁用 root 密码登录,只用密钥
```bash
vim /etc/ssh/sshd_config
# 修改以下配置
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
systemctl restart sshd
```
修改之前,确保你已经把公钥放到了 `~/.ssh/authorized_keys`,否则你会把自己锁在外面。
## 2. 修改 SSH 默认端口
把 22 改成高位端口(比如 22222),能避开 99% 的自动化扫描。记得在防火墙和云服务商安全组放行新端口。
## 3. 安装 Fail2ban
```bash
apt install fail2ban
systemctl enable fail2ban
systemctl start fail2ban
```
## 4. 配置防火墙
```bash
ufw default deny incoming
ufw default allow outgoing
ufw allow 22222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
```
## 5. 最小化软件安装
不要安装用不到的软件。每多一个服务就多一个攻击面。定期检查监听端口 `ss -tlnp`。
## 6. 保持系统更新
```bash
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades
```
## 7. 非 root 用户操作
日常操作不要用 root,创建普通用户并赋予 sudo 权限。
## 8. 应用隔离用 Docker
每个服务跑在独立容器中,利用 Docker 默认的网络隔离和权限限制。不要用 `--privileged`。
## 9. 定期审计日志
```bash
grep "Accepted" /var/log/auth.log | tail -20
cat /var/log/auth.log | grep sudo
last -20
```
## 10. 备份!备份!备份!
安全措施不能 100% 防入侵。定期备份重要数据到异地。
以上 10 条用 30 分钟就能配置完,但能为你的服务器省去无数麻烦。