服务器安全加固清单:上线前必做的20项检查 核心要点图解,上线前安全加固的核心是收敛暴露面:关端口、限账号、强认证。;SSH 禁用密码登录并限制来源,是性价比最高的一步。;防火墙默认拒绝入站,只放行必要端口,比事后排查更有效。;补丁、日志与备份三项缺失,等于没有应急能力。
服务器安全加固清单:上线前必做的20项检查 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 上线前安全加固的核心是收敛暴露面:关端口、限账号、强认证。
  • SSH 禁用密码登录并限制来源,是性价比最高的一步。
  • 防火墙默认拒绝入站,只放行必要端口,比事后排查更有效。
  • 补丁、日志与备份三项缺失,等于没有应急能力。

很多服务器事故并不是被高级漏洞打穿,而是上线时留下了弱口令、多余端口和过期补丁。本文给出一份可直接照着做的服务器安全加固清单,共 20 项检查,每项都附命令与判定标准,目标是让运维在业务上线前把暴露面收敛到最小。

一、先搞清楚加固的目标:收敛暴露面

服务器安全加固的本质不是堆工具,而是回答三个问题:谁能登录、开了哪些端口、有哪些已知漏洞。上线前的检查应围绕这三条主线展开,先做高收益项,再补细节。

  • 账号面:可登录账号越少越好,root 不直接对外。
  • 网络面:默认拒绝入站,只放行业务必需端口。
  • 系统面:补丁、内核参数、日志与备份齐备。

二、账号与权限检查(第 1–5 项)

1. 清理多余账号。检查 UID 为 0 的账号,除 root 外一律整改:

awk -F: '(==0){print }' /etc/passwd

2. 锁定无用的系统账号。对不需要登录的服务账号设置不可登录 shell:

usermod -s /sbin/nologin 用户名

3. 检查空口令与弱口令。用 awk -F: '(==""){print }' /etc/shadow 找出空口令账号,并强制口令复杂度策略。

4. 建立最小权限运维账号。日常操作使用普通账号加 sudo,禁止直接用 root 跑业务。

5. 检查 sudo 授权范围。执行 visudo -c 校验配置,避免出现 ALL=(ALL) NOPASSWD: ALL 这类过度授权。

三、SSH 与远程访问加固(第 6–10 项)

SSH 是最常见的入口,也是加固收益最高的一环。建议在 /etc/ssh/sshd_config 中确认以下配置:

配置项建议值作用
PermitRootLoginno禁止 root 直接登录
PasswordAuthenticationno仅允许密钥认证
Port非 22 或配合防火墙限制来源降低扫描噪音
MaxAuthTries3限制爆破尝试

6. 修改后先执行 sshd -t 校验语法,另开一个会话验证能登录后再退出旧会话。7. 检查 ~/.ssh/authorized_keys 权限为 600、目录为 700。8. 用 lastb 与 journalctl -u sshd 查看是否有异常登录尝试。9. 限制 SSH 来源 IP,云环境优先用安全组。10. 关闭不用的 FTP、Telnet 等明文服务。

四、网络与防火墙检查(第 11–14 项)

11. 列出对外监听端口。

ss -tulnp | grep LISTEN

逐个确认必要性,数据库、Redis、管理后台不应直接暴露公网。

12. 设置默认拒绝策略。以 firewalld 为例:

firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

13. 检查云安全组与主机防火墙是否一致,避免只改了一侧。14. 确认规则已持久化,重启后仍生效。

五、系统、日志与补丁检查(第 15–20 项)

15. 安装安全更新。Debian 系执行 apt list --upgradable,RHEL 系执行 dnf check-update,优先修复高危项。

16. 检查内核关键参数。在 /etc/sysctl.conf 中确认开启 SYN Cookie、关闭 IP 转发(非路由机)、禁止 ICMP 重定向。

17. 确认日志与审计开启。检查 rsyslog 或 journald 运行状态,关键操作日志建议集中外送。

18. 检查计划任务。用 crontab -l 与 ls /etc/cron.* 排查未知任务,这是常见的持久化位置。

19. 确认备份可用。不仅要有备份,还要实际恢复验证一次。

20. 关闭不必要的服务与端口。用 systemctl list-unit-files --state=enabled 审查开机自启项。

防护建议:上述检查可整理为脚本定时执行,持续比对基线差异。若希望减少人工巡检成本,可借助 AegisX 的主机基线核查与入侵检测能力,把账号、端口、补丁等变化纳入持续监控。

六、上线前核对清单

  1. 可登录账号清单已确认,root 不可远程直连。
  2. SSH 仅密钥认证,来源受限,配置已校验。
  3. 对外端口清单与防火墙、安全组一致且持久化。
  4. 高危补丁已修复,日志、计划任务、备份均已核查。

行动建议:把这份服务器安全加固清单保存为上线检查表,每次新机器交付时逐项打勾并留存命令输出。加固不是一次性的,建议每月复查账号与端口、每季度复核基线,让配置漂移在造成事故前被发现。

常见问题(FAQ)

服务器刚买来,最先做哪几项加固?

先做四件事:创建普通运维账号并禁用 root 远程登录、SSH 改为密钥认证、防火墙默认拒绝入站、执行系统补丁更新。这四项覆盖了绝大多数入侵入口,通常30分钟内可完成,其余检查可在业务上线前补齐。

禁用了密码登录,万一密钥丢失怎么办?

提前保留一条应急通道:在云控制台保留 VNC 或救援模式登录能力,并额外配置一个备用密钥或跳板机账号。修改 sshd_config 后先用新会话验证能登录,再关闭旧会话,避免把自己锁在门外。

防火墙用 iptables 还是 firewalld?

取决于发行版与团队习惯:CentOS/RHEL 系可用 firewalld,Ubuntu/Debian 可用 ufw,底层都是 netfilter。关键是策略一致——默认拒绝入站、只放行 22/80/443 等必要端口,并把规则持久化,重启后仍生效。

安全加固做完还需要定期检查吗?

需要。加固不是一次性动作,建议每月复查账号、开放端口、补丁与计划任务,每季度做一次基线复核。可把检查项写成脚本定时执行并输出差异报告,避免配置被后续变更悄悄改回去。

没有专业安全团队,怎么判断加固是否到位?

按清单逐项打勾并保留命令输出作为证据,重点看三项:外网暴露端口清单、可登录账号清单、未修复高危补丁清单。三项都能说清楚来源和必要性,基线基本达标;也可借助主机安全类产品做持续基线核查。