Apache,mod_authz_host,无效的“允许来自”条款

Apache,mod_authz_host,无效的“允许来自”条款

我正在尝试使用 将对我网站部分内容的访问限制为仅限本地网络内的特定机器mod_authz_hosthttps://httpd.apache.org/docs/2.4/mod/mod_authz_host.html

我的配置如下:

<LocationMatch "/export.*">
  Order allow,deny
  Allow from 192.168.1.207
</LocationMatch>

192.168.1.207我想要允许访问的机器的 IP 地址在哪里。

问题是该机器的访问仍然被拒绝。

在日志中访问如下所示:

fvs318gv2 - - [27/Mar/2018:15:42:28 +0200] "GET /export/ HTTP/1.1" 403 209

编辑:使用的相应日志格式是:"%h %l %u %t \"%r\" %>s %b"

这让我很疑惑,这是什么fvs318gv2意思,它甚至看起来不像一个 IP 地址?显然,Apache 没有将机器视为来自其 IP 地址,问题可能出在哪里?

如果我ipconfig /all在那台机器上执行此操作,我会得到:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : ****
   Primary Dns Suffix  . . . . . . . : 
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter PýipojenĄ k mĄstnĄ sĄti:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   Physical Address. . . . . . . . . : EC-A8-6B-81-87-60
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::c4be:bf88:60e3:f97b%7(Preferred) 
   IPv4 Address. . . . . . . . . . . : 192.168.1.207(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : pondŘlĄ 26. býezna 2018 16:10:21
   Lease Expires . . . . . . . . . . : stýeda 28. býezna 2018 10:49:43
   Default Gateway . . . . . . . . . : 192.168.1.2
   DHCP Server . . . . . . . . . . . : 192.168.1.2
   DHCPv6 IAID . . . . . . . . . . . : 250390635
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-17-4B-5D-B6-EC-A8-6B-81-87-60
   DNS Servers . . . . . . . . . . . : 192.168.1.2
   NetBIOS over Tcpip. . . . . . . . : Enabled

Wireless LAN adapter Wi-Fi:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Belkin Wireless Adapter
   Physical Address. . . . . . . . . : EC-1A-59-D8-1F-18
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter PýipojenĄ k mĄstnĄ sĄti* 3:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter
   Physical Address. . . . . . . . . : EC-1A-59-D8-1F-18
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter PýipojenĄ k mĄstnĄ sĄti* 12:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Microsoft Hosted Network Virtual Adapter
   Physical Address. . . . . . . . . : EC-1A-59-D8-1F-18
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter Teredo Tunneling Pseudo-Interface:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2001:0:9d38:6ab8:850:262d:2a57:4513(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::850:262d:2a57:4513%3(Preferred) 
   Default Gateway . . . . . . . . . : ::
   DHCPv6 IAID . . . . . . . . . . . : 167772160
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-17-4B-5D-B6-EC-A8-6B-81-87-60
   NetBIOS over Tcpip. . . . . . . . : Disabled

答案1

请停止使用 2.2 指令:

<Location /export>
  Require ip 192.168.1.207
</Location>

注意:我还修改了您的位置,以便使用一种不太复杂的方法,而无需使用正则表达式,因为您似乎请求 /export/kkk

答案2

正如另一位发帖者所回复的,apache-2.4 使用其他指令来改变要求。

https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html

对于 IP 过滤器本身,你必须仔细检查你使用的 IP实际上来自。

看一眼https://httpd.apache.org/docs/2.4/mod/mod_log_config.html 您使用的 LogFormat 字符串具有%hapache 能够从客户端 IP 查找的主机名。

如果您添加,%a您还将获得客户端 IP 地址。注意!请参阅有关mod_remoteip 如果您使用该指令。

然而,我怀疑你在试图访问它的同一台主机上运行这个 Apache 服务器,可能是这样吗?如果是这样,你可能通过本地主机进行路由 --> 参见Require localapache 文档。

如果不是这样,可能您是通过 IPv6 进行路由的,其 IP 地址格式不同。mod_authz_host还处理 IPv6,请参阅文档中的示例。

修改LogFormat为包括%a 会帮助你, 例子:

LogFormat "%h(%a) %l %u %t \"%r\" %>s %b"

PS!从apache-2.2到 的转换apache-2.4已记录在文档中https://httpd.apache.org/docs/2.4/upgrading.html

PS!tcpdump是您工具箱中可用于解决所有与网络相关的问题的便捷工具。ymmv。

相关内容