Apache .conf 文件“需要所有”实用程序?
Posted
技术标签:
【中文标题】Apache .conf 文件“需要所有”实用程序?【英文标题】:Apache .conf files "Require all" utility? 【发布时间】:2020-06-06 14:52:46 【问题描述】:我正在使用 Fedora 30 上的 Apache .conf 文件。
在/etc/httpd/conf/httpd.conf中,有:
<Directory />
AllowOverride none
Require all denied
</Directory>
还有:
DocumentRoot "/var/www/html"
这意味着“localhost”从这个“/var/www/html”目录开始。
问题 1:对于目录“/”而 DocumentRoot 处于较低级别(因此服务器不会提供较高级别目录中的任何文件),“要求全部拒绝”有什么用?
httpd.conf 的末尾有:
IncludeOptional conf.d/*.conf
所以我在“/etc/httpd/conf.d”中创建了一个personal.conf;我在里面设置:
<Directory "/var/www">
AllowOverride None
Require all denied
</Directory>
我重新启动 Apache(systemctl restart httpd.service),但 localhost/index.html(又名“DocumentRoot”/index.html 或“/var/www/html”/index.html)仍然可用。
就好像 httpd.conf 中的这个指令是优先的:
<Directory "/var/www/html">
Require all granted
</Directory>
问题 2:那么在更高级别的存储库上“要求所有拒绝”有什么用?
感谢您的帮助:)
【问题讨论】:
【参考方案1】:问题 1:目录“/”中的“要求全部拒绝”有什么用,而 DocumentRoot 处于较低级别(因此服务器不会提供较高级别目录中的任何文件)?
问题 2:那么在更高级别的存储库上“要求所有拒绝”有什么用?
如果Require all denied
不存在,服务器可以轻松地为文档根目录下的文件提供服务,您只需要在服务器中配置一个小错误。例如,想象一个Alias
喜欢
Alias /etc /etc
这将允许您从http://localhost/etc/passwd 或其他敏感内容中读取密码文件。使用默认配置,您将需要像
这样的显式覆盖<Directory /etc>
Require all granted
</Directory>
这样做。
指令
<Directory />
AllowOverride none
Require all denied
</Directory>
用于防止任何访问您的/var/www/html
目录下的安全机制(“尽可能限制”)。
【讨论】:
【参考方案2】:谢谢你的回答。
现在回答问题 2;让我们想象一个房子:室外 [门 1] 大厅 [门 2] 走廊 [门 3] 客厅。
在/etc/httpd/conf/httpd.conf中,我关闭了房子的前门[门1]
<Directory />
AllowOverride none
Require all denied
</Directory>
我打开大厅和走廊之间的门[门 2]
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
我打开走廊和客厅之间的门[门 3]
<Directory "/var/www/html">
AllowOverride None
Require all granted
</Directory>
然后在“/etc/httpd/conf.d”的personal.conf文件中我关上了大厅和走廊之间的门[门2]:
<Directory "/var/www">
AllowOverride None
Require all denied
</Directory>
为什么客厅仍然可以访问(localhost/index.html 或 /var/www/html/index.html 可以访问)而 [门 2] 已关闭?
我需要明确:
<Directory "/var/www/html">
AllowOverride None
Require all denied
</Directory>
在个人.conf 中
获取“禁止您无权访问此资源”。留言...
再次感谢。
【讨论】:
以上是关于Apache .conf 文件“需要所有”实用程序?的主要内容,如果未能解决你的问题,请参考以下文章
即使在应用程序部署之后,如何永久编辑 httpd.conf 以使 apache 2.4 中的更改发生?
即使在应用程序部署之后,如何永久编辑httpd.conf以便在Apache 2.4中进行更改?