Neo*_*Neo 21 apache-http-server
我想删除该行:
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
Run Code Online (Sandbox Code Playgroud)
来自我服务器的 HTTP 响应,但除了自己修改include/ap_release.h
和编译 Apache之外,我找不到任何其他东西。我想知道是否有我不知道的方法?
use*_*686 30
如果设置ServerTokens
为“ Prod
”,则可以将标题减少为“ Server: Apache
”。有关选项的完整列表,请参阅文档:
注意:两个版本中的设置相同,但是 2.4 文档添加了以下注释:
不建议将 ServerTokens 设置为小于 minimum,因为它会使调试互操作问题变得更加困难。另请注意,禁用 Server: 标头根本不会使您的服务器更安全。“通过默默无闻的安全”的想法是一个神话,会导致错误的安全感。
如果要完全删除“Apache”一词,则必须修改源代码。
小智 17
服务器身份屏蔽
一种通常有助于减缓和迷惑攻击者的技术是 Web 服务器身份更改。Web 服务器通常在服务器标头中的每个 HTTP 响应中发送它们的标识。Apache 在这里特别有用,它不仅默认发送其名称和完整版本,而且还允许服务器模块附加它们的版本。
要更改 Apache Web 服务器的身份,您必须进入源代码,找到名称“Apache”的硬编码位置,更改它,然后重新编译服务器。使用可以达到同样的效果
SecServerSignature 指令:
SecServerSignature "Microsoft-IIS/5.0"
应该注意的是,虽然这很有效,但熟练的攻击者(和工具)可能会使用其他技术来“指纹”网络服务器。例如,默认文件、错误消息、传出标头的顺序、服务器响应某些请求的方式等 - 都可以泄露真实身份。我将研究在未来版本的 mod_security 中进一步增强对身份屏蔽的支持。
如果您更改了 Apache 签名,但您对错误日志中的奇怪消息感到恼火(某些模块仍然可见 - 这只会影响错误日志,从外部看它仍然按预期工作):
[Fri Jun 11 04:02:28 2004] [notice] Microsoft-IIS/5.0 mod_ssl/2.8.12 OpenSSL/0.9.6b \ configured -- resuming normal operations
然后,您应该重新安排模块加载顺序,以允许 mod_security 最后运行,正如 chrooting 所解释的那样。
笔记
为了使该指令起作用,您必须将 ServerTokens 保留/设置为 Full。
当 SecServerSignature 指令用于更改公共服务器签名时,ModSecurity 将开始将真实签名写入错误日志,以允许您识别 Web 服务器和使用的模块。
归档时间: |
|
查看次数: |
48821 次 |
最近记录: |