Рано или поздно системные администраторы задумываются о собственном решении для удаленного управления ПК. Это может быть связано с уходом с российского рынка привычных продуктов, финансовыми вопросами или соображениями безопасности. В любом случае такие решения есть и вопреки распространенному мнению установить и поддерживать их несложно и недорого. Сегодня мы рассмотрим как установить и настроить на собственном сервере 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 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 позволяет наследовать настройки и все низлежащие объекты по умолчанию будут принимать настройки верхнего уровня. Один раз настроили и просто добавляете узлы.
Система наследования в Aspia выстроена гибко, вы можете переопределить любой параметр на любом уровне иерархии и он будет наследоваться низлежащими объектами.
В целом адресная книга Aspia выглядит очень неплохо, но сложности начинаются при попытке обеспечить совместную работу. Адресная книга считывается при запуске Aspia Console и более не перечитывается, при внесении изменений в книгу их следует сохранить, либо это будет предложено при выходе. Таким образом, если файл книги находится в общем доступе, то сохранятся только те изменения, которые были сохранены последними, все остальные будут утеряны.
В такой ситуации напрашивается решение с единственным администратором, но адресная книга содержит в себе параметры подключения к роутеру и если вы сформировали ее с правами администратора, то все подключившие ее получат такие же права. Реальный сценарий - это копирование измененной книги, изменение учетной записи подключения к роутеру в ней с администратора на клиента и последующее распространение.
Если же у вас есть разные операторы с разным уровнем доступа, то тут остается только ручная работа с каждой адресной книгой.
Установка Aspia Host
На удаленном ПК скачиваем MSI-пакет Aspia Host и устанавливаем его. Затем запускаем и переходим к настройкам. Прежде всего указываем адрес маршрутизатора и его публичный ключ:
Настраиваем политики безопасности, тут уже по собственному усмотрению:
На вкладке Пользователи добавляем учетные записи, которые могут подключаться к данному узлу используя логин и пароль. Схема достаточно гибкая и позволяет назначит один узел нескольким операторам, не снижая уровень безопасности.
Все это хорошо, но как быть, если подобных узлов не один десяток, настраивать каждый вручную? Совсем необязательно. Настройте и проверьте один узел, после чего выполните экспорт настроек в файл aspia-host-config.json, в дальнейшем следует расположить данный файл в одной директории с инсталлятором хоста и настройки подхватятся автоматически.
Если нам нужно несколько разных настроек хоста, для разных подразделений, то просто настраиваем один узел как нам надо и экспортируем его настройки.
Установка Aspia Client
Клиент на первый взгляд может показаться приложением бестолковым: адресную книгу не поддерживает, требует явного указания идентификатора и учетных данных. Конечено, если мы говорим о внутренней инфраструктуре, то более удобно использовать консоль. Но клиент идеально подходит для предоставления удаленного доступа третьим лицам.
Для них на маршрутизаторе заводим отдельного пользователся с разрешенным сеансом типа Клиент, этот пользователь не должен быть добавлен на хостах. В резульате единственной возможностью подключения для такого клиента будет одноразовый пароль.
Таким образом мы можем удобно и безопасно подключать к своим узлам третьих лиц не предоставляя им постоянного доступа.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии