如何隐藏你正在运行 Apache 的事实?

如何隐藏你正在运行 Apache 的事实?

我怎样才能让它看起来好像我没有运行 Apache?我认为最好的方法是让它看起来好像是另一种类型的 httpd,例如 lighthttpd 或 iis。我知道通过使用 mod_security,您可以将服务器签名更改为任何内容:

SecServerSignature "Microsoft IIS"

是否有人知道掩盖正在使用的 HTTPD 的其他技巧?

答案1

你为什么要尝试这么做?

Apache httpd 暴露自身的方式有很多种,有明显的,也有不明显的。请把时间花在真正的安全上。版本标识符、库存页面、HTTP 标头和加载的模块只是 Apache httpd 暴露自身的方式中的几种。

运行 apache 并加载尽可能少的模块。将日志发送到另一台主机并进行实时日志分析。

设计您的系统,使得 Apache 的妥协不会导致直接访问您想要保护的内容。

答案2

有两种方法。最简单的方法是将其添加到您的 apache 配置文件中:

ServerSignature Off
ServerTokens Prod

另一个方法是更改​​ apache 源代码中的 /src/include/httpd.h 文件。更改:

#define SERVER_BASEVENDOR “Apache Group”
#define SERVER_BASEPRODUCT “Apache”
#define SERVER_BASEREVISION “”

define SERVER_BASEVENDOR: Microsoft
define SERVER_BASEPRODUCT: Microsoft-IIS
define SERVER_BASEREVISION: 5.0

然后重新编译apache。

可能还有其他解决方案,请在 Google 上尝试“Apache banner faking”。

答案3

可以从常用错误页面(404、500 等)的样式和内容判断 Apache 是否正在运行。请指定您自己的错误页面。

答案4

正如霍尔斯特所说,你真的应该质疑为什么你想隐藏你的主机。隐藏是机制,但应该被认为是最薄弱的,因此只需要在更为强大的安全架构中占据一层。

我强烈建议您查看Apache 的 CIS 基准并实施任何可以在您的环境中使用的东西。除了 NIST,互联网安全中心基准也经常被用作标准配置的基础。这很好,因为 Nessus 的专业供稿包括用于与 CIS 基准进行比较的审计文件。此外,这让您走上了可以轻松审计的标准配置之路,并大大降低了尝试充分管理大量不同系统的风险。

回到最初的问题,CIS Apache Benchmark v2.2 建议对信息泄漏保护进行以下设置

ServerTokens Prod
ServerSignature Off 

相关内容