Apache, mod_authz_host, неэффективное предложение "Разрешить из"
Я пытаюсь ограничить доступ к части моего веб-сайта только к определенной машине в локальной сети, используя mod_authz_host
, https://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
2 ответа
Прекратите использовать директивы 2.2, пожалуйста:
<Location /export>
Require ip 192.168.1.207
</Location>
Примечание: я также изменил ваше местоположение для менее сложного метода без регулярных выражений, так как вы, похоже, запрашиваете /export/kkk
Как ответил другой автор, 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 имеет%h
это имя хоста, которое Apache может искать по IP-адресу клиента.
Если вы добавите, вы также получите IP-адрес клиента. Гульника! См. примечание оmod_remoteip
если вы используете эту директиву.
ОДНАКО, я подозреваю, что вы запускаете этот сервер Apache на том же хосте, с которого пытаетесь получить к нему доступ, может ли это быть так? Если это так, вы можете быть перенаправлены через localhost -> См.Require local
в документации Apache.
Если это не так, возможно, вы маршрутизируетесь через IPv6, который имеет другой формат IP-адресов.mod_authz_host
также обрабатывает IPv6, примеры см. в документации.
ИзменениеLogFormat
включать%a
вам поможет , пример:
LogFormat "%h(%a) %l %u %t \"%r\" %>s %b"
ПС! Преобразование изapache-2.2
кapache-2.4
документировано в документации https://httpd.apache.org/docs/2.4/upgrading.html .
ПС!tcpdump
это удобный инструмент, который можно иметь в своем наборе инструментов для решения любых проблем, связанных с сетью. ymmv.