如何使我的 apache 配置文件在网页中可见?

如何使我的 apache 配置文件在网页中可见?

如何使我的 apache 配置文件在网页中可见?有没有简便的方法?

这样安全吗?我的意思是……应该只有我才能看到?或者说,如果没人知道这是哪个页面,那就没问题了?

答案1

它是否安全取决于您的特定 Apache 配置。但实际上您不应该向公众公开任何系统的配置详细信息,除非您有非常特殊的需求(例如,您正在运行一个有关 Apache 安全性的网站并使用该网站本身作为示例)。

尽管如此,如果你真的想这么做,只需在你的 web 目录中创建一个指向配置文件的符号链接即可。例如:

ln -s /etc/apache2/apache2.conf /var/www/apache2.conf

然后用户可以输入http://www.yourdomain.example/apache2.conf并查看它。当然,您的配置文件必须是世界可读的。

ln -s /etc/apache2 /var/www/my-apache-configuration-directory请注意,Apache 配置通常不仅仅只有该文件,如果希望显示完整配置,则必须公开整个 /etc/apache2 conf( )。

现在,如果你的意思是希望配置文件显示为部分网页,基本上,您需要一个 CGI 脚本或其他可执行文件来构建网页,并将该文件的内容作为该过程的一部分。或者,您可以创建一个外部脚本来构建该网页,然后将 HTML 文件转储到某个地方。您可以让此脚本通过 cron 每隔一段时间(一天一次?)运行一次,以检查文件是否有更新,或者,如果您使用的是 Linux,您可以使用 inotify 做一些复杂的操作,并让它在您修改文件时调用重建脚本。或者,您可以选择简单的路线并使用服务器端包含。

但事实上,这是一个坏主意。不要这么做。

答案2

不,这并不安全,www(或任何以 apache 身份运行的用户)用户不应该能够读取 Web 树之外的文件。

最好的方法是将文件复制到 web-root 的子目录(可能使用 cron 定期执行)并使用以下方法保护它.htaccess

答案3

我的问题是,为什么你需要将它暴露在外部?Apache 基本上应该是一个“设置并忘记”的服务器。我不想假设太多,但我的第一个猜测是,如果你想这样做,那么你的 Apache 模型肯定有问题。为什么你需要在远处看到它(但不能改变它),或者经常看到它,以至于值得花功夫把它弄出来。配置文件可以包括其他配置文件,你需要将所有这些文件都暴露出来,以确保你可以看到配置中涉及的所有内容。

是的,这可能很危险。这会向攻击者泄露大量有关您的配置的信息。如果您的配置不安全,您会暴露它。如果您想这样做,请锁定它。不要以为不链接到此文件人们就不会找到它。如果您做这样的事情,请为其创建一个目录并使用密码、IP 限制或两者锁定它。

我有两个建议。一个是公开可通过模块获得的配置子集mod_info。默认配置中已经有一个httpd.conf将 URL 映射/server-info到 mod_info 模块的配置,但默认情况下它已被注释掉。请务必了解它的允许/拒绝配置,并将其锁定到只有您可以看到数据的位置。它不会像真正的配置那样公开那么多,但应该锁定它。

另外,看看 Webmin,它是一种配置 UNIX 机器(包括 Apache)的方法。您可以远程配置。显然,这需要付出更多努力才能发挥作用。

相关内容