服务器安全加固指南:防火墙、fail2ban 与 SSH 防护

zheng头像
zheng 2026-07-14 18:00
楼主

> 新买的 VPS 刚上线几个小时,SSH 登录日志里已经有一大堆来自世界各地的暴力破解记录了。互联网上没有绝对的安全,但做好基础防护,能挡住 99% 的自动攻击。

---

## 第一道防线:SSH 加固

### 1. 禁用密码登录,只用密钥

编辑 /etc/ssh/sshd_config:

```
PasswordAuthentication no
PubkeyAuthentication yes
```

然后重启 SSH:systemctl restart sshd

### 2. 修改默认端口

把 SSH 端口从 22 改成不常用的端口(比如 2222):

```
Port 2222
```

### 3. 禁止 root 直接登录

```
PermitRootLogin no
```

先用普通用户登录,再用 sudo 提权。

---

## 第二道防线:防火墙(ufw)

Ubuntu/Debian 推荐用 ufw,简单好用:

```bash
ufw default deny incoming # 默认拒绝所有入站
ufw default allow outgoing # 默认允许所有出站
ufw allow 2222/tcp # 允许 SSH 端口
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable # 启用防火墙
ufw status verbose # 查看规则
```

打好这 4 条命令,你的服务器就只对外开放了 3 个端口。

---

## 第三道防线:fail2ban 防暴力破解

```bash
apt install fail2ban -y
```

fail2ban 会监控登录日志,如果某个 IP 短时间内多次尝试登录失败,自动把它拉黑。

创建本地配置 /etc/fail2ban/jail.local:

```ini
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
```

含义:10 分钟内失败 3 次,封禁 1 小时。

启动:systemctl enable fail2ban --now

---

## 日常安全检查清单

| 检查项 | 命令 |
|--------|------|
| 查看登录记录 | last -20 |
| 查看失败登录 | lastb -20 |
| 查看当前在线用户 | who |
| 查看监听端口 | ss -tlnp |
| fail2ban 状态 | fail2ban-client status |

---

## 额外建议

1. 保持系统更新:apt update && apt upgrade -y,定期执行
2. 最小权限原则:不要所有操作都用 root
3. 定期备份:安全措施再完善,也不如一份可靠的备份
4. 不要安装来路不明的脚本

安全没有终点,但做好以上几步,你的服务器已经比 90% 的 VPS 更安全了。

微信小程序实战:从零搭建一个VIP会员管理系统(附完整代码) 网站自动备份方案:数据库 + 文件定时备份,再也不怕数据丢失

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:2771