Aspia — бесплатная программа для удаленного управления ПК

5baf39d561b18bc3567a8d9d61a28257.png

Aspia — это OpenSource приложение для удаленного управления компьютерами внутри локальной сети и за её пределами благодаря реализации ID сервера для обхода NAT.

Не нашел на хабре актуальной информации об этом бесплатном аналоге таких программ как TeamViewer, Radmin, AmmyAdmin, AnyDesk, а та информация какая есть — уже давно устарела, поэтому попробую восполнить данную пустоту своим обзором/мануалом.

В своей публикации, я бы хотел поделиться с вами информацией о возможностях Aspia, общей структуре работы, а так же затронуть вопросы установки и настройки.

Возможности Aspia на момент написания статьи (версия 2.5.2):

  • Управление рабочим столом компьютера с подключением по IP или ID (через ID сервер). Возможен режим полного управления и режим просмотра.

  • Передача файлов через собственный файловый менеджер.

  • Просмотр информации о системе: оборудование, установленные приложения, службы, запущенные процессы, лицензии Microsoft, сетевые адаптеры, маршруты, подключения, сетевые ресурсы (шары), переменные окружения, журнал событий, пользователи (только локальные), группы пользователей и другая полезная информация.

  • Текстовый чат между оператором и подключенным хостом.

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

  • Для хранения и управления адресами и идентификаторами, а так же логинами и паролями от удаленных компьютеров используются адресные книги с бесконечной вложенностью папок. Адресные книги хранятся в отдельных файлах и их легко можно передавать другим операторам. Так же, поддерживается шифрование адресной книги для безопасности данных.

  • Обход NAT с помощью настройки собственного ID сервера и возможностью подключения к удаленным ПК по ID, вместо имени хоста или IP.

  • Возможность балансировки нагрузки на ID сервер с помощью установки нескольких ретрансляторов на разных серверах (подробности ниже).

Кроме всего прочего, Aspia поддерживает Linux Debian (со стороны операторов и ID сервера), Windows (со стороны операторов, удаленных ПК, сервера), MacOS (только для операторов). Версии для Windows упакованы в корректный подписанный MSI, для Linux в Deb пакеты, а MacOS в Dmg. Актуальность пакетов поддерживается разработчиком.

Примечание: со слов разработчика: приложение под Linux для удаленных ПК планируется, но на данный момент в стадии разработки.

Модульность Aspia или компоненты программы

Aspia состоит из нескольких компонентов. Каждый компонент отвечает за реализацию конкретного функционала.

  • Aspia Host (хост) — устанавливается на клиентских ПК, управление которыми необходимо осуществлять. Необходимый компонент, только Windows.

  • Aspia Console (консоль) — необходим для подключения к удаленным ПК и управления Aspia Router. Имеется адресная книга для сохранения списков удаленных ПК. Устанавливается на ПК операторов. Есть версии под Windows, Debian, MacOS.

  • Aspia Client (клиент) — легкая версия клиента для подключения к удаленным ПК. Устанавливается на ПК операторов. Есть версии под Windows, Debian, MacOS.

  • Aspia Router (маршрутизатор) — реализация ID сервера, используется для обхода NAT. Устанавливается на сервер. Есть версии под Windows и Debian.

  • Aspia Relay (ретранслятор) — работает совместно с Router и служит для балансировки нагрузки. При небольших нагрузках возможно использование Router + Relay на одном физическом сервере. Есть версии под Windows и Debian.

Aspia Router и Aspia Relay — схема работы и зачем нужны

Маршрутизатор всегда работает совместно с ретранслятором и не может работать без него. Aspia Relay служит для пропуска трафика между оператором и подключенным компьютером в обход Aspia Router. Оба компонента могут быть установлены как на одном сервере совместно, так и на разных для увеличения масштабируемости системы в целом и разделения нагрузки, в случае большого количества соединений.

Aspia Router работает исключительно как сигнальный маршрутизатор, т.е. знает обо всех подключенных к нему хостах/клиентах/консолях и при попытке создать соединение между клиентом/консолью и хостом, не пропускает его через себя, а перенаправляет трафик на Aspia Relay. Тем самым не нагружая свой канал, чтобы всегда быть доступным для «сигнальных соединений» от хостов и клиентов. При этом, к одному Aspia Router может быть подключено множество Aspia Relay.

Процесс выбора ретранслятора работает таким образом, что клиенту/консоли и хосту отдаётся адрес ретранслятора, на котором, в данный момент, больше свободных слотов для подключения. Количество свободных слотов (или размер пула), как и фактический внешний адрес ретранслятора настраивается в конфиге ретранслятора.

Какие компоненты Aspia выбрать

Для начала, вам необходимо определиться с тем, нужны ли вам Router и Relay.

  • Если все управляемые ПК расположены внутри периметра вашей локальной сети и/или подключены по VPN, то вам будет достаточно связки Aspia Host + Aspia Console.

  • Если у вас есть ПК, расположенные вне периметра вашей сети без прямого доступа к ним по VPN и выходящие в интернет через NAT, то помимо Aspia Host + Aspia Console, вам потребуется установить и настроить сервера Aspia Router + Aspia Relay.

Между Aspia Console и Aspia Client есть существенные отличия:

  • Aspia Client служит для быстрого подключения к удаленным компьютерам и только для этого.

  • Aspia Console — используется для более удобного подключения к удаленным компьютерам с помощью реализации адресной книги, а так же для управления Aspia Router.

Далее, можно переходить к установке компонентов.

Распространение Aspia Host на пользовательские ПК

Перед тем, как распространить Aspia Host, его необходимо предварительно установить на какой-либо компьютер, настроить и экспортировать настройки в json файл (или взять из %programdata%\aspia\host.json).

Далее, распространить MSI и конфиг на удаленные компьютеры (автоматикой или вручную).

Как распространить, если есть Active Directory

Все компоненты Aspia поставляются в корректно упакованных MSI, поэтому распространять их в доменной среде можно штатными механизмами Active Directory через установку программ в GPO (Конфигурация компьютера/Политики/Конфигурация программ/Установка програм).

Aspia Host все свои настройки хранит в конфигурационном файле, который находится в директории »%programdata%/aspia/host.json», а настраивать его можно как через GUI Aspia Host, так и вручную через конфиг.

Файл конфига можно распространить на ПК пользователей автоматически через GPO Active Directory (Конфигурация компьютера/Настройка/Конфигурация Windows/Файлы).

Как распространить, если нет Active Directory

Если в вашей среде нет Active Directory по каким-либо причинам, то вы можете положить заранее настроенный файл конфига рядом с msi файлом с названием aspia-host-config.json и при установке конфиг подтянется, а Aspia Host запустится сразу с актуальными настройками.

В некоторых случаях, необходимо выполнить настройку в два клика, для этого можно упаковать установщик MSI и конфиг для него в SFX архив (в нём необходимо настроить запуск инсталлятора, копирование конфига в %programdata%/aspia, перезапуск службы), далее отдать его пользователю. О том, как создать SFX архив хорошо расписано, например, на oszone.ru. На этом останавливаться не будем.

Для периодического обновления конфига, если необходимо, можно использовать Batch/PowerShell скрипты для замены конфига по расписанию. Скриптом можно подтягивать конфиг с расшаренной папки, с FTP или с web-сайта.

Обратите внимание, что в директории »%programdata%\aspia\» кроме самого конфига «host.json», при подключении к маршрутизатору, так же имеется файл «host_key.json» — он содержит идентификатор по которому Aspia Router авторизует хост и выдаёт ID. Этот файл копировать на другие компьютеры не нужно.

Распространение Aspia Console и адресной книги

Компонент Aspia Console не требует какой либо настройки, а вот адресную книгу обычно все хотят иметь общую.

Поэтому суть распространения Aspia Console такая же как и для Aspia Host. Только вместо конфига мы настраиваем адресную книгу и распространяем её либо доменом, либо в составе SFX архива, либо скриптами по расписанию.

Примечание: чтобы настроить автоматическое открытие адресной книги, необходимо щелкнуть ПКМ по вкладке с книгой и выбрать «Закрепить вкладку».

Настройка Aspia Router в связке с Aspia Relay

Aspia Router и Aspia Relay следует устанавливать на сервере, который будет всегда доступен для всех хостов/консолей/клиентов. В идеале, на выделенный/виртуальный сервер у какого-либо хостера, либо на сервер внутри локальной сети с пробросом портов, но тут есть нюанс.

Собственно, нюанс

Aspia Router и Aspia Relay между собой могут «общаться» по любым адресам, т.е. как »127.0.0.1» (в случае установки на одном сервере), так и по внутренним адресам вида »192.168.0.1», так и по внешним (если установлены на разных хостингах, например).

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

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

Установка и настройка Aspia Router на Debian Linux

Установка заключается в скачивании deb пакета из репозитория автора проекта, его установке, генерировании и настройке конфигурационного файла:

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

Открываем конфиг файл и правим параметры:

sudo nano /etc/aspia/router.json

Подробное описание всех параметров

  • AdminWhiteList — Список IP-адресов администраторов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех администраторов. Если список содержит элементы, то подключиться могут только администраторы, указанные в этом списке.

  • ClientWhiteList — Список IP-адресов клиентов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех клиентов. Если список содержит элементы, то подключаться могут только клиенты, указанные в этом списке.

  • HostWhiteList — Список IP-адресов хостов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения со всех хостов. Если список содержит элементы, то подключаться могут только хосты, указанные в этом списке.

  • RelayWhiteList — Список IP-адресов ретрансляторов (Aspia Relay), которым разрешено подключаться к роутеру. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех ретрансляторов. Если список содержит элементы, то подключаться могут только ретрансляторы, указанные в этом списке. Вписываем IP адрес нашего ретранслятора (в случае расположения Aspia Relay на том же сервере — указываем 127.0.0.1).

  • Port — Порт, на котором будут приниматься входящие соединения. Если нет специфичной задачи, то менять не рекомендую.

  • PrivateKey — Приватный ключ шифрования роутера. Если у вас уже есть закрытый ключ, то напишите его здесь. Если это ваша первая установка, не меняйте значения. Ключ генерируется автоматически.

  • ListenInterface — IP адрес сетевого интерфейса, на котором должен работать Aspia Router. Укажите »0.0.0.0», чтобы Aspia Router работал на всех доступных интерфейсах.

После окончания настройки, включаем и запускаем службу Aspia Router:

sudo systemctl enable aspia-router
sudo service aspia-router start

В дальнейшем, чтобы подключить к маршрутизатору ретранслятор и хосты, потребуется указание публичного ключа, который расположен в файле »/etc/aspia/router.pub»

Для просмотра журнала работы, используется следующая команда:

sudo journalctl -u aspia-router

Установка и настройка Aspia Relay на Debian Linux

Установка Aspia Relay не сложнее, чем Aspia Router: скачиваем deb пакет из репозитория автора проекта, устанавливаем, генерируем и настаиваем конфигурационный файл.

wget https://github.com/dchapyshev/aspia/releases/download/v2.5.2/aspia-relay-2.5.2-x86_64.deb
sudo apt install ./aspia-relay-2.5.2-x86_64.deb
sudo aspia_relay --create-config

Открываем конфиг файл и правим параметры:

sudo nano /etc/aspia/relay.json

Подробное описание всех параметров

  • RouterAddress — Адрес Aspia Router, который мы устанавливали ранее. Он может быть равен «localhost» или »127.0.0.1» , если маршрутизатор установлен на том же сервере. В случае же, если маршрутизатор и ретранслятор находятся на разных серверах, указывается тот адрес, по которому ретранслятор сможет подключиться к маршрутизатору.

    В большинстве случаев — это будет белый внешний IP или »127.0.0.1» для локального ретранслятора.

  • RouterPort — Порт маршрутизатора. Если вы не изменяли его при установке Aspia Router, то оставьте значение по-умолчанию.

  • RouterPublicKey — Публичный ключ шифрования роутера, который был сгенерирован при установке Aspia Router (хранится в файле /etc/aspia/router.pub).

  • ListenInterface — IP адрес сетевого интерфейса, на котором должен работать Aspia Relay. Укажите »0.0.0.0», чтобы Aspia Relay работал на всех доступных интерфейсах.

  • PeerAddress — Адрес, который пиры (хосты/консоли/клиенты) получат для подключения к ретранслятору. Тут указываем адрес, по которому хост и клиент/консоль смогут достучаться да нашего сервера. Рекомендую указать DNS имя, например что-то вроде: relay1.aspia.example.com, чтобы в случае переезда ретранслятора не пришлось менять много настроек.

  • PeerPort — Порт, через который пиры будут подключаться к серверу ретрансляции. Если нет специфичной задачи, то менять не рекомендую.

  • PeerIdleTimeout — Время таймаута, в минутах. Если в течение этого времени данные от пиров не поступают, соединение прерывается. Рекомендую, оставить значение по-умолчанию.

  • MaxPeerCount — Максимальное количество одновременных подключений, установленных между узлами (Хост/Консоль/Клиент). По-умолчанию установлено — 100. Тут всё зависит от ваших потребностей (количества администраторов и управляемых машин) и возможностей сервера, на который установлен Relay.

  • StatisticsEnabled — Включение возможности передачи статистики подключений на маршрутизатор. Для просмотра статистики используйте Aspia Console (раздел управления роутером → Ретрансляторы). Поддерживается два параметра: «true» (включено) или «false» (выключено).

  • StatisticsInterval — Интервал, в секундах, для отправки статистики подключений на маршрутизатор. Поддерживаются значения от »1» до »60».

После окончания настройки, включаем и запускаем службу Aspia Relay:

$ sudo systemctl enable aspia-relay
$ sudo service aspia-relay start

Для просмотра журнала работы, используется следующая команда:

$ sudo journalctl -u aspia-relay

Резервное копирование Aspia Router + Aspia Relay

При резервном копировании Aspia Router и Aspia Relay, необходимо сохранять следующие файлы:

/etc/aspia/router.json

Конфигурационный файл маршрутизатора

/etc/aspia/router.pub

Публичный ключ для подключений к маршрутизатору

/var/lib/aspia/router.db3

База данных маршрутизатора

/etc/aspia/relay.json

Конфигурационный файл ретранслятора

Настройка подключения к Aspia Router через Aspia Console

Для подключения консоли к маршрутизатору и получения возможности управления им, необходимо:

  • Открыть консоль, создать книгу и настроить её через меню «Правка → Свойства адресной книги»

  • На вкладке «Маршрутизатор» поставить галку «Использовать маршрутизатор» и указать адрес маршрутизатора, имя пользователя и пароль (по-умолчанию «admin: admin»)

  • Для управления маршрутизатором откройте меню «Инструменты → Управление маршрутизатором»

    • На вкладке «Пользователи» обязательно измените пароль по-умолчанию на свой и создайте пользователей, если необходимо. Пользователи используются для подключения операторов к маршрутизатору.

    • На вкладке «Ретрансляторы» вы сможете увидеть подключенный к вашему маршрутизатору ретранслятор и информацию о нем, а если щелкнуть по нему в списке, то еще и список текущих установленных соединений.

    • На вкладке «Хосты» вы сможете увидеть список подключенных хостов и информацию о них.

Заключение

Благодаря программному комплексу Aspia, нашей компании удалось избавиться от зоопарка программ для удаленного управления и «запереть» сервис удаленного управления внутри собственной инфраструктуры, не используя сторонних сервисов, что крайне важно в нынешнее время.

Ссылки, которые будут вам полезны:

© Habrahabr.ru