这是我在做网站和业务系统部署时,踩坑踩出来的一套上线前自查清单。分享出来,希望能帮到同样在做服务器运维的朋友。
每次把一台新服务器交付上线,我最怕的不是"功能没做完",而是"上线第二天就出安全问题"。早期吃过几次亏之后,我养成了上线前过一遍检查单的习惯。这 5 项是我认为性价比最高的,每一项都能在几分钟内做完。
1. SSH 登录安全:先改掉默认配置
刚开机的服务器,SSH 默认是 root + 22 端口 + 密码登录,这几乎是扫描器最爱的目标。上线前必做三件事:
改完 systemctl restart sshd 再开新窗口测试,确认能登录再关旧窗口------别把自己锁在外面。
2. 防火墙:默认拒绝,只放行需要的端口
我见过最坑的情况是:防火墙开着,但策略是"全部放行",等于没开。正确的姿势是默认拒绝,按需放行:
每多开一个端口,就多一个被攻击的面。数据库端口(如 3306、6379)永远不要对公网开放,只允许内网或本机访问。
3. 备份:自动化 + 定期验证能恢复
"有备份"和"能恢复"是两回事。我踩过的最痛的坑,是备份脚本一直在跑,但真正出事时发现备份文件是坏的。
所以我现在坚持两点:一是备份要自动化 (cron 定时),二是定期做一次恢复演练 ,确认备份真的能用。数据库用 mysqldump 或 pg_dump 定时导出,文件用 rsync 同步到另一台机器或对象存储。
4. 监控:至少盯住磁盘和内存
服务器出问题,最典型的两类就是磁盘写满、内存耗尽。装一个轻量监控,或者至少配几个告警:
- 磁盘使用率:超过 80% 告警,写满会导致数据库挂掉、服务写不进日志
- 内存 + swap:内存长期吃紧要查是哪个进程泄漏
- 进程存活:核心服务(nginx、php-fpm、数据库)挂了要能及时发现
小规模场景用 htop + 一个简单的监控脚本就够,不用一上来就上 Prometheus。
5. 系统更新 + 日志:别让服务器"裸奔"
- 系统更新 :上线前把系统补丁打完,
apt update && apt upgrade(或 yum 对应命令),关闭不用的服务
- 日志:确认关键服务的日志在正常写、有轮转(logrotate),否则磁盘会被日志撑爆
- 时间同步:NTP 要对上,否则日志时间错乱,排查问题时很痛苦
最后
这 5 项做完,一台服务器才算"基本及格"。它们不解决所有问题,但能把最常见的坑挡在外面。安全是个持续的过程,上线只是起点,之后还要持续监控和更新。
如果你也有自己的上线检查清单,欢迎在评论区交流,互相补充。