默认的 Linux 安装图的是方便,而非安全。Linux 服务器加固是减少服务器攻击面并收紧其配置的过程,使得来自互联网的不可避免的探测找不到任何易于利用的目标。本指南按合理的优先级顺序,介绍 2026 年最重要的加固步骤。
TL;DR
- SSH 是你最大的暴露面:使用基于密钥的认证,禁用 root 登录和密码,并对连接进行速率限制
- 运行默认拒绝的防火墙,关闭每一个你不需要的服务和端口
- 保持系统自动打补丁,并应用内核和账户加固
- 使用 SELinux 或 AppArmor,启用审计日志,并对照适用于你发行版的 CIS Benchmark 进行自我衡量
1. 锁定 SSH
SSH 是你管理服务器的方式,也是攻击者试图入侵的方式。首先加固它。
- 使用基于密钥的认证,并完全禁用密码认证(
PasswordAuthentication no)。 - 禁用直接 root 登录(
PermitRootLogin no);以普通用户身份登录并使用sudo。 - 限制哪些用户可以通过 SSH 登录。
- 对反复失败的尝试进行速率限制和节流(例如使用
fail2ban),以削弱暴力破解攻击。 - 让 SSH 保持在受维护的版本上,并禁用弱加密算法和过时协议。
2. 运行默认拒绝的防火墙
- 配置防火墙(
nftables、ufw、firewalld或 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 基线重新检查,并在两次审查之间保持自动安全更新处于启用状态。
评论