Доступ к домашней сети через VPN
Все чаще возникают ситуации, в которых пользователям, находящимся в пути, приходится обращаться к домашней сети и сетевому хранилищу. Для минимизации рисков в незашифрованных беспроводных сетях при подобных действиях рекомендуется организовать «виртуальную частную сеть» (Virtual private network, VPN). Преимущество подобного VPN-соединения в сравнении с решением, использующим динамическую систему доменных имен: вы используете прямую связь со всей вашей домашней сетью, такую же, как если бы вы сидели дома, в рабочем кабинете. В этой статье мы расскажем, как настроить функцию VPN в сетевом хранилище Synology и сконфигурировать устройства.
1 VPN-соединение с сетевым хранилищем Synology
Самыми важными условиями являются установленная на сетевом хранилище Synology новейшая версия операционной системы DiskStation Manager (DSM) и настроенный удаленный доступ. В этом случае запустите в центре управления компонент «VPN-сервер», расположенный в разделе «Служебные программы». Теперь вы можете выбрать один из трех вариантов подключения. Поскольку «PPTP» считается небезопасным, а поддержка «OpenVPN» мобильными устройствами осуществляется не в полной мере, щелкните в левом разделе («Настройки») по пункту «L2TP/IPSec» и активируйте функцию. Уже введенные параметры, например «Динамический IP-адрес», присвоенный подключенным через VPN устройствам, изменять не требуется. Необходимо лишь ввести надежный пароль в пункте «Предустановленный пароль» и повторить его в пункте «Подтвердить предустановленный пароль». Сохраните изменения, нажав кнопку «Принять», и подтвердите кликом по «ОК» сообщение о переадресации UDP-портов 500, 1701 и 4500.
Важный момент: если вы используете брандмауэр сетевого хранилища, следует открыть указанные выше порты. Кроме того, в диалоговом окне «VPN-сервер» необходимо выбрать пункт «Привилегии» и ограничить права пользователей, которым запрещен доступ по VPN. Во избежание этих действий в будущем выберите в левом столбце раздел «Общие настройки» и снимите галочку в пункте «Предоставить права доступа по VPN для новых пользователей». Пользователи, имеющие права доступа по VPN, перечислены в пункте «Протокол». Системы сетевого хранения данных производства компаний Asustor и Qnap также поддерживают доступ по VPN. Настройка практически одинакова: запуск приложения (Asustor — «VPN-сервер», Qnap — «QVPN-сервис»), выбор типа VPN и ввод необходимой информации.
2 Настройка переадресации портов на маршрутизаторе
Чтобы маршрутизатор мог пересылать пакеты данных, поступающие из Интернета, к требуемым устройствам, он должен «знать», какими сетевыми клиентами являются эти устройства. Для этого на нем необходимо настроить переадресацию портов. Это осуществляется с помощью маски конфигурации маршрутизатора. Откройте веб-браузер и зайдите на ваш роутер через веб-интерфейс.
Затем щелкните по пункту меню «Интернет | Разрешения» и активируйте вкладку «Переадресация портов» для настройки переадресации. Перейдите вниз, к пункту «Добавить разрешенное устройство», и выберите ваше сетевое хранилище. После нажатия кнопки «Новое разрешение» выберите опцию «Разрешение портов», затем в пункте «Применение» выберите «Название фильтра» и впишите название, например «VPN-сервер». В разделе «Протокол» выберите «UDP», в пунктах «Порт к устройству», «До порта» и «Желаемый внешний порт (IPv4)» введите число «500» и подтвердите ввод, нажав «OK». Затем аналогичным образом настройте переадресацию UDP-портов 1701 и 4500. Сохраните настройки, щелкнув по кнопке «OK».
3 Создание VPN-соединения с Windows 10
После проведения подготовительных действий можно проверить, все ли получилось. В идеальном случае первый доступ по VPN следует осуществить с локального компьютера, так как в случае возникновения проблем у вас есть доступ как к маршрутизатору, так и к сетевому хранилищу, и следовательно, будет возможность оперативного внесения изменений. При работе с Windows 10 настройка весьма проста. Выберите в разделе «Параметры» пункт «Сеть и Интернет», в левом столбце выберите «VPN», щелкните по ссылке «Добавление VPN-подключения» и введите необходимые данные. В меню «Поставщик услуг VPN» выберите «Windows (встроенные)», имя подключения можно указать любое, например «VPN-NAS». В пункте «Имя или адрес сервера» введите динамический DNS-адрес вашего сетевого хранилища Synology, в «Тип VPN» выберите «Автоматически». Подтвердите ввод кнопкой «Сохранить», затем кликните по иконке VPN и выберите «Подключить».
В диалоговом окне «Регистрация» введите данные, которые вы используете для подключения к сетевому хранилищу, и щелкните «OK». Через несколько секунд (в это время Windows 10 и сетевое хранилище обмениваются данными о типе VPN) будет создано подключение, и вы сможете получить доступ ко всем доступным в вашей домашней сети ресурсам, в том числе к маске конфигурации сетевого хранилища Synology.
4 Настройка VPN на мобильных устройствах
Доступ к сетевому хранилищу через VPN также возможен и с мобильных устройств. Однако их настройка немного сложнее, чем в Windows 10.
Android: откройте «Настройки», в пункте «Сетевые подключения» нажмите «Дополнительные настройки» и добавьте новое подключение, нажав на «+». После этого в разделе «Тип» выберите пункт «L2TP/IPSec PSK», введите «Адрес сервера» (динамический DNS-адрес вашего хранилища), а также «IPsec Pre-shared Key» (то есть заданный в шаге 1 пароль), далее нажмите «Сохранить». В завершение коснитесь нового подключения, введите имя пользователя и пароль, активируйте опцию «Сохранить данные учетной записи» и нажмите «Подключить».
iOS: перейдите в «Настройки | Основные | VPN | Добавить VPN» и в пункте «Тип» выберите «L2TP». После этого введите данные в «Описание», в пункте «Сервер» укажите динамический DNS-адрес вашего сетевого хранилища и в завершение, в пункте «Секретный пароль» — заданный на шаге 1 пароль. Данные доступа укажите в пунктах «Логин» и «Пароль». Затем нажмите «Готово», вернитесь к предыдущему диалоговому окну и установите переключатель в разделе «Конфигурация VPN» в положение «Вкл» для установки соединения.
VPN в домашнюю локалку
TL;DR: я устанавливаю Wireguard на VPS, подключаюсь к нему с домашнего роутера на OpenWRT, и получаю доступ к домашней подсети с телефона.
Если вы держите на домашнем сервере личную инфраструктуру или у вас дома множество девайсов управляемых по IP, то вы наверняка хотите иметь к ним доступ с работы, из автобуса, поезда и метрo. Чаще всего для аналогичных задач приобретается IP у провайдера, после чего порты каждого сервиса пробрасываются наружу.
Вместо этого я настроил VPN с доступом в домашнюю локалку. Плюсы такого решения:
- Прозрачность: чувствую себя как дома при любых обстоятельствах.
- Простота: настроил и забыл, не надо думать о пробросе каждого порта.
- Цена: у меня уже есть VPS, для таких задач современный VPN почти бесплатен по ресурсам.
- Безопасность: ничего не торчит наружу, можно оставить MongoDB без пароля и никто не утащит данные.
- VPS (в моём случае на Debian 10).
- Роутер на OpenWRT.
- Телефон.
- Домашний сервер с каким-нибудь веб-сервисом для проверки.
- Прямые руки.
Конфигурация VPS
Для дела хватит даже самого нищенского VPS за 30 рублей в месяц, если вам повезёт такой урвать.
Все операции на сервере я выполняю от рута на чистой машине, при необходимости добавьте `sudo` и адаптируйте инструкции.
Wireguard не успели завезти в стейбл, поэтому я выполняю `apt edit-sources` и добавляю бэкпорты двумя строчками в конец файла:
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
Пакет устанавливается привычным образом: apt update && apt install wireguard .
Далее генерируем пару ключей: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public . Эту операцию повторите ещё дважды для каждого девайса-участника схемы. Поменяйте пути к файлам с ключами для другого устройства и не забудьте о безопасности приватных ключей.
Теперь готовим конфиг. В файл /etc/wireguard/wg0.conf помещается конфиг:
[Interface]
Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=
[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24
[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32
В секции [Interface] указываются настройки самой машины, а в [Peer] — настройки для тех, кто будет к ней подключаться. В AllowedIPs через запятую прописываются подсети, которые будут маршрутизироваться в соответствующего пира. Из-за этого пиры устройств-«клиентов» в подсети VPN должны иметь маску /32 , всё остальное будет маршрутизироваться сервером. Так как домашняя сеть будет маршрутизироваться через OpenWRT, в AllowedIPs соответствующего пира дописываем домашнюю подсеть. В PrivateKey и PublicKey разложите приватный ключ сгенерированный для VPS и публичные ключи пиров соответственно.
На VPS осталось только запустить команду, которая поднимет интерфейс и добавит его в автозапуск: systemctl enable —now wg-quick@wg0 . Текущий статус соединений можно проверить командой wg .
Конфигурация OpenWRT
Всё, что нужно для этого этапа есть в модуле luci (веб-интерфейс OpenWRT). Залогиньтесь в нём и в меню System откройте вкладку Software. OpenWRT не хранит кэш на машине, поэтому надо обновить список доступных пакетов, нажав на зелёную кнопку Update lists. После завершения в фильтр вбиваете luci-app-wireguard и, глянув на окошко с красивым деревом зависимостей, устанавливаете этот пакет.
В меню Networks выбираете Interfaces и жмёте зелёную кнопку Add New Interface под списком уже имеющихся. После ввода имени (так же wg0 в моём случае) и выбора протокола WireGuard VPN открывается форма настроек с четырьмя вкладками.
На вкладке General Settings надо вбить приватный ключ и IP адрес заготовленный для OpenWRT вместе с подсетью.
На вкладке Firewall Settings заводите интерфейс в локальную сеть. Так соединения из VPN будут свободно попадать в локалку.
На вкладке Peers жмёте единственную кнопку, после чего в обновленной форме заполняете данные VPS-сервера: публичный ключ, Allowed IPs (надо всю VPN-подсеть замаршрутизировать в сервер). В Endpoint Host и Endpoint Port вводите соответственно IP адрес VPS с портом в ранее указанным в директиве ListenPort. Отметьте Route Allowed IPs, чтобы были созданы маршруты. И обязательно заполните Persistent Keep Alive, иначе туннель туннель от VPS к роутеру будет обрываться, если последний за NAT.
После этого можно сохранить настройки, а затем на странице со списком интерфейсов нажать Save and apply. При необходимости явно запустите интерфейс кнопкой Restart.
Настраиваем смартфон
Вам потребуется клиент Wireguard, он доступен в F-Droid, Google Play и App Store. Открыв приложение жмёте плюсик и в секции Interface вводите имя соединения, приватный ключ (публичный сгенерируется автоматически) и адрес телефона с маской /32. В секции Peer указываете публичный ключ VPS, пару адрес: порт VPN-сервера в качестве Endpoint и маршруты до VPN- и домашней подсети.
Жмёте на дискетку в углу, включаете и…
Готово
Теперь вы можете получить доступ к домашнему мониторингу, менять настройки роутера, или делать что угодно на уровне IP.