Linux服务器安全加固清单:上线前建议检查这10项
整理 Linux 服务器上线前常见安全加固项,包括 SSH、防火墙、账号权限、日志、更新和备份。
服务器上线前,安全加固不是可选项。很多入侵并不复杂,常见原因是弱口令、暴露端口、长期不更新、日志缺失和权限过大。
下面是一份适合中小型业务服务器的 Linux 安全加固清单。
1. 禁止 root 远程直接登录
建议创建普通用户,通过 sudo 执行管理操作。
编辑 SSH 配置:
sudo vi /etc/ssh/sshd_config
确认或修改:
PermitRootLogin no
修改后重启 SSH:
sudo systemctl restart sshd
操作前一定要保留一个已登录终端,避免配置错误导致自己无法登录。
2. 使用密钥登录
密码登录容易受到暴力破解影响。更推荐使用 SSH key。
服务端用户目录下的公钥文件是:
~/.ssh/authorized_keys
确认权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3. 关闭不必要端口
先查看监听端口:
ss -lntup
只保留业务需要的端口,例如 22、80、443。数据库、Redis、后台管理服务尽量不要直接暴露到公网。
4. 配置防火墙
以 firewalld 为例:
firewall-cmd --list-all
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
如果业务只面向 CDN 回源,可以进一步限制源站访问来源。
5. 定期更新系统补丁
长期不更新的系统容易暴露已知漏洞。
RHEL、CentOS、openEuler 常见命令:
dnf update
Ubuntu 常见命令:
apt update
apt upgrade
生产环境更新前要评估影响,必要时先在测试环境验证。
6. 最小化用户权限
不要多人共用 root。建议每个管理员使用独立账号,并通过 sudo 分配权限。
查看 sudo 配置建议使用:
visudo
它会在保存前检查语法,避免 sudo 配置写错。
7. 检查定时任务
攻击者常利用 cron 做持久化。可以检查:
crontab -l
ls -l /etc/cron.*
陌生的下载命令、反弹 Shell、可疑脚本路径都要重点关注。
8. 打开关键日志
至少要知道这些日志的位置:
- SSH 登录:
/var/log/secure或/var/log/auth.log - 系统日志:
/var/log/messages或journalctl - Web 日志:Nginx access/error log
- 应用日志:项目自己的日志目录
排障和安全分析都离不开日志。
9. 配置备份和恢复验证
有备份不等于能恢复。建议定期做恢复演练。
至少备份:
- 业务代码
- 数据库
- 配置文件
- SSL 证书
- 上传文件
备份要和服务器隔离保存,避免服务器被入侵后备份一起被删除。
10. 建立变更记录
很多故障和安全问题都发生在变更之后。简单记录也有价值:
- 什么时间改了什么。
- 谁改的。
- 为什么改。
- 如何回滚。
这能显著提高排障效率。
总结
安全加固不追求一次性完美,而是建立基线。先把 root 登录、弱口令、暴露端口、系统补丁、日志和备份这些基础项做好,服务器的整体风险就会下降很多。
