繁体   English   中英

如何仅允许从 Apache Httpd 2.4 上的特定主机访问?

[英]How to allow access only from a specific host on Apache Httpd 2.4?

我使用Apache Httpd 2.4作为 Web 服务器,但我无法仅允许从特定主机访问我的 Web 服务器上的 URL 路径“/x”。

httpd.conf:

<Location "/x">
    Require host myhost.com
</Location> 

基本上它忽略“需要主机 myhost.com”并限制来自所有主机的访问。

authz_host , authz_core模块已启用。

我错过了什么吗?

谢谢

要使Require host工作,您必须确保域的反向 dns 查找工作正常。 这是通过您的 DNS 中的PTR (指针)记录完成的。 您可以使用dig命令进行检查,如下所示:

$ dig +short www.google.de
172.217.22.67
$ dig +noall +answer -x 172.217.22.67
67.22.217.172.in-addr.arpa. 85372 IN    PTR fra15s17-in-f3.1e100.net.
67.22.217.172.in-addr.arpa. 85372 IN    PTR fra15s17-in-f67.1e100.net.

注意PTR记录的IP是反的:172.217.22.67 <=> 67.22.217.172

所以 www.google.com 有一个正确的反向 dns 条目。

如果您的域没有设置反向 dns 指针,您将在 apache 错误日志中找到这样的条目(除非您将其配置为位于不同的位置,否则它应该是/var/log/apache2/error.log ):

[Wed Dec 05 16:18:23.854771 2018] [authz_core:error] [pid 4711] [client W.X.Y.Z:54050] AH01630: client denied by server configuration: /var/www/example.com/x

作为一种解决方法,您可以只使用Require ip

<Location "/x">
    Require ip W.X.Y.Z
</Location> 

根据 error.log 中的条目,其中 WXYZ 是您的 IP。

希望这会有所帮助,如果是这样,我会很高兴您接受答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM