Внедряем средство удаленной помощи в рамках удаленной поддержки в организации офисных сотрудников, находящихся на удаленке, имеющих разъездной характер работы и коллег, которым оказываем удаленную помощь в рамках, как родственникам, так и за вознаграждение. Если раньше для удаленного взаимодействия использовалась утилита TeamViewer
для некоммерческого использования, то сейчас увы с начала мая 2022
поставщик TeamViewer
ушел. Нужно что-то делать чтобы быть востребованным, и я среди различных средств решил обратить свой взор на отечественную разработку проект Aspia
. Попробовав – меня все устроило. Нюансов много, плюс дописывается автором, есть группа поддержки в Telegram
, а самое главное он бесплатен, есть агент для Windows
и серверная часть для Ubuntu LTS.
Данный инструмент реализует такую схему:
- Я (Системный администратора) и у меня установлен
aspia-console
VPS
во вне имеющая статический белыйIP
адрес (Ubuntu 20.04 Server
) на которую устанавливаетсяaspia relay + aspia router
- Клиентские системы (пользователей) на которые устанавливается
aspia-host
Пакеты можно скачать как с официального сайта так и у меня здесь
.
Как работает проект Aspia:
Aspia Router
всегда работает совместно с Aspia Relay
и не может работать без него. Aspia Relay
служит для прогона трафика между подключенными компьютерами в обход Aspia Router
. Оба продукта могут быть установлены как на одном сервере совместно, так и на разных для увеличения масштабируемости системы в целом и разделения нагрузки, в случае большого количества соединений.
Aspia Router
работает исключительно как маршрутизатор и при попытке создать соединение между хостом и клиентом, не пропускает его через себя, а перенаправляет трафик на Relay
. Тем самым, не нагружая свой канал, чтобы всегда быть доступным для "сигнальных соединений"
. При этом, к одному Aspia Router
может быть подключено множество Aspia Relay.
Aspia
разбита на несколько модулей:
1.Host — устанавливается на компьютер, которым необходимо управлять (на данный момент только Windows).
2.Console — устанавливается на компьютер администратора и выполняет роль клиента с адресной книгой и имеет интерфейс по управлению router’ом (поддерживаются Linux, Windows, MacOS).
3.Client — легковесная клиент с возможностью быстрого подключения к хосту (поддерживаются Linux, Windows, MacOS).
4.Router — собственная реализация ID сервера для хостов, находящихся за NAT и, соответственно, не имеющих белого IP адреса (поддерживаются Linux и Windows).
5.Relay — работает совместно с Router и служит для балансировки нагрузки. При небольших нагрузках возможно использование Router + Relay на одном физическом сервере (поддерживаются Linux и Windows).
Итак, я в тестовых условиях проработал все движения по исполнению которых могу с центральной системы или с системы, на которой установлено приложение aspia-console
взаимодействовать с узлами, находящимися за NAT
, т.е. не имеющими статического белого IP
адреса. А вот после всего разобранного практически применил в организации где сейчас работаю.
Шаг №1:
Покупаем перейдя по моей реферальной ссылке
виртуальную машину с осью Ubuntu 20.04 Server (CPU = 2 Ghz, RAM = 1Gb, HDD = 30Gb, WAN-IP
статический выдается бесплатно)
Шаг №2:
Покупаем у регистратора имен доменное имя (к примеру, у меня это ekzorchik.com
)
Шаг №3:
На регистраторе имен где приобрели доменное имя прописываем в DNS
сопоставление для записи A
, что при обращении к узлу mail.ekzorchik.com
идет сопоставление с WAN-IP
виртуальной машины.
Шаг №4:
Подключаюсь по SSH
к mail.ekzorchik.com
Шаг №5:
Настраиваю виртуальную систему где теперь доменное имя mail.ekzorchik.com
и произвожу базовые вещи по настройке системы на дальнейшее использование.
Шаг №6:
Скачиваю Aspia Router
и устанавливаю на VPS:
Aspia Router
пригодится вам в следующей ситуации: вам необходимо управлять компьютерами (с установленным на них Aspia Host
), которые находятся за NAT
и не имеют белого внешнего IP
адреса или имеют динамический IP
адрес.
root@ekzorchik:~# wget https://github.com/dchapyshev/aspia/releases/download/v2.4.0/aspia-router-2.4.0-x86_64.deb root@ekzorchik:~# dpkg -i aspia-router-2.4.0-x86_64.deb root@ekzorchik:~# rm -f aspia-router-2.4.0-x86_64.deb root@ekzorchik:~# aspia_router --help aspia_router [switch] Available switches: --create-config Creates a configuration --keygen Generating public and private keys --help Show help
Шаг №7:
Создаем конфигурационный файл router.json
для Aspia Router:
root@ekzorchik:~# aspia_router --create-config Creation of initial configuration started. Settings file path: "/etc/aspia/router.json" Settings file does not exist yet. Public key directory path: "/etc/aspia" Public key directory does not exist (Success). Attempt to create... Public key directory created successfully. Public key file: "/etc/aspia/router.pub" Public key does not exist yet. Creating a user... User has been created. Adding a user to the database... User was successfully added to the database. Generating encryption keys... Private and public keys have been successfully generated. Writing a public key to a file... Configuration successfully created. Don't forget to change your password! User name: admin Password: admin Public key file: "/etc/aspia/router.pub" root@ekzorchik:~#
Содержимое параметров конфигурационного файла router.json
AdminWhiteList — Список IP-адресов администраторов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех администраторов. Если список содержит элементы, то подключиться могут только администраторы, указанные в этом списке.
ClientWhiteList — Список IP-адресов клиентов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех клиентов. Если список содержит элементы, то подключаться могут только клиенты, указанные в этом списке.
HostWhiteList — Список IP-адресов хостов, которым разрешено подключаться к маршрутизатору. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения со всех хостов. Если список содержит элементы, то подключаться могут только хосты, указанные в этом списке.
MinLogLevel — Уровень ведения журнала. Уменьшение значения увеличивает количество сообщений в журнале. Минимальное значение равно "0", максимальное значение равно "3". Значение по-умолчанию — 1. Оставим как есть.
Port — Порт, на котором будут приниматься входящие соединения. Если нет специфичной задачи, то менять не рекомендую.
PrivateKey — Приватный ключ шифрования роутера. Если у вас уже есть закрытый ключ, то напишите его здесь. Если это ваша первая установка, не меняйте значения. Ключ генерируется автоматически.
RelayWhiteList — Список IP-адресов ретрансляторов (Aspia Relay), которым разрешено подключаться к роутеру. Адреса разделяются точкой с запятой. Если список пуст, то разрешены подключения от всех ретрансляторов. Если список содержит элементы, то подключаться могут только ретрансляторы, указанные в этом списке. Вписываем IP адрес нашего ретранслятора (в случае расположения Aspia Relay на том же сервере — указываем 127.0.0.1).
Шаг №8:
Чтобы изменить пароль на доступ к Aspia Router
вместо дефолтной связки (admin:admin
) нужно:
Пока не понятно, как, уточнил в Telegram
канале, ответили
в консоли аспии… \инструменты\управление маршрутизатором
там вкладка «Пользователи»… можно добавить новых пользователей… админа отключить
Шаг №9:
После окончания настройки, включаем и запускаем демона Aspia Router:
root@ekzorchik:~# sudo systemctl enable aspia-router Created symlink /etc/systemd/system/multi-user.target.wants/aspia-router.service → /lib/systemd/system/aspia-router.service. root@ekzorchik:~# sudo systemctl start aspia-router && sudo systemctl status aspia-router.service ● aspia-router.service - Aspia Router Loaded: loaded (/lib/systemd/system/aspia-router.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-05-13 09:28:24 MSK; 77ms ago Main PID: 3199346 (aspia_router) Tasks: 1 (limit: 1066) Memory: 892.0K CGroup: /system.slice/aspia-router.service └─3199346 /usr/bin/aspia_router May 13 09:28:24 ekzorchik.com systemd[1]: Started Aspia Router
Шаг №10:
Скачиваю Aspia Relay
и устанавливаю на VPS:
После установки Aspia Router
, нам необходимо установить и настроить Aspia Relay
. Без этого наш роутер работать не будет.
root@ekzorchik:~# wget https://github.com/dchapyshev/aspia/releases/download/v2.4.0/aspia-relay-2.4.0-x86_64.deb root@ekzorchik:~# dpkg -i aspia-relay-2.4.0-x86_64.deb root@ekzorchik:~# rm -f aspia-relay-2.4.0-x86_64.deb
Шаг №11:
Создаем конфигурационный файл relay.json
для Aspia Relay:
root@ekzorchik:~# aspia_relay --create-config Configuration successfully created. root@ekzorchik:~#
Содержимое параметров конфигурационного файла relay.json
Далее, проверим параметры:
MaxPeerCount — Максимальное количество одновременных подключений, установленных между узлами (Client/Console и Host). По-умолчанию установлено — 100. Тут всё зависит от ваших потребностей (количества администраторов и управляемых машин) и возможностей сервера, на который установлен Relay.
MinLogLevel — Уровень ведения журнала. Уменьшение значения увеличивает количество сообщений в журнале. Минимальное значение равно "0", максимальное значение равно "3". Значение по-умолчанию — 1. Оставим как есть.
PeerAddress — Адрес, который пиры получат для подключения к серверу ретрансляции. Тут указываем адрес, по которому хост и клиент/консоль смогут достучаться да нашего сервера. Рекомендую указать DNS имя, например что-то вроде: relay1.aspia.example.com.
PeerIdleTimeout — Время в минутах. Если в течение этого времени данные от пиров не поступают, соединение прерывается. Рекомендую, оставить значение по-умолчанию.
PeerPort — Порт, через который одноранговые узлы будут подключаться к серверу ретрансляции. Если нет специфичной задачи, то менять не рекомендую.
RouterAddress — Адрес роутера, который мы устанавливали ранее. Он может быть равен localhost, если роутер установлен на том же сервере. В случае, если роутер и ретранслятор находятся на разных серверах, указывается тот адрес, по которому ретранслятор сможет достучаться до роутера (в большинстве случаев — это будет белый внешний IP или "127.0.0.1" для локального ретранслятора).
RouterPort — Порт роутера. Если вы не изменяли его при установке Aspia Router, то оставьте значение по-умолчанию.
RouterPublicKey — Публичный ключ шифрования роутера, который вы получили при его установке (хранится в файле /etc/aspia/router.pub).
root@ekzorchik:~# cat /etc/aspia/router.pub EE5283767AA135610DF0D66E8ADB6941D1CE1D8AE82A4FCF18A1985063E9787Broot@ekzorchik:~#
Копирую публичный ключ router(а) в конфигурационный файл relay.json
и изменяю PeerAddress:
root@ekzorchik:~#nano /etc/aspia/relay.json { "MaxPeerCount": "100", "PeerAddress": "mail.ekzorchik.com", "PeerIdleTimeout": "5", "PeerPort": "8070", "RouterAddress": "localhost", "RouterPort": "8060", "RouterPublicKey": "EE5283767AA135610DF0D66E8ADB6941D1CE1D8AE82A4FCF18A1985063E9787B" }
Шаг №12:
После окончания настройки Aspia Relay
, включаем и запускаем демона Aspia Relay:
root@ekzorchik:~# sudo systemctl enable aspia-relay Created symlink /etc/systemd/system/multi-user.target.wants/aspia-relay.service → /lib/systemd/system/aspia-relay.service. root@ekzorchik:~# sudo systemctl start aspia-relay.service root@ekzorchik:~# sudo systemctl status aspia-relay.service ● aspia-relay.service - Aspia Relay Loaded: loaded (/lib/systemd/system/aspia-relay.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-05-13 09:33:20 MSK; 7s ago Main PID: 3199606 (aspia_relay) Tasks: 3 (limit: 1066) Memory: 1.1M CGroup: /system.slice/aspia-relay.service └─3199606 /usr/bin/aspia_relay May 13 09:33:20 ekzorchik.com systemd[1]: Started Aspia Relay. root@ekzorchik:~#
Шаг №13:
Т.к. я на VPS
использую надстройку над правилами IPTABLES
, а именно firewalld
, то добавляю порты, которые идут по умолчанию и которые я не изменял при установке aspia router & aspia relay:
sudo apt-get install -y fail2ban firewalld sudo ufw disable sudo systemctl enable firewalld sudo systemctl start firewalld sudo firewall-cmd --state ip r | awk '{print $5}' | head -n1 eth0 sudo firewall-cmd --zone public --change-interface=eth0 --permanent sudo firewall-cmd --reload sudo firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: root@amigo:~# root@ekzorchik:~# netstat -tulpn | grep aspia tcp 0 0 0.0.0.0:8070 0.0.0.0:* LISTEN 3199606/aspia_relay tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 3199346/aspia_route root@ekzorchik:~# root@ekzorchik:~# firewall-cmd --add-port=8060/tcp --permanent success root@ekzorchik:~# firewall-cmd --add-port=8070/tcp --permanent success root@ekzorchik:~# firewall-cmd --reload success root@ekzorchik:~#
Шаг №14:
Устанавливаю на узел, которому буду оказывать удаленную помощь пакет Aspia Host:
На систему Windows
на которую производим установку Aspia Host
предварительно следует зайти как локальный администратор или знать пароль локального администратора
https://github.com/dchapyshev/aspia/releases/download/v2.4.0/aspia-host-2.4.0-x86.msi
Запускаю msi
, нажимаю Далее
, соглашаюсь с лицензионным соглашением и нажимаю "Далее"
,
Установить Хост Aspia в: C:\Program Files (x86)\Aspia\Host\
И нажимаю "Далее"
Создать ярлык на рабочем столе: Отмечаю галочкой
Создать ярлык в меню "Пуск": Отмечаю галочкой
И нажимаю "Далее", "Установить"
, на запрос от UAC (User Account Control)
также отвечаем Yes, Готово
После чего в трее рядом с часами появляется иконка установленного приложения Хост Aspia
Нажимаем на нее, когда так называемая серверная часть не настроена, она выглядит так:
Шаг №15:
Настраиваю Хост Aspia
на работу с установленным маршрутизатором (где у Вас установлена связка Aspia Router & Aspia Relay
):
Aspia – Параметры
– вкладка "Основные"
Входящий порт: 8050
Текущее состояние службы: Запущена
Использовать свой сервер обновлений: галочку снимаю
И нажимаю "Применить"
Aspia – Параметры
– вкладка "Безопасность"
Защита настроек паролем: нажимаю "Установить"
Новый пароль: Aa1234567aA
Новый пароль (повторить): Aa1234567aA
И нажимаю ОК
Включить одноразовый пароль: галочку снимаю
Требовать подтверждение при подключении к компьютеру: галочку снимаю
Запретить закрытие Aspia: галочку не ставлю
И нажимаю "Применить"
Aspia – Параметры
– вкладка "Маршрутизатор"
Включить использование маршрутизатора: отмечаю галочкой
Адрес: указываю mail.ekzorchik.com
Публичный ключ: EE5283767AA135610DF0D66E8ADB6941D1CE1D8AE82A4FCF18A1985063E9787B
Это ключ
root@ekzorchik:~# cat /etc/aspia/router.pub EE5283767AA135610DF0D66E8ADB6941D1CE1D8AE82A4FCF18A1985063E9787Broot@ekzorchik:~#
Чтобы видеть, как это – смотрите скриншот для наглядного понимания:
После нажимаю "Применить"
Aspia – Параметры
— Вкладка "Пользователи" - "Добавить нового пользователя"
(Создаю административную учетную запись которая будет иметь полный доступ к системе для подключения)
Имя пользователя: support
Пароль: Aa1234567aA
Пароль (повторить): Aa1234567aA
Разрешенные типы сессий:
Управление рабочим столом: отмечаю галочкой
Просмотр рабочего стола: отмечаю галочкой
Передача файлов: отмечаю галочкой
Информация о системе: отмечаю галочкой
Текстовый чат: отмечаю галочкой
На заметку: Пароль должен содержать строчные и прописные символы, цифры и не должен быть короче 8 символов.
И нажимаю "Применить" - "ОК"
После чего если подключение к маршрутизатору корректно, то система с установленным Aspia host
получит ID
и статус у нее будет "Подключено к маршрутизатору"
Пользователю достаточно будет в трее возле часов нажать на программу и сказать Вам (системному администратору) Ваш ID
чтобы вы могли подключиться к нему.
На заметку: Все внесенные изменения через приложение можно увидеть в сформированном конфигурационном файле C:\ProgramData\aspia\host.json
который получаем можно распространять.
Шаг №16:
Устанавливаем на систему с которой будем взаимодействовать с контролируемыми узлами aspia-console-2.4.0-x86.msi
Я принимаю условия лицензионного соглашения: Отмечаю галочкой
Установить Консоль Aspia в: C:\Program Files (x86)\Aspia\Console\
Создать ярлык на рабочем столе: Отмечаю галочкой
Создать ярлык в меню "Пуск": Отмечаю галочкой
И после нажимаю "Установить"
, т.е. я работаю с обычными правами то возникает окно UAC
в котором указываю административную учетную запись и нажимаю "Готово"
Запускаю Aspia Console
, первоначально выглядит так:
Нажимаю Файл – Новая адресная книга
Вкладка "Основные"
Имя: polygon
Шифрование: Без шифрования
Вкладка "Маршрутизатор"
Использовать маршрутизатор: отмечаю галочкой
Адрес: mail.ekzorchik.com
Имя пользователя: admin
Пароль: admin
Вкладка "Конфигурация по умолчанию"
(Основные) (Данные для входа)
Имя пользователя: support
Пароль: Aa1234567aA
(Сессии) (Управление)
Кодек: VP8
Включить звук: снимаю галочку
Включить буфер обмена: устанавливаю галочку
Показывать форму удаленного курсора: устанавливаю галочку
Показывать положение удаленного курсора: устанавливаю галочку
(Сессии) (Управление) (Разное)
Отключить эффекты рабочего стола: устанавливаю галочку
Отключить обои рабочего стола: устанавливаю галочку
Отключить сглаживание шрифтов: галочку не ставлю
Очищать буфер обмена при отключении: устанавливаю галочку
Блокировать компьютер при отключении: галочку не ставлю
Блокировать удаленный вход: галочку не ставлю
(Сессии) (Просмотр)
Все аналогично "Сессии" - "Управление"
И нажимаю ОК
После нажимаю на пиктограмму "Быстрое подключение"
или "Инструменты" - "Быстрое подключение"
и указываю Ваш ID
где установлен Aspia Host
Авторизуюсь
Имя пользователя: support
Пароль: Aa1234567aA
И нажимаю OK
И вот я успешно подключился к рабочей станции с установленным Aspia Host
находящейся за NAT
(Т.е. не имеющей белого WAN-IP
)
Шаг №17:
Чтобы каждый раз не указывать логин и пароль на подключение можно по ID
создать узлы в адресной книге:
Через правый клик мышью на "Корневая группа"
— выбираю "Добавить компьютер"
И завожу добавляемый компьютер
Имя: rdphome
Родительская группа: Корневая группа
Адрес / ID: 4
Имя пользователя: support
Пароль: Aa1234567aA
На заметку: Если на системе где установлен Aspia Host
не произведена авторизация в системе, то подключиться по ID
нельзя, это большой минус. Выходом из этой ситуации на стратегических системах может служить настроенный Autologon
. Ошибка, можно, есть в режиме "Управление рабочим столом"
соответствующая галочка, в режиме "Просмотр рабочего стола"
данной галочки нет.
И не забываем сохранить адресную книгу: Файл – Сохранить
– и указываем имя файла polygon
(тип файла: Адресная книга Aspia (*.aab)
) дабы можно было не заводить узлы в адресную книгу, а просто подгружать сохраненные для выполнения функцию удаленное помощи.
Шаг №18: Резервное копирование
База данных сервера хранится в файле "/var/lib/aspia/router.db3"
. Не забудьте настроить резервное копирование данного файла, а также конфигов роутера "/etc/aspia/routerjson"
и "/etc/aspia/router.pub"
, т.к. в них хранятся публичные и приватные ключи. Данные файлы потребуются вам, если вы захотите переустановить Aspia Router
с сохранением выданных ранее идентификаторов и не перенастраивать все подключенные ранее хосты.
Итого внедренный сервис работает с узлами, которые за NAT
или же имеющими белый адрес.
Что мне нравится, что все узлы на подконтрольном мне железе и системах.
И работа, как через интернет так и в локальной сети, что может быть заменой Radmin.
Продолжаю использование, о различных нюансах продолжаем читать мой блог или писать мне в Telegram
. Считаю, что пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.