Ранее я делал краткий анонс этой замечательной бесплатной программы для удаленного управления компьютерами Aspia, а т.к. официальной документации очень мало, будем писать свою.
Сегодня речь пойдет о программных продуктах Aspia Router и Aspia Relay.
Aspia Router пригодится вам в следующей ситуации: вам необходимо управлять компьютерами (с установленным на них Aspia Host), которые находятся за NAT и не имеют белого внешнего IP адреса или имеют динамический IP адрес.
<< Общий обзор программного продукта Aspia || Aspia FAQ: часто-задаваемые вопросы >>
Из этой статьи вы узнаете:
- Как работает Aspia Router и зачем нужен Aspia Relay
- Как установить и настроить Aspia Router на Debian Linux
- Как установить и настроить Aspia Relay на Debian Linux
- Как подключиться и управлять Aspia Router из Aspia Console
- Как подключить Aspia Host к Aspia Router и получить идентификатор для подключения
Как работает Aspia Router и зачем нужен Aspia Relay?
Aspia Router всегда работает совместно с Aspia Relay и не может работать без него. Aspia Relay служит для прогона трафика между подключенными компьютерами в обход Aspia Router. Оба продукта могут быть установлены как на одном сервере совместно, так и на разных для увеличения масштабируемости системы в целом и разделения нагрузки, в случае большого количества соединений.
Aspia Router работает исключительно как маршрутизатор и при попытке создать соединение между хостом и клиентом, не пропускает его через себя, а перенаправляет трафик на Relay. Тем самым не нагружая свой канал, чтобы всегда быть доступным для «сигнальных соединений». При этом, к одному Aspia Router может быть подключено множество Aspia Relay.
Установка и настройка Aspia Router на Debian Linux
Теперь, когда нам стало понятно, что и для чего используется, перейдем к установке.
Качаем инсталлятор «aspia-router-X.X.X-x86_64.deb» со страницы релизов репозитория Aspia на Github. На момент написания статьи, актуальная версия Aspia — 2.5.2. Будем работать с ней.
$ wget https://github.com/dchapyshev/aspia/releases/download/v2.5.2/aspia-router-2.5.2-x86_64.deb
Теперь нам необходимо установить только что скачанный пакет:
$ sudo apt install ./aspia-router-2.5.2-x86_64.deb
Для начала, нам необходимо создать конфигурационные файлы:
$ sudo aspia_router --create-config
Результат выполнения команды на скриншоте. Перейдем к правке конфигурационного файла «router.json».
$ sudo nano /etc/aspia/router.json
Далее, перечислим параметры:
- AdminWhiteList — Список IP-адресов администраторов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех администраторов. Если список содержит элементы, то подключиться могут только администраторы, указанные в этом списке.
- ClientWhiteList — Список IP-адресов клиентов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех клиентов. Если список содержит элементы, то подключаться могут только клиенты, указанные в этом списке.
- HostWhiteList — Список IP-адресов хостов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения со всех хостов. Если список содержит элементы, то подключаться могут только хосты, указанные в этом списке.
- RelayWhiteList — Список IP-адресов ретрансляторов (Aspia Relay), которым разрешено подключаться к роутеру. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех ретрансляторов. Если список содержит элементы, то подключаться могут только ретрансляторы, указанные в этом списке. Вписываем IP адрес нашего ретранслятора (в случае расположения Aspia Relay на том же сервере — указываем 127.0.0.1).
- MinLogLevel — Уровень ведения журнала. Уменьшение значения увеличивает количество сообщений в журнале. Минимальное значение равно «0», максимальное значение равно «3». Значение по-умолчанию — 1. Оставим как есть.
- Port — Порт, на котором будут приниматься входящие соединения. Если нет специфичной задачи, то менять не рекомендую.
- PrivateKey — Приватный ключ шифрования роутера. Если у вас уже есть закрытый ключ, то напишите его здесь. Если это ваша первая установка, не меняйте значения. Ключ генерируется автоматически.
- ListenInterface — IP адрес сетевого интерфейса, на котором должен работать Aspia Router. Укажите «0.0.0.0», чтобы Aspia Router работал на всех доступных интерфейсах. (Актуально для Aspia Router 2.4.0+)
На самом деле, для первого запуска, в данных настройках можно ничего не менять, но если вы точно знаете кто и с каких адресов будет подключаться к вашему роутеру, то можно указать их в разделах AdminWhiteList / ClientWhiteList / HostWhiteList / RelayWhiteList
После окончания настройки, включаем и запускаем демона Aspia Router:
$ sudo systemctl enable aspia-router
$ sudo service aspia-router start
Результат выполнения команды на скриншоте.
Для дальнейшей настройки Aspia Host на управляемых компьютерах, нам потребуется указание публичного ключа шифрования, который можно найти в файле «/etc/aspia/router.pub».
Журнал работы Aspia Router можно посмотреть командой:
$ sudo journalctl -u aspia-router
База данных роутера хранится в файле «/var/lib/aspia/router.db3». Не забудьте настроить резервное копирование данного файла, а так же конфигов роутера «/etc/aspia/router.json» и «/etc/aspia/router.pub», т.к. в них хранятся публичные и приватные ключи. Данные файлы потребуются вам, если вы захотите переустановить Aspia Router с сохранением выданных ранее идентификаторов и не перенастраивать все подключенные ранее хосты.
Установка и настройка Aspia Relay на Debian Linux
После установки Aspia Router, нам необходимо установить и настроить Aspia Relay. Без этого наш роутер работать не будет.
Снова переходим страницу релизов репозитория Aspia на Github и качаем «aspia-relay-X.X.X-x86_64.deb».
$ wget https://github.com/dchapyshev/aspia/releases/download/v2.5.2/aspia-relay-2.5.2-x86_64.deb
Переходим к установке, последовательно устанавливаем aspia-relay и генерируем конфигурационные файлы:
$ sudo apt install ./aspia-relay-2.5.2-x86_64.deb
$ sudo aspia_relay --create-config
Результат выполнения команд на скриншоте.
Переходим к настройке, открываем конфиг:
$ sudo nano /etc/aspia/relay.json
Далее, проверим параметры:
- RouterAddress — Адрес роутера, который мы устанавливали ранее. Он может быть равен localhost, если роутер установлен на том же сервере. В случае, если роутер и ретранслятор находятся на разных серверах, указывается тот адрес, по которому ретранслятор сможет достучаться до роутера (в большинстве случаев — это будет белый внешний IP или «127.0.0.1» для локального ретранслятора).
- RouterPort — Порт роутера. Если вы не изменяли его при установке Aspia Router, то оставьте значение по-умолчанию.
- RouterPublicKey — Публичный ключ шифрования роутера, который вы получили при его установке (хранится в файле /etc/aspia/router.pub).
- ListenInterface — IP адрес сетевого интерфейса, на котором должен работать Aspia Relay. Укажите «0.0.0.0», чтобы Aspia Relay работал на всех доступных интерфейсах. (Актуально для Aspia Relay 2.4.0+)
- PeerAddress — Адрес, который пиры получат для подключения к серверу ретрансляции. Тут указываем адрес, по которому хост и клиент/консоль смогут достучаться да нашего сервера. Рекомендую указать DNS имя, например что-то вроде: relay1.aspia.example.com.
- PeerPort — Порт, через который одноранговые узлы будут подключаться к серверу ретрансляции. Если нет специфичной задачи, то менять не рекомендую.
- PeerIdleTimeout — Время в минутах. Если в течение этого времени данные от пиров не поступают, соединение прерывается. Рекомендую, оставить значение по-умолчанию.
- MaxPeerCount — Максимальное количество одновременных подключений, установленных между узлами (Client/Console и Host). По-умолчанию установлено — 100. Тут всё зависит от ваших потребностей (количества администраторов и управляемых машин) и возможностей сервера, на который установлен Relay.
- MinLogLevel — Уровень ведения журнала. Уменьшение значения увеличивает количество сообщений в журнале. Минимальное значение равно «0», максимальное значение равно «3». Значение по-умолчанию — 1. Оставим как есть.
- StatisticsEnabled — Включить возможность передачи статистики подключений на роутер. Для просмотра статистики используйте Aspia Console (раздел управления роутером -> Ретрансляторы). Поддерживается два параметра: «true» или «false». По-умолчанию: выключено (false). Актуально для Aspia Relay 2.5.0+
- StatisticsInterval — Интервал в секундах для отправки статистики подключений на роутер. Поддерживаются значения от «1» до «60». По-умолчанию: «5». Актуально для Aspia Relay 2.5.0+
После окончания настройки, включаем и запускаем демона Aspia Relay:
$ sudo systemctl enable aspia-relay
$ sudo service aspia-relay start
Журнал работы Aspia Relay можно посмотреть командой:
$ sudo journalctl -u aspia-relay
Подключение к Aspia Router из Aspia Console
Для того, чтобы просмотреть состояние роутера и иметь возможность управления им (добавление пользователей), необходимо подключиться к роутеру через консоль.
Откроем Aspia Console и создадим новую адресную книгу, а на вкладке «Маршрутизатор» укажем параметры подключения к нашему маршрутизатору. После установки, логин и пароль администратора «admin» и «admin».
Для управления маршрутизатором, перейдите в меню «Инструменты -> Управление маршрутизатором».
В открывшемся окне, на вкладе «Хосты» вы можете увидеть подключенные к роутеру хосты, на вкладке «Ретрансляторы» — список подключенных ретрансляторов с указанием свободного пула для подключений и статистику использования ретранслятора (если включено), на вкладе «Пользователи», вы можете добавить новых пользователей. Не забудьте изменить пароль у пользователя «admin».
Подключение Aspia Host к Aspia Router
Для того, чтобы можно было подключаться к управляемым компьютерам из Aspia Console через роутер, на них должен быть установлен и настроен продукт Aspia Host.
О том, как распространить Aspia Host в сети в среде Active Directory я описал в статье: Aspia — Распространение Host и Console через GPO в Active Directory
Перейдем к настройке соединения с маршрутизатором.
Открываем программу «Хост Aspia» и переходим в меню «Aspia -> Параметры», далее на вкладку «Маршрутизатор».
Ставим галку «Включить использование маршрутизатора», указываем адрес установленного нами Aspia Router, далее указываем «Публичный ключ», который мы получили при установке Aspia Router в файле «/etc/aspia/router.pub».
Далее, если настройки выполнены верно, то при после сохранения настроек, хост подключиться к роутеру и получит идентификатор, с помощью которого можно будет подключиться к хосту через Aspia Console.
На этом я завершаю текущую статью с описанием программных продуктов Aspia Router и Aspia Relay.
Полезные ссылки:
- Обзор Aspia: полезные ссылки внутри
- Официальный сайт Aspia: aspia.org
- Официальный репозиторий Aspia на GitHub: github.com/dchapyshev/aspia
Почему пишу тут и вам. гугл вообще не находит ничего по этой теме, кроме этого сайта, это редкий ресурс где оно упоминается. В телеграмм не приняли.
Товарищь Админ. Разрешите до… обратиться.
Просьба тут же после описания, положите свой конфиг. ибо из-за ошибки при добавлении строки, потерял прилично времени.. а с реле на винде вообще так и не разобрался.
Не подключаются они и всё тут. Возможно nat препятствует, роутер его видит, в локальной сети комп видно. соединения не идут.
Например.
Роутер:
{
«AdminWhiteList»: «»,
«ClientWhiteList»: «»,
«HostWhiteList»: «»,
«Port»: «8060»,
«PrivateKey»: «Ваш_уникальный_приватный_ключ»,
«ListenInterface»: «0.0.0.0»,
«RelayWhiteList»: «»
}
Реле на линухе на том же где и Роутер
{
«MaxPeerCount»: «100»,
«PeerAddress»: «Тут_указываем_IP_адрес_видимый_из_сети_Но_желательно_dns_имя»,
«PeerPort»: «8070»,
«PeerIdleTimeout»: «5»,
«RouterAddress»: «127.0.0.1»,
«RouterPort»: «8060»,
«RouterPublicKey»: «Ваш_публичный_ключ»,
«ListenInterface»: «0.0.0.0»,
«StatisticsEnabled»: «true»,
«StatisticsInterval»: «5»
}
В целом конфиги должны быть рабочие. Вопросы вызывают только публичный и приватный ключи.
Публичный ключ вы можете взять из файла router.pub, а приватный появляется в router.json после запуска роутера с командой «—create-config».
А установка и настройка Relay/Routerдля Windows будет? Особенно интересует как их запускать как службу, чего-то не получается.
У меня Router & Relay используется исключительно на Debian Linux. Возможно, в качестве тестов когда-нибудь установлю на Windows и напишу об этом.
пользуюсь уже давно, скажите, есть вариант черного списка конкретных id которые уже выданы хостам и стоят на клиентских машинах. Спасибо.
А зачем это вам? Идентификаторы, выдаваемые роутером хостам уникальны и закрепляются за конкретным хостом, т.е. выдача уже использованных идентификаторов невозможна на новых ПК. Только если переносить файл «%ProgramData%\aspia\host_key.json» (в нем хранится публичный ключ для текущего ПК по которому роутер и присвает идентификатор).
Или я вообще не понял вопроса?
Нужна возможность ограничить подключение к хостам, чтобы им id не выдавался. Или же при попытке подключения релей+роутер не давали возможность подключения к конкретному id. Чтобы кто-то один мог (админ) мог централизованно выдавать и забирать возможность подключения к конкретным хостам.
Ну я понял , что такого функционала нет. Спасибо 🤝
Используйте логины и пароли на разных хостах разные и всё.
Пользуюсь oVPN, windows VPN, SoftEtherVPN вместе роутера, все отлично, спасибо разработчику.
Пожелания по консоли:
Можно ip сканер в консоль запилить — но это сверх круто будет, или импорт с xls в консоль (hostname, ip, username, фио)
Хотелось бы покрупнее значки стандартной панели одноименной Консоли и поиск по полям комментариев и другим полям.
Я не являюсь разработчиком данного программного комплекса, а просто обозреваю его на своём сайте и делюсь опытом. Пожелания по функционалу советую направлять разработчику в Issue на Github.