直接隐藏Apache的Server响应头是降低被扫描识别的第一道防线;需先设ServerTokens Prod和ServerSignature Off,再用mod_headers的Header unset Server彻底移除,最后在反向代理层兜底清除。

直接隐藏 Apache 的 Server 响应头,是降低被自动化扫描器识别和针对性攻击的第一道防线。只改 ServerTokens Prod 不够——它仍会返回 Server: Apache,而现代扫描工具(如 nmap -sV、whatweb)能据此确认服务类型。真正有效的实战做法是“两步收紧 + 一层兜底”。
基础配置:关闭冗余信息输出
这两项必须写入主配置或虚拟主机配置中(如 /etc/apache2/apache2.conf 或站点配置文件),且需在启用 mod_headers 前生效:
-
ServerTokens Prod:让响应头仅显示Server: Apache,不带版本、系统或模块信息 -
ServerSignature Off:禁用错误页面(404/500等)底部的服务器标识文字,避免 HTML 内泄露
关键加固:彻底移除或清空 Server 响应头
ServerTokens Prod 不等于隐藏 Server 头,只是简化内容。要真正“不可见”,必须主动干预 HTTP 响应头:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 先启用模块:
a2enmod headers(Debian/Ubuntu)或确认mod_headers已加载(RHEL/CentOS) - 在配置中添加(推荐放在
或全局块内):Header unset Server(Apache ≥2.4.29 推荐)
或兼容性更强的写法:Header set Server "" - 若使用反向代理(如 Nginx、CDN),需同步在代理层清除或覆盖该头,否则 Apache 层的设置会被覆盖
验证是否生效:别信配置,要信 curl
改完必须实测,重点检查三类请求的响应头:
- 正常页面:
curl -I http://your-domain.com→ 确认无Server:行 - 错误路径:
curl -I http://your-domain.com/xxx→ 防止 404 页面意外暴露 - HTTPS 请求:
curl -I https://your-domain.com→ SSL 虚拟主机需单独配置,常被遗漏
延伸注意点:其他可能泄露的“马甲”
Server 头只是冰山一角,以下位置也常被忽略:
-
expose_php = Off(php.ini 中):防止 PHP 暴露X-Powered-By: PHP/8.x - 应用框架:Laravel、Django、WordPress 等可能注入
X-Generator或自定义头,需在中间件或响应处理中清除 - CDN 或 WAF:Cloudflare、阿里云WAF 默认可能添加
Server: cloudflare或X-Cache等,需查其控制台或 API 关闭标识










