Разрешить доступ к виртуальному хосту Apache только из локальной сети

У меня есть веб-страница на сервере Linux, которую я администрирую, с Apache 2.2. Этот сервер доступен для внешнего мира для некоторых других сервисов.

Я хотел бы настроить Apache так, чтобы данный виртуальный хост был виден только внутри локальной сети, поэтому я могу развернуть веб-приложение, чтобы получить обратную связь от других людей в моей организации. Я считаю, что это связано с директивой Allow, но мои эксперименты идут не так хорошо.

Как я могу изменить свой файл конфигурации для достижения этого? Должен ли я изменить конфигурацию брандмауэра?

17 голосов | спросил Btz 19 MarpmWed, 19 Mar 2014 18:52:57 +04002014-03-19T18:52:57+04:0006 2014, 18:52:57

4 ответа


11

Легко. Просто установите что-то подобное в своей основной конфигурации или вашей виртуальной конфигурации:

<Directory /var/www/path/to/your/web/documents>

  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1 ::1
  Allow from localhost
  Allow from 192.168
  Allow from 10
  Satisfy Any

</Directory>

Оператор <Directory></Directory> в основном говорит: «Используйте эти правила для чего-либо в этом каталоге. И по «этой директории», которая относится к /var/www/path/to/your/web/documents, который я установил в этом примере, но должен быть изменен в соответствии с вашим сайтом путь к локальному каталогу.

Далее в области <Directory></Directory> вы изменяете поведение Apache по умолчанию, которое по умолчанию Allow - Order Deny,Allow. Затем вы устанавливаете Deny from all, чтобы запретить доступ от всех. Follwing, которые являются оператором Allow from, который разрешает доступ с 127.0.0.1 ::1 (IP-адрес локального хоста), localhost (сам локальный хост) , Это все стандартные вещи. Поскольку доступ из localhost необходим для многих внутренних системных процессов.

Далее следует материал, который вам подходит.

Allow from для 192.168, а также 10 будет разрешать доступ с любых /всех сетевых адресов в пределах диапазона сети, который имеет префикс эти числа.

Итак, указав 192.168, что в основном означает, что у пользователя есть такой адрес, как 192.168.59.27 или 192.168.1.123), они смогут см. веб-сайт.

И аналогичным образом использование Allow from для префикса 10 гарантирует, что если у кого-то есть IP-адрес 10.0.1.2 или даже 10.90.2.3, они смогут видеть содержимое.

Практически все внутренние сети в мире используют либо диапазон 192.168, либо что-то в диапазоне 10. Ничего внешнего. Таким образом, использование этого комбо позволит вам заблокировать доступ к внешнему миру, но только разрешить доступ из вашей локальной сети.

ответил JakeGould 17 PM000000100000001031 2014, 22:29:10
8

Люди, приземляющиеся в этом ответе, учтите, что это характерно для Apache 2.2.

Apache 2.4 устарел на эти директивы.

Новый способ - использовать модуль mod_authz_host и директивы Require. ( ссылка )

В Apache 2.4 вы должны сделать

<Directory /var/www/ncp-web/>
  Require host localhost
  Require ip 127.0.0.1
  Require ip 192.168
  Require ip 10
</Directory>

и удалите все разрешенные директивы.

ответил nachoparker 16 J000000Sunday17 2017, 20:26:24
4

Добавьте этот раздел в директиву виртуального хоста:

<Location /mypathurl>
    Order deny,allow
    Deny from all
    Allow from 192.168.1.10
</Location>

Замените IP-адрес выше. Это не должно использоваться для обеспечения безопасности финансового уровня, FYI.

ответил Chloe 17 AM000000100000003631 2014, 10:09:36
-1

Я не знаю, как у вас есть настройка сети, однако я предполагаю, что что-то попытаюсь сделать лучше.

Предположим, у вас есть небольшой офис с DSL-соединением. У вас будет статический публичный IP-адрес или блок адресов, назначенных вашей линии, DSL-модем и брандмауэр. Не вдаваясь в подробности того, как это происходит, я доберусь до важной части.

Вы должны использовать NAT (преобразование сетевых адресов). Это позволяет публичным IP-адресам размещаться на стороне WAN (Интернет) вашей сети и использовать частные IP-адреса (например, 10.0.0.100) в сети на стороне локальной сети. Это стандартная процедура работы. Если вы размещаете веб-сервер в своей сети, вы будете использовать переадресацию порта или другой аналогичный механизм), чтобы указать любой веб-трафик на ваш веб-сервер.

В этом стандартном сценарии ваши внутренние компьютеры будут использовать частные IP-адреса.

Предполагая, что у вас есть аналогичная стандартная настройка сети, вы должны изменить IP-адрес своего компьютера с общедоступного IP-адреса на частный IP-адрес. В вашей сети может быть установлена ​​DHCP, где ваш компьютер может запросить доступный IP-адрес. Это означает, что вместо указания IP-адреса вы выбираете использование DHCP и назначается IP-адрес. Если DHCP недоступен, вам нужно будет проверить некоторые другие компьютеры для частного IP-адреса, которое может быть использовано, и выбрать IP-адрес в пространстве, которое не используется. Вы можете указать этот неиспользуемый IP-адрес в настройке сети. Это должно препятствовать вашей системе видеть в Интернете.

ответил closetnoc 20 MaramThu, 20 Mar 2014 04:25:36 +04002014-03-20T04:25:36+04:0004 2014, 04:25:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132