服务器上线前,安全加固是必做功课。以下10个设置能帮你堵住90%的常见攻击入口,适用于Ubuntu、Debian、CentOS等主流发行版。
1. 禁用root远程登录
直接以root SSH登录等于把家门钥匙交给黑客。编辑 /etc/ssh/sshd_config:
PermitRootLogin no
然后创建普通用户并加入sudo组。
2. 启用密钥认证
密码暴力破解是SSH攻击的主流。生成密钥对后,在 sshd_config 中设置:
PubkeyAuthentication yes
PasswordAuthentication no
3. 安装并配置防火墙
UFW(Ubuntu/Debian)或 firewalld(CentOS)是最简选择。只开放22、80、443端口,其余全部拒绝。
4. 关闭不必要的端口
用 ss -tulpn 查看监听端口,关掉没用的服务。比如MySQL不要监听0.0.0.0,只允许本地或指定IP访问。
5. 自动安全更新
配置 unattended-upgrades(Debian系)或 dnf-automatic(CentOS系),让安全补丁自动安装,不留补丁窗口期。
6. 设置fail2ban防暴力破解
fail2ban会自动封禁多次登录失败的IP,对SSH、Nginx、Apache都有效。默认配置就能挡住大部分扫描。
7. 定期备份
用cron + rsync或 Bacula 做自动备份。备份要异地存储,不要把鸡蛋放在服务器这一个篮子里。
8. 最小化安装
只装需要的包,删掉没用的服务。每多一个服务,就多一个攻击面。
9. 启用SELinux/AppArmor
强制访问控制能在程序被攻陷时限制损害范围。CentOS默认SELinux enforcing,Ubuntu默认AppArmor,保持开启即可。
10. 监控与日志
安装 auditd 记录系统调用,用 logwatch 或 goaccess 分析Nginx日志,发现异常访问 pattern。
安全不是一次性任务,而是持续状态。养成定期检查日志、更新补丁、审计权限的习惯,比任何单点加固都重要。