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

  • Автор:

Aspia-Remote-Desktop-Install-000.pngРано или поздно системные администраторы задумываются о собственном решении для удаленного управления ПК. Это может быть связано с уходом с российского рынка привычных продуктов, финансовыми вопросами или соображениями безопасности. В любом случае такие решения есть и вопреки распространенному мнению установить и поддерживать их несложно и недорого. Сегодня мы рассмотрим как установить и настроить на собственном сервере Aspia - бесплатный комплекс программ для организации собственной инфраструктуры удаленного управления ПК.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Aspia - продукт с открытым исходным кодом, выпускается под лицензией GPL 3, развивается с 2016 года и обладает достаточно широкими возможностями по удаленному управлению ПК, отличается хорошей скоростью работы даже на медленных каналах связи и весьма скромными системными требованиями.

Серверная часть может быть запущена на операционных системах Ubuntu 20.04 и Debian 11, под иные версии разработчик пакетов не собирает и работоспособность системы не гарантируется. Для ее развертывания вам будет достаточно виртуальной машины с 1 ядром ЦПУ и 1 ГБ RAM, размер диска также можно выбрать минимальным. Этого будет достаточно для обслуживания достаточно большой инфраструктуры, а при необходимости систему можно легко масштабировать благодаря модульной архитектуре.

В качестве системы для управления (хоста) поддерживается только Windows, это достаточно серьезное ограничение, но в большинстве случаев несущественное, так как большую часть парка клиентских ПК все еще составляет данная ОС.

Клиентские приложения для управления сервером и подключения к хостам доступны для всех платформ, включая macOS. Таким образом Aspia имеет как свои плюсы, так и минусы, но является достойным кандидатом для создания собственной инфраструктуры удаленного управления, особенно если ваш парк клиентских машин состоит из Windows.

Aspia - модульная система и на первый взгляд может показаться достаточно сложной, поэтому коротко разберем ее основные компоненты и рассмотрим схему взаимодействия между ними. В состав Aspia входят:

  • Aspia Router - маршрутизатор, является собственной реализацией ID-сервера, необходимого узлам не имеющим собственного выделенного IP-адреса для обхода NAT. Занимается выдачей идентификаторов и балансировкой нагрузки.
  • Aspia Relay - ретранслятор, пропускает через себя трафик между клиентом и хостами. Ретрансляторов может быть несколько, в этом случае маршрутизатор будет балансировать между ними нагрузку.
  • Aspia Host - хост, устанавливается на удаленный компьютер и принимает входящие подключения от управляющих устройств.
  • Aspia Client - предназначен для подключения и управления удаленными ПК (хостами).
  • Aspia Console - консоль, поддерживает функции адресной книги, позволяет подключаться и управлять удаленными ПК (хостами), а также администрировать серверную часть (маршрутизатор).

Теперь посмотрим как они взаимодействуют друг с другом. На схеме ниже синими стрелками показано служебное взаимодействие, зелеными - трафик сеанса управления удаленным ПК.

Aspia-Remote-Desktop-Install-001.pngAspia Host при запуске на удаленном ПК связывается с Aspia Router, регистрируется и получает собственный ID, в дальнейшем будучи запушенным хост постоянно синхронизируется с роутером и передает ему свое состояние, в ответ хост получает список ретрансляторов для подключения. Если мы хотим подключиться к удаленному ПК, то мы используем Aspia Client (на схеме не показан) или Aspia Console, взаимодействие с остальными участниками схемы у них одинаковое.

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

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

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

Подготовка к установке

Для развертывания собственной инфраструктуры удаленного управления ПК много ресурсов не понадобится. Достаточно недорогой виртуальной машины с выделенным IP-адресом и высокой доступностью, поэтому рекомендуем приобресnи VPS у любого надежного провайдера. Также рекомендуем сразу зарегистрировать доменное имя и привязать к данному VPS два адреса:

  • router.example.com
  • relay.example.com

Почему так, ведь они все равно ведут на один узел? А для того, чтобы в последствии вы могли спокойно масштабировать инфраструктуру не меняя настроек системы и клиентов. Решили вынести ретранслятор на отдельный узел - нет проблем, поменяли одну DNS-запись и все снова работает.

В качестве ОС сервера следует выбрать Ubuntu 20.04 или Debian 11.

Установка Aspia Router

Прежде всего скачаем и установим пакет маршрутизатора, ниже будет представлена команда на скачивание последней на момент написания статьи версии Aspia 2.7.0, по мере выхода новых версий адрес и наименование пакетов придется изменить:

wget https://github.com/dchapyshev/aspia/releases/download/v2.7.0/aspia-router-2.7.0-x86_64.deb
apt install ./aspia-router-2.7.0-x86_64.deb

Сформируем конфигурацию роутера:

aspia_router --create-config

Затем откроем файл /etc/aspia/router.json и откорректируем в нем опцию RelayWhiteList, указав список ретрансляторов, которым разрешено работать с маршрутизатором, если адресов несколько, то они разделяются точкой с запятой.

"RelayWhiteList": "127.0.0.1",

Сохраняем файл, добавляем службу в автозагрузку и запускаем ее:

systemctl enable aspia-router
systemctl start aspia-router

На этом настройка маршрутизатора закончена.

Установка Aspia Relay

Точно также скачиваем и устанавливаем последний пакет:

wget https://github.com/dchapyshev/aspia/releases/download/v2.7.0/aspia-relay-2.7.0-x86_64.deb
apt install ./aspia-relay-2.7.0-x86_64.deb

И сформируем конфигурацию ретранслятора:

aspia_relay --create-config

Откроем файл /etc/aspia/relay.json и внесем следующие изменения:

"PeerAddress": "relay.example.com",
"RouterAddress": "127.0.0.1",
"RouterPublicKey": "ROUTER_PUBKEY",
"StatisticsEnabled": "true",

PeerAddress - адрес ретранслятора, лучше всего отдавать клиентам по FQDN (доменному имени), что позволит наиболее гибко управлять инфраструктурой. RouterAddress - адрес маршрутизатора, так как у нас они находятся на одном узле, то указываем 127.0.0.1.

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

cat /etc/aspia/router.pub

Опция StatisticsEnabled включает автоматическую отправку статистики на маршрутизатор, это позволит вам в реальном режиме времени видеть активные соединения.

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

systemctl enable aspia-relay
systemctl start aspia-relay

На этом настройка серверной части завершена

Настройка брандмауэра

Для работы роутера и ретранслятора нам потребуется открыть порты 8060 TCP и 8070 TCP, ниже приведена минимальная конфигурация iptables, также открыт порт 22 TCP для управления сервером по SSH:

#Разрешаем уже установленные и связанные соединения
iptables -A INPUT -i ens33 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#Разрешаем входящий SSH
iptables -A INPUT -i ens33 -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT

#Разрешаем входящие Aspia Router
iptables -A INPUT -i ens33 -p tcp --dport 8060 -m conntrack --ctstate NEW -j ACCEPT

#Разрешаем входящие Aspia Relay
iptables -A INPUT -i ens33 -p tcp --dport 8070 -m conntrack --ctstate NEW -j ACCEPT

#Запрещаем остальные входящие соединения
iptables -A INPUT -i ens33 -j DROP

Где ens33 - имя внешнего интерфейса сервера.

Изменяем формат ID на роутере

По умолчанию Aspia выдает идентификаторы начиная с единицы, что не всем нравится и не очень хорошо смотрится. Но нетрудно заставить ее начать выдавать идентификаторы с некоторой произвольной начальной величины. Для этого надо внести некоторые изменения в базу данных.

Скачаем и установим инструмент для работы с SQLite:

apt install sqlite3

Остановим службу маршрутизатора:

 systemctl stop aspia-router

Перейдем в директорию с базой данных:

cd /var/lib/aspia/

И подключим ее:

sqlite3 router.db3

Выполним команду:

INSERT INTO hosts (id, key) VALUES (1000, 0x53544152544b4559);

И выйдем из базы данных:

.quit

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

Установка Aspia Console

Для управления сервером и подключения к хостам скачаем и установим пакет Aspia Console, прежде всего настроим маршрутизатор. Для этого перейдем в Инструменты - Управление маршрутизатором, для подключения используем логин и пароль admin:admin. После чего переходим на закладку пользователи и первым делом меняем пароль пользователю admin, также рекомендуем сразу переименовать эту учетную запись.

Затем создаем нужное число пользователей, у каждого из них есть два типа сессий:

  • Клиент - позволяет подключаться к удаленным ПК
  • Администратор - позволяет управлять маршрутизатором

В основном нам потребуются клиенты, заводим их по числу операторов.

Aspia-Remote-Desktop-Install-004.pngТеперь мы можем вернуться в консоль и создать адресную книгу, адресная книга хранится в виде файла в локальном расположении и содержит в открытом виде логины и пароли, поэтому настоятельно рекомендуется защитить ее при помощи шифрования.

Aspia-Remote-Desktop-Install-005.pngЗатем настраиваем подключение к маршрутизатору и указываем настройки по умолчанию. Не пренебрегайте этим процессом, Aspia позволяет наследовать настройки и все низлежащие объекты по умолчанию будут принимать настройки верхнего уровня. Один раз настроили и просто добавляете узлы.

Aspia-Remote-Desktop-Install-006.pngСистема наследования в Aspia выстроена гибко, вы можете переопределить любой параметр на любом уровне иерархии и он будет наследоваться низлежащими объектами.

Aspia-Remote-Desktop-Install-007.pngВ целом адресная книга Aspia выглядит очень неплохо, но сложности начинаются при попытке обеспечить совместную работу. Адресная книга считывается при запуске Aspia Console и более не перечитывается, при внесении изменений в книгу их следует сохранить, либо это будет предложено при выходе. Таким образом, если файл книги находится в общем доступе, то сохранятся только те изменения, которые были сохранены последними, все остальные будут утеряны.

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

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

Установка Aspia Host

На удаленном ПК скачиваем MSI-пакет Aspia Host и устанавливаем его. Затем запускаем и переходим к настройкам. Прежде всего указываем адрес маршрутизатора и его публичный ключ:

Aspia-Remote-Desktop-Install-002.pngНастраиваем политики безопасности, тут уже по собственному усмотрению:

Aspia-Remote-Desktop-Install-003.pngНа вкладке Пользователи добавляем учетные записи, которые могут подключаться к данному узлу используя логин и пароль. Схема достаточно гибкая и позволяет назначит один узел нескольким операторам, не снижая уровень безопасности.

Все это хорошо, но как быть, если подобных узлов не один десяток, настраивать каждый вручную? Совсем необязательно. Настройте и проверьте один узел, после чего выполните экспорт настроек в файл aspia-host-config.json, в дальнейшем следует расположить данный файл в одной директории с инсталлятором хоста и настройки подхватятся автоматически.

Aspia-Remote-Desktop-Install-008.pngЕсли нам нужно несколько разных настроек хоста, для разных подразделений, то просто настраиваем один узел как нам надо и экспортируем его настройки.

Установка Aspia Client

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

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

Aspia-Remote-Desktop-Install-009.pngТаким образом мы можем удобно и безопасно подключать к своим узлам третьих лиц не предоставляя им постоянного доступа.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments