Запуск веб-сайта только в локальной сети

Запуск веб-сайта только в локальной сети

Это большой вопрос, поэтому я ищу только общий обзорный ответ, который поможет мне изучить те части, которые я не знаю.

По сути, проблема заключается в следующем: мне нужно взять выделенный Mac Mini (или аналогичную машину с macOS) и использовать его для размещения веб-сайта, доступного только тем, кто находится в той же локальной сети.

Моим первым побуждением было купить домен (и сертификат) и указать его на локальный адрес (например, 10.10.10.152), по которому, как я знаю, будет расположен мой сервер. Таким образом, любой, кто попытается получить доступ к этому домену, будет перенаправлен локально на мой веб-сайт, если он находится в правильной сети.

Будет ли это работать? Если да, то каковы основные шаги по получению домена, установке сертификата и указанию его на локальный IP?

решение1

купить домен (и сертификат) и указать его на локальный адрес (например, 10.10.10.152), по которому, как я знаю, будет расположен мой сервер. Таким образом, любой, кто попытается получить доступ к этому домену, будет перенаправлен локально на мой веб-сайт, если он находится в правильной сети.

Это сработало бы, но нет никакой необходимости что-либо покупать.

Вы можете настроить локальный DNS, напримерservice.example.org(если у вас естьпример.org), илисервис.lanбез собственного домена. Укажите запись A на ваш частный веб-сервер.

Если вам требуется HTTPS (TLS), вы можете либо самостоятельно подписать сертификат и явно доверять этому сертификату от каждого из ваших клиентов, либо создать новый CA (это займет всего минуту с OpenSSL), подписать сертификат длясервис.lanи разверните корневой сертификат CA для своих клиентов в качестве якоря доверия.

решение2

На основе обсуждения в комментариях вы можете использовать, например, Apache и установить что-то вроде: используя модуль mod_authz_hostи Requireдирективы.

<Directory /var/www/web/>
  Require host localhost
  Require ip 127.0.0.1
  Require ip 192.168.0
</Directory>

(выше я предполагаю, что ваша локальная сеть 192.168.0.0/24)

Эта конфигурация ограничит доступ ко localhost/127.0.0.1всем хостам в сети.192.168.0.0/24

решение3

Я не уверен, пришла ли вам в голову идея зарегистрировать/настроить домен и купить сертификат случайно или намеренно, но при отсутствии опыта настройки сети и системного администрирования это, вероятно, самый короткий путь к вашей цели.

Альтернативные подходы могли бы заключаться в следующем:

  • предоставить веб-сайт в Интернете, разрешить доступ только к пути ACME и получить бесплатный сертификат от LetsEncrypt (что также требует наличия у вас действительной публичной записи DNS — следовательно, разумно использовать статический IP-адрес или динамическую службу DNS)
  • создайте свой собственный центр сертификации, распространите сертификат CA среди клиентов и используйте его для подписи сертификата для сервиса
  • или вообще не использовать TLS (не рекомендуется).

Вам понадобится зарегистрированный домен с записями для получения сертификата от стороннего центра сертификации. Если вы выберете один из других методов, вам не понадобится зарегистрированный домен / общедоступные записи DNS - вы можете (например) использовать dnsmasq для вашего внутреннего DNS (легко предоставить переопределения определенных имен DNS).

Если ваше интернет-соединение не допускает внешнего доступа к IP-адресу хоста, вам не нужны дополнительные меры безопасности, но их добавление сейчас может предотвратить несчастные случаи в будущем.

Связанный контент