Apache 服务器配置 ServerSignature Off 主要用于隐藏错误页面中的版本信息,防止目录列表泄露需同时配置 Options -Indexes,两者均不能直接修复代码层面的路径遍历漏洞。适用 Apache 2.x 环境,修改配置文件后需重启服务,风险在于部分监控工具可能依赖服务器签名识别环境。
先说结论:ServerSignature 配置用于隐藏错误页面底部的服务器签名,配合 Options -Indexes 才能防止目录列表泄露。
- 先判断:确认 Apache 版本及配置文件位置,检查是否允许.htaccess 覆盖。
- 优先做:在 httpd.conf 或虚拟主机配置中设置 ServerSignature Off 及 Options -Indexes。
- 再验证:访问不存在的页面检查底部签名,访问无 index 目录确认是否列出文件。
命令速用版
以下配置片段可直接放入 httpd.conf 或虚拟主机配置文件中,修改后需重启 Apache 服务。
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
ServerSignature Off
</Directory>
# 全局隐藏 Server 头版本信息
ServerTokens Prod若使用.htaccess 文件,需确保 AllowOverride 已开启,内容如下:
Options -Indexes
ServerSignature Off为什么会这样
ServerSignature 指令控制错误页面底部是否显示服务器版本信息,关闭后可减少攻击者获取服务器具体版本号的途径。
默认情况下,Apache 在 404 或 403 错误页面底部会显示 Apache 版本和操作系统信息,攻击者可利用这些信息匹配已知漏洞。ServerTokens 指令控制 HTTP 响应头中的 Server 字段,设置为 Prod 仅显示 Apache 字样而不显示版本号。Options -Indexes 则防止当目录缺少 index 文件时直接列出文件结构,三者配合可降低信息泄露风险,但无法阻止应用层代码漏洞导致的路径遍历。
分步处理
第一步:定位配置文件。使用命令 apachectl -V 查看 SERVER_CONFIG_FILE 路径,通常为/etc/httpd/conf/httpd.conf 或/etc/apache2/apache2.conf。
第二步:修改配置。使用文本编辑器打开配置文件,搜索 ServerSignature,将其设置为 Off。若不存在则手动添加。同时在对应的 Directory 块中添加 Options -Indexes。
第三步:检查语法。执行 apachectl configtest 或 apache2ctl configtest 确认配置无语法错误。
第四步:重启服务。执行 systemctl restart httpd 或 systemctl restart apache2 使配置生效。
回滚提醒:修改前备份原配置文件,若服务启动失败,恢复备份文件并检查错误日志。
怎么验证是否生效
验证签名隐藏:浏览器访问一个不存在的 URL 触发 404 页面,检查页面底部是否还有 Apache 版本信息,若只显示简单错误提示则生效。
验证目录列表:访问一个没有 index.html 或 index.php 的目录 URL,若返回 403 Forbidden 而不是文件列表,则 Options -Indexes 生效。
验证响应头:使用命令 curl -I http://your-domain.com 检查 Server 字段,若仅显示 Apache 而不带版本号,则 ServerTokens Prod 生效。
常见坑
虚拟主机覆盖:若服务器运行多个虚拟主机,需确保每个 VirtualHost 配置块内都应用了相应设置,否则未配置的站点仍会泄露信息。
.htaccess 权限:若主配置中 AllowOverride 设置为 None,.htaccess 中的配置将不生效,需在主配置中统一修改。
模块依赖:ServerSignature 由 mod_core 提供,通常默认启用,但若编译时裁剪过模块需确认是否存在。
常见问题
ServerSignature 和 ServerTokens 有什么区别
ServerSignature 控制错误页面底部的签名显示,ServerTokens 控制 HTTP 响应头中的 Server 字段内容。
配置后网站打不开怎么办
检查 Apache 错误日志 locate 位置,通常为/var/log/httpd/error_log 或/var/log/apache2/error.log,根据报错信息回滚配置。
这能防止黑客入侵吗
不能,这仅减少信息泄露,增加攻击成本,无法替代代码漏洞修复和防火墙策略。
参考来源
Apache HTTP Server Documentation, Core Features, ServerSignature Directive, https://httpd.apache.org/docs/2.4/mod/core.html#serversignature
Apache HTTP Server Documentation, Core Features, ServerTokens Directive, https://httpd.apache.org/docs/2.4/mod/core.html#servertokens
Apache HTTP Server Documentation, mod_autoindex, Options Directive, https://httpd.apache.org/docs/2.4/mod/mod_autoindex.html