servertokens prod 和 serversignature off 是基础配置,需写入主配置文件;还需启用 mod_headers 并 header unset server 彻底清除响应头,同时关闭 php 的 expose_php、自定义错误页、清理 x-powered-by 等冗余头,反向代理场景须同步处理。

直接在 Apache 主配置里设 ServerTokens Prod 和 ServerSignature Off 就能大幅减少版本号暴露,但这只是基础——真正干净的隐藏,还得补上响应头清理和错误页控制。
改两个核心指令就够了
这两个配置必须写进主配置文件(/etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf),不是可选,是必做:
-
ServerTokens Prod:让响应头从
Server: Apache/2.4.52 (Ubuntu)缩成Server: Apache,去掉版本、系统、模块等全部细节 - ServerSignature Off:关掉 404、500 等错误页面底部自动生成的服务器标识,比如“Apache/2.4.52 (Ubuntu) Server at example.com Port 80”这类文字
光设 Prod 还不够,得删掉 Server 头
ServerTokens Prod 只是简化,没真正消失。攻击者用 curl -I 一眼就能看到 Server: Apache。要彻底隐身,得主动清除:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 先启用
mod_headers模块:a2enmod headers(Debian/Ubuntu)或确认LoadModule headers_module已加载(RHEL/CentOS) - 在
<virtualhost></virtualhost>或全局<ifmodule mod_headers.c></ifmodule>块里加一行:Header unset Server(Apache ≥2.4.29 推荐) - 旧版本兼容写法:
Header set Server "",效果一样,把值设为空
别漏掉错误页和 PHP 泄露
错误页面和后端脚本常悄悄补刀:
- 自定义
ErrorDocument:比如加ErrorDocument 404 /404.html,页面内容只写“页面未找到”,不提任何技术词 - PHP 用户检查
/etc/php/*/apache2/php.ini,确保expose_php = Off,否则会多出X-Powered-By: PHP/8.x - 顺手清掉其他头:
Header unset X-Powered-By、Header unset X-Generator
反向代理场景要同步处理
如果前面套了 Nginx、CDN 或 WAF,Apache 层的设置可能被覆盖:
- Nginx 前置时,在其配置里加
proxy_hide_header Server; - Cloudflare 或阿里云 WAF 需进控制台关闭“Server”头透传,或用规则引擎删除
- SSL 虚拟主机单独检查:HTTPS 请求也要跑一遍
curl -I https://your-domain.com,别只测 HTTP










