服务器安全加固清单:SSH、防火墙与 fail2ban
作者:夸父
自部署服务器的安全底线配置:SSH 密钥登录、禁 root 密码、防火墙白名单、fail2ban 防爆破。十二项按优先级排列,一小时配完,挡住 99% 的常规攻击。
高优先级(今天就要做)
1. SSH 密钥登录,禁用密码:ssh-keygen 生成密钥对,公钥放入服务器 ~/.ssh/authorized_keys,然后 sshd 配置里 PasswordAuthentication no。密码爆破从此与你无关。
2. 禁用 root 直接登录:PermitRootLogin no——用普通用户 + sudo,攻击者连用户名都要猜。
3. 防火墙白名单:只开放 80/443/SSH,MySQL/Redis 绝不暴露公网(ufw allow 白名单制)。
4. fail2ban 防爆破:安装后默认策略即可——连续失败几次的 IP 自动封禁,日志里的爆破尝试会安静下来。
中优先级(本周内)
5. SSH 换端口:改到非 22 的高位端口——挡掉的是绝大多数脚本小子的扫描(真正的攻击者挡不住,但你的日志会干净 99%)。6. 自动安全更新:unattended-upgrades 开启。7. 最小服务原则:服务器上跑的每个服务都是攻击面,不用的服务停掉。8. 定期看登录记录:last 和 auth.log,陌生 IP 出现就是警报。
应用层(与业务并行做)
9. 数据库不暴露公网(绑定 127.0.0.1);10. 管理后台加 IP 白名单或 VPN;11. HTTPS 全站(见 nginx 指南);12. 定期更新与快照(系统补丁 + 云快照每周一次)。
一句话的安全观
安全不是"防住所有攻击",是让自己的服务器比攻击者的成本收益模型里"不值得"——以上十二项配完,你的服务器就从"随手可拿"变成了"成本高于收益",绝大多数攻击者会转向更低的目标。
常见问题
我的服务器会被攻击吗?
会,而且很快。公网服务器的 SSH 端口上线后几分钟内就会开始被自动扫描爆破——这是互联网的背景噪音。没做加固的服务器,弱密码被撞开只是时间问题。
配置错了把自己锁在外面怎么办?
改 SSH 配置前保留当前连接不要断开,用第二个终端测试新配置能登录后再退出旧会话;云服务商的控制台终端是最后的救援通道。


