必须同步配置ServerTokens Prod、ServerSignature Off、Header unset Server,并清理X-Powered-By等冗余头及错误页内容,才能彻底隐藏Apache版本与系统信息。

Apache 默认会在 HTTP 响应头和错误页面中暴露版本号与操作系统信息,比如 Server: Apache/2.4.52 (Ubuntu),这会帮助攻击者快速识别可利用的已知漏洞。只改一项配置无法真正隐藏,必须同步处理三类位置:响应头、错误页面、额外标识头。
修改 ServerTokens 和 ServerSignature
这两项是控制响应头和页脚信息的核心指令:
- 在
/etc/httpd/conf/httpd.conf(CentOS/RHEL)或/etc/apache2/apache2.conf(Debian/Ubuntu)中查找或添加: -
ServerTokens Prod—— 使响应头只显示Server: Apache,不带版本和系统 -
ServerSignature Off—— 关闭错误页面(如 404、500)底部的服务器签名 - 若使用模块化配置(如
httpd-default.conf),也要检查并修改对应文件中的相同指令
清除 Server 响应头(需 headers 模块)
仅设 ServerTokens Prod 仍可能泄露 Server: Apache,彻底隐藏需移除整个头:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 确认启用了
headers模块:a2enmod headers(Debian系)或检查LoadModule headers_module modules/mod_headers.so(RHEL系) - 在主配置或虚拟主机段中添加:
Header unset Server - 注意:该操作需 Apache ≥ 2.2.12 且 headers 模块启用,否则重启会报错
替换或屏蔽错误页面中的版本信息
默认 404/500 页面仍可能含 Apache 版本文字,尤其当 ServerSignature On 被遗漏时:
- 自定义错误文档,例如在配置中添加:
ErrorDocument 404 /404.html - 创建静态
/var/www/html/404.html,内容不含任何服务标识 - 或直接禁用动态页脚:确保全局和虚拟主机内都设置了
ServerSignature Off
清理其他可能泄露的头字段
除了 Server 头,还有几个常见字段也暴露后端技术栈:
-
X-Powered-By(常由 PHP 添加):在php.ini中设expose_php = Off - 反向代理(如 Nginx 前置)需在 proxy 配置中清除上游头:
proxy_hide_header Server; - 检查是否误启了调试模块(如
mod_info、mod_status),生产环境应禁用或限制访问

















