Как развернуть приложение Django на сервере Linux в домашней сети так, чтобы оно было доступно только тем, кто находится в этой сети?

Описание проблемы:

У меня есть приложение Django, которое я хотел бы развернуть на сервере Linux, но я хочу, чтобы оно было доступно только устройствам в моей домашней сети (например, компьютерам и мобильным устройствам, подключенным к одному Wi-Fi). Я не хочу, чтобы оно было общедоступным через Интернет.

У меня следующая настройка:

  • Приложение Django запущено на сервере Linux (Ubuntu 20.04).
  • Сервер подключен к моей домашней сети через Ethernet или Wi-Fi.
  • Я хочу убедиться, что приложение может быть доступно с устройств в той же сети, но не извне сети.

Каким образом лучше всего развернуть и настроить это приложение Django, чтобы достичь следующего?

  1. Ограничение доступа к домашней сети: Я хочу, чтобы приложение было доступно только для устройств, физически подключенных к домашней сети (например, через Wi-Fi или Ethernet), и не выходило во внешний мир.

  2. Конфигурация веб-сервера: Следует ли мне использовать Gunicorn или uWSGI с Nginx или Apache? Как их настроить, чтобы обеспечить надлежащую безопасность и изоляцию?

  3. Настройки брандмауэра: Какие правила брандмауэра следует установить, чтобы блокировать внешний доступ и разрешить трафик только из локальной сети?

  4. Сетевые соображения: Как настроить приложение Django на привязку к локальному IP сервера, чтобы оно принимало запросы только из локальной сети?

Любая помощь в настройке сервера, Django и параметров брандмауэра будет очень признательна!

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

    Если это предположение верно, то вам , вероятно, больше ничего не нужно делать. Маршрутизатор предоставляет услугу NAT, которая исключает явные попытки внешнего субъекта инициировать контакт с любым устройством в вашей домашней сети. Если это предположение неверно, вам следует уточнить детали среды вашей домашней сети.

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

  3. Если учесть мое предположение о вашем домашнем маршрутизаторе, то в принципе вам не нужно изменять конфигурацию его брандмауэра. Вы должны убедиться, что на нем не включены правила проброса портов, а если включены, то эти правила не указывают на порт прослушивания вашего приложения Dango.

    Чт ufw

    sudo ufw allow proto tcp from 192.168.1.0/24 to any port 80 192.168.1.0/24 80

о
Вернуться на верх