Доступ к Apache2 ограничен локальной сетью - PullRequest
5 голосов
/ 16 июня 2009

До недавнего времени у меня было несколько виртуальных сайтов, настроенных так:

<VirtualHost 127.0.0.1:1234>
    ...

Это прекрасно работает для тестирования на моей локальной машине, где я использую рабочий стол Linux. Чтобы проверить, как MS и Explorer отображают мои страницы с моего ноутбука с Windows, я изменил это на

<VirtualHost *:1234>
    ...

Что также хорошо работает, вызывая сайт с http://[mylinuxservername]:1234 на IE моего ноутбука. Однако я хочу ограничить этот подстановочный знак локальной сетью. При подключении любого ip, например 192.nnn.nnn.nnn или 192. Локальный сервер все еще отлично работает на моем компьютере с Linux:

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...

или

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...

В любом случае, мне не нравится этот подстановочный знак во втором примере конфигурации выше. Кто-нибудь намекает?

Ответы [ 3 ]

12 голосов
/ 16 июня 2009

Параметром (ами) VirtualHost являются локальные адреса, которые вы слушаете, а не удаленные.

В Apache 2.4 и новее используйте директиву Require:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

Если вы используете Apache 2.2 или более раннюю версию, используйте конфигурацию authz_host :

Order Allow,Deny
Allow from 127.0.0.0/8
Allow from 192.168.0.0/16

Это также может работать на Apache 2.4, но Order и Allow устарели .

4 голосов
/ 20 марта 2016

Просто заметка на случай, если сюда придут такие нубы, как я:)

Сервер Apache HTTP настроен путем размещения директив в виде простого текста конфигурационные файлы. Основной файл конфигурации обычно называется httpd.conf. Основные конфигурационные файлы

Для версии 2.4

Директивы Allow, Deny и Order, предоставляемые mod_access_compat, устарели и уйдут в будущей версии. Вам следует избегать использовать их, и избегать устаревших руководств, рекомендующих их использование. Контроль доступа

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

или (не совсем то же самое)

Require ip 127.0
Require ip 192.168
0 голосов
/ 16 июня 2009

Используйте iptables для ограничения доступа к самой машине. Первая команда разрешит HTTP-трафик из любой сети в диапазоне 192 (заметьте, я думаю, что вам нужно 192.168, чтобы действительно быть локальным, но я могу ошибаться) Вторая команда просто отбрасывает пакеты из других источников для порта 80

iptables -I 1 INPUT -s 192.0.0.0/8 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


iptables -I 2 INPUT -p tcp --dport 80 -m state --state NEW -j DROP 

Тогда на вашем виртуальном хосте вы можете сделать <VirtualHost *:80>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...