前言
很多人觉得"我一个小服务器没人会来攻击",但实际上公网的服务器每天都在被扫描。弱密码、未打补丁、开放不必要的端口,都可能成为突破口。
本文分享 10 条简单但有效的安全加固措施,花半小时配置一下,安全性能提升 90%。
1. 修改 SSH 默认端口
默认的 22 端口每天都有无数次暴力破解尝试,改个端口能挡住 99% 的扫描。
| |
⚠️ 修改端口后,先不要关闭当前连接,新开一个终端测试一下能否登录,防止自己被关在外面。
2. 禁用 root 登录
直接禁用 root 远程登录,用普通用户 + sudo 的方式:
| |
| |
| |
3. 使用 SSH 密钥登录
密钥登录比密码登录安全得多,暴力破解几乎不可能。
生成密钥对(本地电脑执行)
| |
上传公钥到服务器
| |
禁用密码登录
| |
| |
| |
4. 配置防火墙
只开放需要的端口,其他全部关掉。
UFW(Ubuntu 推荐)
| |
常用端口清单
| 端口 | 服务 | 按需开启 |
|---|---|---|
| 22 | SSH | ✅(改端口) |
| 80 | HTTP | ✅ |
| 443 | HTTPS | ✅ |
| 3306 | MySQL | ❌(只内网用) |
| 6379 | Redis | ❌(只内网用) |
| 21 | FTP | ❌(用 SFTP) |
5. 定期更新系统
及时安装安全补丁,修复已知漏洞。
| |
6. 最小化安装
不需要的服务和软件包都删掉,减少攻击面。
| |
常见可以关的服务:
- rpcbind / rpc-statd(NFS 相关,不用就关)
- avahi-daemon(局域网发现,不用就关)
- cups(打印服务,服务器一般不需要)
7. fail2ban 防暴力破解
自动封禁多次登录失败的 IP,专治 SSH 暴力破解。
| |
| |
| |
8. 禁用不必要的用户
检查系统中有没有陌生的用户,删除不需要的账号。
| |
9. 日志与监控
记录访问日志,配置监控告警,出事了能追溯。
配置日志轮转
| |
| |
简单的登录告警
可以写个简单的脚本,有用户登录时发邮件/通知。
| |
10. 定期备份
最后一道防线:数据备份。
备份策略
- 数据:每天自动备份,保留最近 7 天
- 配置:改完就备份
- 异地备份:重要数据至少一份不在本机
简单备份脚本示例
| |
配合 crontab 每天自动执行。
总结
| 优先级 | 措施 | 难度 | 效果 |
|---|---|---|---|
| ⭐⭐⭐⭐⭐ | 改 SSH 端口 | ⭐ | 90% 攻击 |
| ⭐⭐⭐⭐⭐ | 密钥登录 | ⭐⭐ | 防暴力破解 |
| ⭐⭐⭐⭐ | UFW 防火墙 | ⭐ | 减少攻击面 |
| ⭐⭐⭐⭐ | fail2ban | ⭐⭐ | 自动封禁 |
| ⭐⭐⭐ | 系统更新 | ⭐ | 修复漏洞 |
| ⭐⭐⭐ | 定期备份 | ⭐⭐ | 最后防线 |
| ⭐⭐ | 禁用 root | ⭐ | 提高门槛 |
| ⭐⭐ | 最小化安装 | ⭐⭐ | 减少攻击面 |
安全是个体系,不是靠一招鲜。以上措施都做了,小服务器的安全性基本就够用了。
没有绝对的安全,但可以让攻击者觉得你太难啃,换个目标 🛡️
