Apache HTTP Server 中间件测评

Apache HTTP Server 2.2/2.4 三级等保现场测评取证命令单:按控制点组织 httpd.conf 核查命令、判定要点与取证要求,含反向代理与 SSL 网关场景。

定位:Apache HTTP Server 三级等保现场测评取证命令单,按 GB/T 22239-2019 安全计算环境控制点分节组织核查命令、判定要点与取证要求。 适用范围:Apache HTTP Server 2.2/2.4,含反向代理、静态站点、SSL 网关场景;同时适用于以 httpd 为基座的发行版定制包(如 CentOS/RHEL 的 httpd、Ubuntu 的 apache2)。 配套文章:22、高风险判定指引与加固对照表、16、安全评估加固记录表3.0、21、Web中间件安全加固。

使用说明:

  • 本文所有命令均为只读取证命令,不修改配置、不重启服务、不执行清除类操作;确需变更由被测单位运维方在授权下实施。
  • 每个控制点小节按「对应控制点 → 判定要点 → 取证要求 → 核查命令 → 备注 → 预期证据」编排;命令回显本身即证据,须连同命令行一起截图。
  • 命令不存在或输出与示例差异较大时,先确认组件版本与部署形态(包管理器/源码编译/容器),再换用等效命令或转入配置文件、管理控制台取证,不得据命令缺失直接判不符合。
  • 示例输出中的地址、账户、路径均为演示值,现场须替换为真实取证结果并对涉及个人信息与内网管理地址的内容脱敏后再入报告。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点。
  • 判定依据采用 GB/T 28448-2019 的对象边界原则;如 Apache 仅承担代理或静态分发能力,不直接处理个人信息或不具备独立登录机制,则相关控制点可按边界判定不适用。
  • 版本差异:2.2 使用 Order/Allow/Deny 访问控制语法,2.4 改用 Require 指令(由 mod_authz_core 提供);取证时须先以 httpd -v 确认主版本再选口径,不得因语法不同判不符合。

基础信息

对应控制点:非独立控制点(测评对象与资产确认);部署形态与冗余情况佐证 8.1.2.1 网络架构 e) 关键设备硬件冗余

判定要点:版本、部署路径、运行账户、监听端口、集群角色五项均可取证且与实际架构一致 → 符合;版本或路径无法确认、依赖口头说明 → 部分符合。

取证要求:版本命令回显截图、配置路径截图、进程与运行账户截图、端口监听截图;集群部署补节点清单与角色截图。

核查命令:

httpd -v
apachectl -V
ps -ef | grep httpd
find / -name httpd.conf -o -name apache2.conf 2>/dev/null
  • 备注:优先确认版本、主配置文件、虚拟主机目录、模块、日志路径、运行用户和监听端口。
  • 预期证据:版本截图、配置路径截图、模块截图、进程与端口截图。
示例输出(节选)
httpd -v
Server version: Apache/2.4.57 (CentOS Stream)
Server built:   Apr 20 2024 08:12:00
apachectl -V | grep SERVER_CONFIG_FILE
SERVER_CONFIG_FILE: "conf/httpd.conf"
ps -ef | grep httpd(节选)
root   7701 /usr/sbin/httpd -DFOREGROUND
apache 7702 /usr/sbin/httpd -DFOREGROUND

身份鉴别

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)

判定要点:管理账户唯一且非默认口令、鉴别信息复杂度与有效期均已配置、远程管理走加密通道、失败处理与会话超时已启用 → 符合;仅满足其中一部分(如有口令但无复杂度/无锁定/无超时)→ 部分符合;管理入口无鉴别或沿用出厂口令 → 不符合(高风险)。

取证要求:账户清单截图、口令策略配置截图、加密通道配置截图、失败锁定与超时配置截图;由统一认证平台承载时补平台侧配置与对接截图。

A. 管理入口识别

核查命令:

grep -R "server-status\\|server-info" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:重点识别 server-status、server-info、WebDAV、管理目录和状态页。
  • 预期证据:状态页配置截图、访问结果截图。
示例输出(节选)
/etc/httpd/conf.modules.d/00-base.conf: LoadModule status_module modules/mod_status.so
/etc/httpd/conf.d/status.conf: <Location /server-status>
/etc/httpd/conf.d/status.conf:     SetHandler server-status

B. 认证机制

核查命令:

grep -R "AuthType\\|AuthName\\|Require valid-user\\|SSLVerifyClient" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:核查是否使用 Basic、Digest、LDAP、客户端证书或前置统一认证。
  • 预期证据:认证配置截图、平台材料、访谈记录。
示例输出(节选)
/etc/httpd/conf.d/admin.conf: AuthType Basic
/etc/httpd/conf.d/admin.conf: Require valid-user
(另经前置 SSO 对管理路径统一认证)

C. 登录失败与会话控制

核查命令:

grep -R "AuthType\\|Session\\|mod_session" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:Apache 原生一般不提供完整账户锁定能力,通常由前置认证平台、应用层或 WAF 实现。
  • 【不适用】若 Apache 仅承担静态发布或代理转发,未启用本地认证登录界面,则登录失败处理与会话超时对该对象不适用。
  • 预期证据:认证配置截图、等效控制材料。
示例输出(节选)
/etc/httpd/conf.d/app.conf: <IfModule mod_session.c>
/etc/httpd/conf.d/app.conf: SessionMaxAge 1800
(会话超时由 mod_session 控制;登录锁定由应用层实现)

D. 运维鉴别链路

核查命令:

grep -R "SSLEngine\\|SSLProtocol\\|SSLHonorCipherOrder" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:运维链路应结合堡垒机、HTTPS、VPN 等保护措施综合判断。
  • 预期证据:HTTPS 截图、运维制度、堡垒机材料。
示例输出(节选)
/etc/httpd/conf.d/ssl.conf: SSLEngine on
/etc/httpd/conf.d/ssl.conf: SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
/etc/httpd/conf.d/ssl.conf: SSLHonorCipherOrder on

访问控制

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~f)

判定要点:账户与角色齐备且权限最小化、默认账户已重命名或改口令、无多余/过期/共享账户、管理来源受限制 → 符合;有账户体系但权限未按最小化分配或管理来源未限制 → 部分符合;全员共用超级账户、管理端口对全网开放 → 不符合(高风险)。

取证要求:账户与角色对应表、授权策略截图、管理来源限制(ACL/绑定地址/防火墙策略)截图、多余账户处置记录。

A. 管理目录与状态页限制

核查命令:

grep -R "Require ip\\|Require host\\|Allow from\\|Deny from" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:状态页、管理目录、WebDAV 路径应限制来源。
  • 预期证据:ACL 配置截图、来源限制截图。
示例输出(节选)
/etc/httpd/conf.d/admin.conf: Require ip 192.168.10
/etc/httpd/conf.d/status.conf: Require ip 192.168.10.0/24
(旧版 Allow from/Deny from 语法未使用)

B. 目录访问控制

核查命令:

grep -R "<Directory\\|Options\\|Indexes\\|FollowSymLinks" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:重点防目录浏览、测试目录和别名目录越权访问。
  • 预期证据:目录配置截图、访问测试截图。
示例输出(节选)
/etc/httpd/conf/httpd.conf: <Directory "/var/www">
/etc/httpd/conf/httpd.conf:     Options FollowSymLinks
/etc/httpd/conf/httpd.conf:     Options -Indexes
(Indexes 已关闭,禁止目录浏览)

C. 默认站点与示例模块

核查命令:

apachectl -M
find /etc/httpd /etc/apache2 -type f | grep -E "welcome|manual|icons|dav" 2>/dev/null
  • 备注:默认欢迎页、文档页、样例模块和未使用模块应清理或限制。
  • 预期证据:模块清单截图、处置说明。
示例输出(节选)
apachectl -M(节选)
 status_module (shared)
 proxy_module (shared)
 ssl_module (shared)
find ... | grep welcome|manual|icons|dav
/usr/share/httpd/icons/
(welcome/manual 已卸载,icons 为系统默认静态资源)

D. 文件与进程权限

核查命令:

ps -o user,pid,cmd -C httpd
ls -l /etc/httpd/conf/httpd.conf /etc/apache2/apache2.conf 2>/dev/null
  • 备注:运行用户不宜过高,配置目录、证书和日志目录权限应最小化。
  • 预期证据:权限截图、运行用户截图。
示例输出(节选)
USER PID COMMAND
root   7701 httpd -DFOREGROUND
apache 7702 httpd -DFOREGROUND
-rw-r--r-- 1 root root 11800 conf/httpd.conf
(主进程 root、worker apache;配置建议收紧为 640)

安全审计

对应控制点:GB/T 22239-2019 8.1.4.3 安全审计 a)~d)

判定要点:审计功能启用且覆盖每个用户与重要行为、审计记录字段齐全、审计记录受保护并定期备份、留存不少于 6 个月 → 符合;仅记录部分事件或留存不足 6 个月 → 部分符合;审计未启用或普通用户可删改审计记录 → 不符合(高风险)。

取证要求:审计开关与范围配置截图、审计记录明细样例(含时间、用户、事件类型、结果、来源)、日志外送与轮转配置截图、留存期限证据、非审计账户尝试删改的实测结果。

A. 日志配置

核查命令:

grep -R "ErrorLog\\|CustomLog\\|LogFormat" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:至少核查访问日志、错误日志和管理路径访问留痕。
  • 预期证据:日志配置截图、日志目录截图。
示例输出(节选)
/etc/httpd/conf/httpd.conf: ErrorLog logs/error_log
/etc/httpd/conf/httpd.conf: CustomLog logs/access_log combined
/etc/httpd/conf/httpd.conf: LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"" combined

B. 日志字段完整性

核查命令:

tail -n 20 /var/log/httpd/access_log 2>/dev/null
tail -n 20 /var/log/apache2/access.log 2>/dev/null
  • 备注:建议具备时间、源 IP、请求方法、URI、状态码、User-Agent 等关键字段。
  • 预期证据:日志样例、平台截图。
示例输出(节选)
192.168.1.23 - - [24/Aug/2026:10:21:33 +0800] "GET /api/v1/user HTTP/1.1" 200 187 "-" "Mozilla/5.0"
192.168.1.45 - - [24/Aug/2026:10:21:34 +0800] "POST /login.php HTTP/1.1" 302 - "-" "Mozilla/5.0" 

C. 留存与轮转

核查命令:

grep -R httpd /etc/logrotate* 2>/dev/null
grep -R apache2 /etc/logrotate* 2>/dev/null
  • 备注:需核实日志留存周期、轮转、归档和责任人。
  • 预期证据:轮转配置截图、制度、访谈记录。
示例输出(节选)
/etc/logrotate.d/httpd:/var/log/httpd/*log {
/etc/logrotate.d/httpd:    daily
/etc/logrotate.d/httpd:    rotate 14
/etc/logrotate.d/httpd:    compress

D. 集中审计

核查命令:

grep -R "syslog" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:如日志汇聚到平台,应取平台留存和告警证据。
  • 预期证据:平台截图、告警截图。
示例输出(节选)
/etc/httpd/conf/httpd.conf: ErrorLog syslog:local6
(错误日志转发 local6 由 rsyslog 上送集中日志平台)

数据完整性

对应控制点:GB/T 22239-2019 8.1.4.7 数据完整性 a)b)

判定要点:配置与关键数据在传输/存储过程中具备校验或完整性保护机制(TLS、签名、校验和、配置版本归档)→ 符合;仅有部分链路具备校验 → 部分符合;无任何完整性校验手段 → 不符合。

取证要求:传输加密配置截图、校验/签名机制说明、配置变更与归档记录、完整性检测工具输出。

A. 配置完整性

核查命令:

apachectl -t
httpd -t
  • 备注:应证明配置经校验且变更可追溯。
  • 预期证据:校验结果截图、变更工单、发布记录。
示例输出(节选)
apachectl -t
Syntax OK
httpd -t
Syntax OK

B. 传输完整性

核查命令:

grep -R "ProxyPass\\|RequestHeader\\|SSLProxyEngine" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:代理链路和反向代理头部完整性应明确。
  • 预期证据:配置截图、架构说明。
示例输出(节选)
/etc/httpd/conf.d/proxy.conf: ProxyPass /api http://192.168.10.71:8080/api
/etc/httpd/conf.d/proxy.conf: RequestHeader set X-Real-IP expr=%{REMOTE_ADDR}
/etc/httpd/conf.d/proxy.conf: SSLProxyEngine on

数据保密性

对应控制点:GB/T 22239-2019 8.1.4.8 数据保密性 a)b)

判定要点:鉴别信息与敏感业务数据在传输和存储时均加密(TLS 1.2 及以上、口令散列存储、密钥不落明文)→ 符合;仅传输加密或仅存储加密 → 部分符合;明文传输鉴别信息或明文存储口令/密钥 → 不符合(高风险)。

取证要求:TLS 配置与证书信息截图、协议与加密套件清单、口令/密钥存储形态截图、抓包验证结果;使用国密算法时注明算法与模块。

A. HTTPS 与证书

核查命令:

grep -R "SSLCertificateFile\\|SSLCertificateKeyFile\\|Listen 443" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:管理面和敏感业务面应优先使用 HTTPS/TLS。
  • 预期证据:HTTPS 配置截图、证书截图。
示例输出(节选)
/etc/httpd/conf.d/ssl.conf: Listen 443 https
/etc/httpd/conf.d/ssl.conf: SSLCertificateFile /etc/pki/tls/certs/demo-server.crt
/etc/httpd/conf.d/ssl.conf: SSLCertificateKeyFile /etc/pki/tls/private/demo-server.key

B. 敏感配置保护

核查命令:

grep -R "password\\|secret\\|Authorization" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:Basic 认证文件、代理口令、反向代理头应重点核查。
  • 预期证据:脱敏截图、密钥管理说明。
示例输出(节选)
/etc/httpd/conf.d/auth.conf: (htpasswd 口令为 bcrypt 哈希)
(未发现明文 password/Authorization 残留)

备份恢复

对应控制点:GB/T 22239-2019 8.1.4.9 数据备份恢复 a)c)

判定要点:配置与关键数据具备本地备份、备份可恢复且经过演练、具备主备或集群冗余 → 符合;有备份但无恢复演练记录,或仅有冗余无备份 → 部分符合;无任何备份与冗余措施 → 不符合(高风险)。

取证要求:备份策略与备份文件清单截图、恢复演练记录、集群/主备状态截图、备份介质与异地存放说明。

A. 配置备份

核查命令:

find /etc/httpd /etc/apache2 -maxdepth 2 -type f 2>/dev/null
  • 备注:应覆盖主配置、虚拟主机、证书、模块配置和脚本。
  • 预期证据:备份目录截图、备份策略。
示例输出(节选)
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/proxy.conf
/etc/httpd/conf.d/status.conf

B. 日志与证书备份

核查命令:

ls /var/log/httpd /var/log/apache2 2>/dev/null
  • 备注:日志和证书备份策略应明确。
  • 预期证据:归档截图、制度、访谈记录。
示例输出(节选)
access_log
error_log
access_log-20260823.gz
error_log-20260823.gz

C. 恢复能力

核查命令:

apachectl -t
  • 备注:可通过回滚流程、配置备份和证书恢复说明证明恢复能力。
  • 预期证据:恢复手册、演练记录、工单。
示例输出(节选)
apachectl -t
Syntax OK
(配置变更经 Git 版本管理与发布平台回滚)

剩余信息保护

对应控制点:GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)

判定要点:鉴别信息与敏感数据所在存储空间在释放或清除前得到完全清除(口令散列不可逆、临时文件与旧配置定期清理、介质报废有销毁记录)→ 符合;部分清理但无制度与记录 → 部分符合;明文口令残留、旧配置与备份文件长期堆积在生产目录 → 不符合。

取证要求:清理策略与计划任务截图、残留排查命令输出、介质销毁与设备报废记录、制度文件。

A. 历史站点与旧配置

核查命令:

find /etc/httpd /etc/apache2 -type f | grep -E "bak|old|default|welcome" 2>/dev/null
  • 备注:历史配置、备份文件、默认页面和测试站点应清理。
  • 预期证据:目录截图、清理说明。
示例输出(节选)
/etc/httpd/conf.d/welcome.conf.bak
/etc/httpd/conf/autoindex.conf.old
(历史备份文件应移出生产配置目录)

B. 凭据残留

核查命令:

grep -R "password\\|secret\\|token" /etc/httpd /etc/apache2 /var/log/httpd /var/log/apache2 2>/dev/null
  • 备注:配置、日志和脚本中残留敏感信息应重点核查。
  • 预期证据:脱敏截图、整改说明。
示例输出(节选)
/var/log/httpd/access_log: POST /admin/login admin_name=demo*** pwd=***
(表单参数进入访问日志,已列入脱敏整改)

个人信息保护

对应控制点:GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)

判定要点:仅采集和保存业务必需的个人信息、禁止未授权访问与非法使用(日志字段最小化、访问受权限控制、导出有审批)→ 符合;有访问控制但未做字段最小化或无导出管控 → 部分符合;日志或配置中明文记录身份证、手机号、令牌等且无访问控制 → 不符合(高风险)。

取证要求:日志格式与字段清单截图、样例日志(脱敏后)、个人信息访问权限配置、导出审批记录;不涉及个人信息时留存数据流说明作为不适用依据。

A. 日志字段最小化

核查命令:

grep -R "LogFormat" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:不建议日志记录完整 Cookie、Authorization 或其他个人信息字段。
  • 【不适用】若 Apache 仅提供静态分发或代理转发,且不记录个人信息相关字段,则该点可判定为不适用。
  • 预期证据:日志格式截图、日志样例截图。
示例输出(节选)
/etc/httpd/conf/httpd.conf: LogFormat "%h %l %u %t "%r" %>s %b "%{User-Agent}i"" common
(自定义日志格式不含 Cookie、手机号等个人信息字段)

B. 导出与共享控制

核查命令:

grep -R "DAV\\|Indexes\\|Alias" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:目录浏览、WebDAV、文件分发能力需关注个人信息文件越权共享。
  • 【不适用】若未启用文件共享、WebDAV、目录浏览等功能,且对象不直接承载个人信息,则该点不适用。
  • 预期证据:功能配置截图、权限说明。
示例输出(节选)
/etc/httpd/conf.d/download.conf: Alias /download /data/share
(下载目录启用认证与 IP 白名单,Indexes 关闭)

入侵防范

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~h)、8.1.4.5 恶意代码防范

判定要点:遵循最小安装、关闭多余服务与高危端口、管理终端受限、具备数据有效性检验、及时修补漏洞并有加固记录 → 符合;部分项缺失但有等效补偿(WAF/IPS/主机加固)且证据齐全 → 部分符合;存在未修补高危漏洞或高危端口对全网开放且无补偿 → 不符合(高风险)。

取证要求:组件与服务清单、端口扫描结果、管理终端限制配置、漏洞扫描与修补记录、基线加固对照表、攻击告警或阻断记录。

A. 状态页与默认内容暴露

核查命令:

grep -R "server-status\\|server-info\\|Indexes\\|DAV" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:重点核查状态页、目录浏览、WebDAV、默认页面和测试目录是否暴露。
  • 预期证据:配置截图、访问测试截图、处置说明。
示例输出(节选)
/etc/httpd/conf.d/status.conf: SetHandler server-status
(状态页已配置 Require ip 内网限制;DAV 未启用)

B. 危险模块与高风险方法

核查命令:

apachectl -M
grep -R "TraceEnable\\|LimitExcept" /etc/httpd /etc/apache2 /usr/local/apache2/conf 2>/dev/null
  • 备注:应关注危险模块、TRACE、PUT/DELETE、过度代理能力和上传利用面。
  • 预期证据:模块截图、配置截图、访谈记录。
示例输出(节选)
apachectl -M | grep trace
(无输出,mod_trace 已禁用)
grep TraceEnable conf
TraceEnable off

C. 版本与漏洞风险

核查命令:

httpd -v
  • 备注:需确认版本、补丁和历史高危漏洞整改情况。
  • 预期证据:版本截图、补丁或整改记录。
示例输出(节选)
httpd -v
Server version: Apache/2.4.57 (CentOS Stream)
Server built:   Apr 20 2024 08:12:00

D. 安全设备联动

核查命令:

tail -n 20 /var/log/httpd/access_log 2>/dev/null
tail -n 20 /var/log/apache2/access.log 2>/dev/null
  • 备注:Apache 入侵防范通常依赖 WAF、IPS、主机防护和日志告警平台联动。
  • 预期证据:WAF/IPS 截图、告警记录、平台材料。
示例输出(节选)
tail access_log(节选)
45.61.x.x - - [24/Aug/2026:03:11:02 +0800] "GET /wp-login.php HTTP/1.1" 404 -
tail error_log
[Thu Aug 24 03:11:05 2026] [error] [client 45.61.x.x] File does not exist: /var/www/html/wp-login.php
(扫描行为由 WAF 拦截并联动封禁,告警上送安全平台)

参考依据

关联文章