本文目录导读:

制定安全配置基线是保障信息系统安全的基础性工作,其核心目的是为所有设备、系统和软件提供一个统一、最小权限、已知安全状态的配置标准,以下是制定安全配置基线的标准流程和方法:
第一步:明确范围与目标
- 梳理资产清单:明确基线将应用于哪些资产,
- 操作系统(Windows Server, Linux, macOS)
- 网络设备(路由器、交换机、防火墙)
- 中间件(Nginx, Apache, Tomcat)
- 数据库(MySQL, PostgreSQL, Oracle, Redis)
- 应用软件(办公软件、开发工具)
- 确定安全目标:基于业务需求和合规要求。
- 合规驱动:等保2.0、ISO 27001、GDPR、PCI-DSS、CIS Benchmarks等。
- 威胁驱动:针对常见攻击(如弱口令、漏洞利用、DDoS)进行防御。
- 业务连续性:确保配置不会影响核心业务的正常运行。
第二步:选择或参考权威标准
直接“从零开始”编写基线很难且容易遗漏,建议参照权威机构发布的安全配置基准。
- CIS Benchmarks(国际权威):最广泛使用,分操作系统、云平台、数据库等,详细且免费。
- NSA(美国国家安全局)/ DISA STIGs:针对军事级防御,极其严格。
- 等保2.0 三级/四级要求:国内标准,注重合规与国产化。
- 厂商官方安全手册:如微软安全基线、红帽加固指南。
第三步:核心配置项
安全配置基线通常包含以下八大类核心配置项(以操作系统为例):
-
账户与认证管理
- 最小权限:禁用或删除默认管理员/guest账户;使用普通账户日常操作。
- 密码策略:长度(>8位)、复杂度、生命周期(90天)、历史记录。
- 多因素认证(MFA):对远程管理(SSH/RDP)启用。
- 锁定策略:登录失败次数(5次)后锁定账户。
-
服务与端口管理
- 关闭不用的服务:例如FTP、Telnet、RPC、打印服务(Print Spooler)等。
- 最小化开放端口:仅开放业务必需端口,如80/443/22/3306。
- 禁用不必要的协议:如IPv6(若未使用)、LLMNR、NetBIOS。
-
文件与目录权限
- 系统关键文件:
/etc/passwd、/etc/shadow只能被root读取。 - 审计日志:权限严格,禁止非管理员删除。
- 共享权限:使用最小权限原则,不设置Everyone完全控制。
- 系统关键文件:
-
日志与审计
- 启用审计:记录关键事件(登录成功/失败、特权使用、策略更改)。
- 日志配置:日志保留时间(>180天)、存储路径、大小限制。
- 时间同步:配置NTP服务,保证日志时间准确。
-
补丁与更新管理
- 自动更新:设置内部更新服务器(WSUS、Red Hat Satellite)。
- 补丁窗口:定义安全补丁的测试与部署周期(如:高危漏洞72小时内修复)。
-
网络与防火墙
- 主机防火墙:一律开启,默认拒绝入站,允许出站。
- IP限制:仅允许特定管理IP访问SSH/RDP。
-
安全增强功能
- ASLR/DEP(数据执行保护)/ PIE(位置无关可执行文件):启用。
- SELinux/AppArmor:设置为Enforcing模式。
- WAF配置(Web应用防火墙):开启规则集。
-
敏感数据保护
- 加密传输:禁用HTTP明文,必须使用TLS 1.2+。
- 磁盘加密:全盘或敏感分区加密。
第四步:撰写基线文档
一份合格的配置基线文档应包含:
- 元数据:适用版本、制定日期、责任人、版本号。
- 配置项编号:便于追踪(如
OS-WIN-001)。 - 配置要求:清晰描述预期状态(如:
要求:启用密码复杂性。)。 - 检查方法:命令行或脚本命令(如
grep 'PASS_MAX_DAYS' /etc/login.defs)。 - 加固方法:如何实施(如修改配置文件,执行
chage -M 90)。 - 风险与例外:说明不兼容或不适用场景的处理流程(如:该配置与集团旧系统A冲突,申请豁免)。
第五步:实施与自动化
- 使用脚本或工具:手动配置易出错且效率低。
- Ansible/Puppet/Chef:批量部署基线。
- PowerShell DSC:Windows环境配置即代码。
- Shell脚本:Linux基线自动化。
- 灰度发布:先测试5%的机器,确认无业务影响后再全量部署。
第六步:持续监控与审计
- 定期扫描:使用工具(如 OpenSCAP、Nessus Policy Compliance、Tenable.io、云安全中心)检查基线符合率。
- 修复偏差:配置漂移(Drift)是常态,一旦发现不对项,自动或手动回滚至基线状态。
- 基线迭代:每季度或当出现重大漏洞(如Log4j)时,更新基线。
一个简化的示例(Linux 基线片段)
| 编号 | 配置项 | 要求 | 检查方法 |
|---|---|---|---|
| LNX-001 | 密码最大有效期 | 90天 | grep PASS_MAX_DAYS /etc/login.defs |
| LNX-002 | root SSH登录 | 禁止直接登录 | grep PermitRootLogin /etc/ssh/sshd_config |
| LNX-003 | 闲置超时 | 600秒 | grep TMOUT /etc/profile |
| LNX-004 | 审计日志目录权限 | 仅 root 可读写 | stat /var/log/audit/ |
| LNX-005 | 禁用的服务 | telnet-server 必须处于未运行状态 |
systemctl status telnet.socket |
三个常见的陷阱(避坑指南)
- 硬编码例外:不要直接在文档中写“允许root登录”,应写成“除非有业务豁免申请并经审批,否则禁止root登录”。
- 忽视云环境:云上主机应遵循云厂商的安全组最佳实践(如所有入站流量默认拒绝)。
- 基线太死板:业务运行环境不同(如内部测试服务器 vs 生产服务器),应区分严格和生产基线。
制定安全配置基线不是一次性的技术工作,而是一个“选择标准 → 文档化 → 自动化实施 → 持续监控 → 定期迭代” 的闭环流程,核心原则是:最小权限、最小攻击面、已知安全状态。