【问题标题】:Unable to restrict access to Apache 2.4 Reverse Proxy on SSL by IP无法通过 IP 限制对 SSL 上的 Apache 2.4 反向代理的访问
【发布时间】:2019-12-20 16:19:47
【问题描述】:

我正在尝试限制对我的 Apache 2.4 服务器上的反向代理的访问。它适用于 http,但不适用于 https。

我在另一台服务器上设置了 ProxyPass 和 ProxyPassReverse,并且有 2 个包含相同 Require ip 行的 .conf 文件。 http 反向代理有效,但 https 表示“客户端被服务器配置拒绝。

服务器是 10.0.1.1,端点是 10.0.1.2。

http_vhost.conf

<Location />
   Require ip 10.0.0.0/16
</Location>
ProxyPass / http://10.0.1.2/
ProxyPassReverse / http://10.0.1.2/

https_vhost.conf

<Location />
   Require ip 10.0.0.0/16
</Location>
SSLProxyEngine on
ProxyPass / http://10.0.1.2/
ProxyPassReverse / http://10.0.1.2/

从 10.0.1.100 ip 地址访问 http_vhost,vhost 按预期工作。 10.0.1.2 上的网站内容按预期显示。

从同一个10.0.1.100 ip地址访问https_vhost,vhost内容显示

Forbidden. You don't have permission to access / on this server.

https_vhost 在 access.log 中显示以下内容:

127.0.0.1 - - [14/Aug/2019:12:47:21 +0800] "GET / HTTP/1.1" 403 6692 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"

但在error.log中显示如下:

[Wed Aug 14 12:48:04.604656 2019] [authz_core:error] [pid 4671] [client 127.0.0.1:54607] AH01630: client denied by server configuration: http://10.0.1.2/

http 服务器的 access.log 条目是:

mydomain.com:80 10.0.1.100 - - [14/Aug/2019:18:13:35 +0800] "GET / HTTP/1.1" 200 348 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"

当我评论“需要 ip”行时,http 和 https 都按预期工作。

有人知道怎么解决吗?

【问题讨论】:

  • http_site.confhttps_site.conf 之间还有其他区别吗?
  • http_site.confhttps_site.conf 之间的唯一区别是端口 80 与 443 的声明,以及 SSLEngine + SSLCertificateFile 行。但就限制而言,Require 行是唯一的游戏规则改变者..
  • 能否显示成功http请求的访问日志行
  • 从http请求,访问日志行是:vhost.mydomain.com:80 10.0.1.100 - - [14/Aug/2019:18:13:35 +0800] "GET / HTTP/1.1" 200 348 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"
  • 我可能想提一下这两个条目是虚拟主机,服务器有多个虚拟主机它是反向代理,但这是我第一次遇到这个问题,因为有限制访问的请求通过 IP 地址到一个特定的虚拟主机。

标签: apache reverse-proxy apache-config


【解决方案1】:

我发现了为什么 SSL 从 127.0.0.1 进来。我也在使用 SSLH,它允许我通过同一个端口进行 SSH,允许我关闭端口 22,避免大多数暴力攻击。

更新了我的 SSLH 版本,进行了一些配置更新,并打开了透明模式,现在 IP 地址已正确传递给 Apache。

问题已结束。感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2017-04-21
    • 1970-01-01
    • 2017-09-19
    • 2018-07-23
    • 2018-02-18
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多