默认的 Linux 安装图的是方便,而非安全。Linux 服务器加固是减少服务器攻击面并收紧其配置的过程,使得来自互联网的不可避免的探测找不到任何易于利用的目标。本指南按合理的优先级顺序,介绍 2026 年最重要的加固步骤。

TL;DR

  • SSH 是你最大的暴露面:使用基于密钥的认证,禁用 root 登录和密码,并对连接进行速率限制
  • 运行默认拒绝的防火墙,关闭每一个你不需要的服务和端口
  • 保持系统自动打补丁,并应用内核和账户加固
  • 使用 SELinux 或 AppArmor,启用审计日志,并对照适用于你发行版的 CIS Benchmark 进行自我衡量

1. 锁定 SSH

SSH 是你管理服务器的方式,也是攻击者试图入侵的方式。首先加固它。

  • 使用基于密钥的认证,并完全禁用密码认证(PasswordAuthentication no)。
  • 禁用直接 root 登录PermitRootLogin no);以普通用户身份登录并使用 sudo
  • 限制哪些用户可以通过 SSH 登录。
  • 对反复失败的尝试进行速率限制和节流(例如使用 fail2ban),以削弱暴力破解攻击。
  • 让 SSH 保持在受维护的版本上,并禁用弱加密算法和过时协议。

2. 运行默认拒绝的防火墙

  • 配置防火墙(nftablesufwfirewalld 或 CSF)为默认拒绝,仅允许你实际提供服务的端口。
  • 暴露最少的内容:对于 Web 服务器,通常只有 SSH(受限)、HTTP 和 HTTPS,别无其他。
  • 尽可能将管理端口限制为已知的来源地址或 VPN。

3. 最小化攻击面

  • 卸载或禁用你不使用的服务和守护进程。每一个正在监听的服务都是潜在的入口点。
  • 审计开放的端口(ss -tulpn),并确认每一个都是有意为之的。
  • 从生产主机上移除不必要的软件包和编译器。

4. 保持系统已打补丁

  • 启用自动安全更新(在 Debian/Ubuntu 上使用 unattended-upgrades,在 RHEL 系列系统上使用 dnf-automatic)。
  • 跟踪你发行版的生命周期终止日期,并在支持结束前升级。运行不受支持的操作系统是一种持续存在的风险。

5. 加固账户与访问

  • 强制执行强密码和账户策略,并移除未使用的账户。
  • 使用最小权限的 sudo 而非共享的 root 访问,并记录 sudo 的使用。
  • 设置合理的 umask 默认值,并锁定敏感文件的权限。
  • 为管理访问考虑双因素认证。

6. 应用内核与网络加固

  • 调整 sysctl 设置以降低网络层面的风险(例如禁用 IP 源路由和 ICMP 重定向,并启用反向路径过滤)。
  • 限制对内核日志和指针的访问,并启用可用的漏洞利用缓解措施。
  • 禁用未使用的内核模块和文件系统。

7. 启用强制访问控制

  • 保持 SELinux(RHEL 系列)或 AppArmor(Debian/Ubuntu)启用并处于强制(enforcing)模式。
  • 抵制为了“让东西能跑”而将其禁用的诱惑;应改为调整或编写策略。当某个服务被攻陷时,MAC 能遏制损害。

8. 日志、审计与文件完整性

  • 启用 Linux 审计守护进程(auditd)以记录与安全相关的事件。
  • 将日志集中存储到主机之外,使攻击者无法简单地将其抹除。
  • 部署文件完整性监控(例如 AIDE),以检测系统文件的意外更改。
  • 定期审查日志,或将其接入监控与告警。

9. 对照 CIS Benchmark 衡量

互联网安全中心(CIS)发布了详细且针对特定发行版的加固基准。将适用于你操作系统的 CIS Benchmark 用作客观的检查清单和差距分析;它把“我们认为已经加固了”变成一条可衡量的基线,供你随时间进行审计。

关键要点

  • 从 SSH 开始:仅密钥、无 root 登录、速率限制。
  • 默认拒绝的防火墙,并移除每一个你不需要的服务。
  • 自动化打补丁,并应用账户、内核和 MAC(SELinux/AppArmor)加固。
  • 启用审计日志和文件完整性,并对照 CIS 进行基准衡量,使加固可度量。

获取专家级的 Linux 服务器加固

手动加固单台服务器是可行的;而要在整个服务器群中一致地完成,且不破坏应用程序,正是专业能力带来回报之处。Linux 服务器加固服务 涵盖 SSH 锁定、防火墙架构、内核调优、SELinux/AppArmor 策略、CIS 差距分析以及一份运维手册。若需要以防火墙为重点的讲解,那篇较早但仍然有用的使用 CSF 保护 Linux 服务器指南 深入介绍了 ConfigServer Security & Firewall。

常见问题(FAQ)

最重要的 Linux 加固步骤是什么? 锁定 SSH:使用基于密钥的认证,禁用密码登录和直接 root 登录,并对失败的尝试进行速率限制。在面向互联网的服务器上,SSH 是最常被攻击的入口点。

我应该禁用 SELinux 或 AppArmor 来解决问题吗? 不应该。禁用强制访问控制会移除一个重要的遏制层。应改为调整或编写策略,以允许合法的行为。将其保持在强制模式下,可在某个服务被攻陷时限制损害。

什么是 CIS Benchmark? 一套由互联网安全中心发布的、针对特定发行版的详细加固标准。它为你提供一份客观的检查清单,供你据此配置并随时间审计你的服务器,从而使加固变得可度量。

如果我的主机商有网络防火墙,我还需要防火墙吗? 需要,两者都用。基于主机的默认拒绝防火墙,即使在网络控制配置错误或被绕过时也能保护服务器,并强制执行只暴露你实际提供服务的端口这一原则。

加固后的服务器应多久审查一次? 定期审查,因为配置会发生漂移,新的漏洞也会出现。在发生重大变更后以及按周期性计划,对照你的 CIS 基线重新检查,并在两次审查之间保持自动安全更新处于启用状态。