Apache - ограничение по IP не работает - PullRequest
13 голосов
/ 21 апреля 2010

У меня есть поддомен, который я хочу только для внутреннего доступа; Я пытаюсь добиться этого в Apache, редактируя блок VirtualHost для этого домена. Кто-нибудь может увидеть, где я иду не так? Обратите внимание, мой внутренний IP-адрес здесь 192.168.10.xxx. Мой код выглядит следующим образом:

<VirtualHost *:80>
  ServerName test.example.co.uk
  DocumentRoot /var/www/test
  ErrorLog /var/log/apache2/error_test_co_uk.log
  LogLevel warn
  CustomLog /var/log/apache2/access_test_co_uk.log combined
  <Directory /var/www/test>
    Order allow,deny
    Allow from 192.168.10.0/24
    Allow from 127
  </Directory>
</VirtualHost>

Спасибо

Ответы [ 3 ]

15 голосов
/ 21 апреля 2010

Вам не хватает линии Deny from all? Да, и неправильно использовать order.

Цитирование документов mod_access :

[...] всем хостам в домене apache.org разрешен доступ; всем остальным хостам запрещен доступ.

Order Deny,Allow
Deny from all
Allow from apache.org
5 голосов
/ 21 апреля 2010

Проблема в том, что вы разрешаете использование локальной сети. Замените Allow from 192.168.10.0/24 на Allow from 192.168.10. (разрешит 192.168.10. *).

Для полноты добавьте строку Deny from all, чтобы было ясно, что вы блокируете всех остальных.

1 голос
/ 21 февраля 2015

Полагаю, путь внутри тега Directory должен быть просто /

<VirtualHost *:80>
  ServerName test.example.co.uk
  DocumentRoot /var/www/test
  ErrorLog /var/log/apache2/error_test_co_uk.log
  LogLevel warn
  CustomLog /var/log/apache2/access_test_co_uk.log combined
  <Directory />
    Order allow,deny
    Allow from 192.168.10.0/24
    Allow from 127
  </Directory>
</VirtualHost>

, и, пожалуйста, не забудьте перезапустить apache

...