Для администраторов

Общее описание системы

Термины и понятия

Базовый сервер – сервер на базе ОС Linux, на который устанавливается веб-приложение «SSHM-сервер». Базовый сервер осуществляет port forwarding при открытии ssh-туннеля.

SSHM-сервер – веб-приложение, реализующие общие функции администрирования системы. Через него производится управления сервисами, конечными точками, пользователями и их группами, а также правами доступа пользователей к конечным точкам. Устанавливается на базовый сервер.

RS SSH Client – desktop-приложение, устанавливаемое на удаленном компьютере и предназначенное для осуществления удаленного доступа к конечным точкам сервисов системы. Приложение инициирует открытие ssh-туннеля, через который осуществляется доступ к конечным точкам.

Сервис – группа конечных точек, объединенных по принципу одного механизма доступа к ним. Например, remote desktop, sql server и т.п. Конечные точки одного сервиса, как правило, имеют одинаковый набор типов конфигурационных параметров.

Конечная точка – сетевое устройство, к которому осуществляется удаленный доступ посредством приложения RS SSH Client. Конечная точка реализует функционал в рамках сервиса. Один компьютер или сетевое устройство может поддерживать несколько конечных точек для разных сервисов.

Профайл пользователя – зашифрованный файл, скачиваемый пользователем посредством веб-приложения «SSHM-сервер». Профайл может быть также послан пользователю по email в случае если веб-интерфейс SSHM-сервера недоступен в открытом Интернете. Файл используется в приложении RS SSH Client для авторизации пользователя в системе.

Heartbeat-запрос – специальный запрос к API системы, уведомляющий SSHM-сервер о том, что соответствующий компонент системы поддерживает сессию открытой. Heartbeat-запросы могут отправляться:

  • RS SSH Client для уведомления о том, что приложение запущено, подключено к API и сессия подключения к системе активна;
  • RS SSH Client для уведомления о том, что приложение запущено, выполнено подключение к конечной точке и сессия подключения к конечной точке активна;

Компоненты системы

Система состоит из следующих основных компонентов:

  • SSHM-сервер, устанавливаемый на базовом сервере;
  • RSSSHClient, устанавливаемый на удаленном компьютере, с которого планируется производить доступ к конечным точкам системы;

 

Формат параметров сервисов и конечных точек

Параметры для сервисов и конечных точек задаются в XML-формате:

<parameters version=”X.X”>

<param1>первый параметр</param1>

<param2> второй</param2>

… формат параметров зависит от контекста конкретного сервиса и типа конечных точек

… параметры могут отсутствовать

<paramN></paramN>

</parameters>

 

Пример задания параметров для конечной точки типа RDP:

<parameters version=”1.0”>

<name>Computer 1</name>

<host>192.168.60.5</host>

<localport>3399</rdlocalport>

<remoteport>3389</rdremoteport>

</parameters>

 

 

Типовые параметры сервиса

Параметр type

Этот параметр определяет способ работы с конечными точками данного сервиса. Он может принимать следующие значения:

  • channel. В этом случае при подключении к конечной точке просто открывается ssh-туннель. Дальнейшее его использование зависит от пользователя и сторонник приложений;
  • application. В этом случае помимо открытия ssh-туннеля еще запускается стороннее приложение с параметрами (например, клиент remote desktop)

Примеры задания параметра:

<type>channel</type>

<type>application</type>

 

Параметр app_filename

Этот параметр используется при <type>application</type>. Параметр задает название исполняемого файла стороннего приложения, которое будет запускаться после открытия ssh-туннеля. Может использоваться в шаблоне параметр template.

Примеры задания параметра:

<app_filename>iexplore.exe</app_filename>

<app_filename>mstsc.exe</app_filename>

Параметр app_path

Этот параметр используется при <type>application</type>. Параметр задает рабочую директорию для исполняемого файла стороннего приложения, которое будет запускаться после открытия ssh-туннеля. Может использоваться в шаблоне параметр template.

Примеры задания параметра:

<app_filename>iexplore.exe</app_filename>

<app_filename>mstsc.exe</app_filename>

 

Параметр app_arguments

Этот параметр используется при <type>application</type>. Данный параметр задает параметры командной строки для исполняемого файла стороннего приложения, которое будет запускаться после открытия ssh-туннеля. Данный параметр является шаблонизируемым. В его значении могут использоваться выражения вида “%paramname%”, где paramname – название другого параметра сервиса. При парсинге параметров вместо выражения “%paramname%” будет подставлено значение параметра с именем paramname.

Примеры задания параметра:

<template>%app_path%%app_filename%%app_arguments%</template>

<template>%app_filename%%app_arguments%</template>

 

Параметр template

Этот параметр используется при <type>application</type>. Данный параметр задает шаблон строки для запуска исполняемого файла стороннего приложения, которое будет запускаться после открытия ssh-туннеля. Данный параметр является шаблонизируемым. В его значении могут использоваться выражения вида “%paramname%”, где paramname – название другого параметра сервиса. При парсинге параметров вместо выражения “%paramname%” будет подставлено значение параметра с именем paramname.

Примеры задания параметра:

<template>%app_path%%app_filename%%app_arguments%</template>

<template>%app_filename%%app_arguments%</template>

 

Параметр service_tag_endpoint_template

С помощью этого параметра определяется список параметров, значения для которых будут вводиться при регистрации новой конечной точки с помощью приложения RS SSH Agent Control. Можно также задать значения по-умолчанию, которые будут выведены в RS SSH Agent Control. Общий формат задания параметров следующий:

Paramname1[=value1],… ParamnameN[=valueN]

Здесь [=valueN] – опциональная часть, определяющая значение по-умолчанию

 

Примеры задания параметра:

<service_tag_endpoint_template>host, localport, remoteport</service_tag_endpoint_template>

<service_tag_endpoint_template> localport=3389, remoteport=3389</service_tag_endpoint_template>

Типовые параметры конечной точки

Параметр host

Данный параметр задает IP-адрес конечной точки в локальной сети.

Пример задания параметра:

<host>192.168.60.155</host>

 

Параметр localport

Данный параметр номер локального порта на удаленном компьютере пользователя, через который будет осуществляться port forwarding при открытии ssh-туннеля к конечной точке.

Пример задания параметра:

<localport>3377</localport>

 

Параметр remoteport

Данный параметр номер порта на компьютере конечной точки, через который будет осуществляться port forwarding при открытии ssh-туннеля к конечной точке от удаленного компьютера пользователя.

Пример задания параметра:

<remoteport>3389</remoteport>

 

 

Установка

Технические требования для установки

Для работы серверной части системы (SSHM-сервер) требуется базовый сервер на основе дистрибутива ОС Linux. Минимальные технические параметры сервера определяются возможностью быстрой работы веб-сервера Apache и сервера БД MySQL. Рекомендуемый дистрибутив Linux – CentOS 6. В дальнейшем планируется увеличение числа дистрибутивов, на которых протестирована работа серверного инсталлятора и SSHM-сервера.

Для работы клиента RS SSH Client требуется компьютер с ОС Windows XP или выше. В дальнейшем планируется добавить поддержку MacOS и ОС для мобильных устройств.

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

Установка серверной части

Для серверной части понадобится сервер с базовой инсталляцией дистрибутива Linux. Для установки серверной части системы нужно скачать инсталляционный скрипт install.sh и архив sshm.tag.gz и разместить их в одной директории. Затем запускаем консоль, заходим в директорию в install.sh и архивом и выполняем команду chmod 755 install.sh из консоли для того, чтобы дать права на запуск инсталляционного скрипта. После этого можно запустить инсталляционный скрипт командой ./install.sh

В ходе работы инсталляционного скрипта будет запрошен ввод ряда параметров:

scr_1

  • Application instance name – название для инсталляции SSHM-сервера. Будет использоваться для вывода в GUI веб-приложения и в качестве названия для скачиваемых пользователями профайлов. Если оставить пустым – то будет использоваться имя «SSH Master»;
  • Application Superuser password – пароль для суперпользователя. Вместе с логином sshm он будет использоваться для входа в веб-приложение в качестве суперпользователя;
  • Confirm password – подтверждение пароля для суперпользователя;
  • SSH Host (IP or domain name) – адрес сервера в локальной сети, на котором установлен SSHM-сервер. Может быть локальным IP или внешним доменным именем;
  • SSH Port – номер порта ssh-сервера. Если оставить пустым – то будет использовано значение по-умалчиванию 22;
  • Do you want to create request for a SSL certificate sign ? – если ввести “n”, то будет сгенерирован и установлен самоподписанный SSL-сертификат для сервера и процесс установки будет завершен. Если ответить ввести “y” – то будет произведена генерация файлов для отправки регистратору SSL-сертификатов (будет рассмотрено ниже).

После ввода всех необходимых данных начнется установка (при ответе “n” на запрос «Do you want to create request for a SSL certificate sign ?»). Будут выводиться сообщения о результатах всех этапов установки:

  1. Update repositories – обновление индекса установщика пакетов;
  2. Install NTPD service – установка сервиса NTPD для синхронизации часов сервера;
  3. Setup SSH service – установка ssh-сервера (если он не установлен(выключен) в базовой конфигурации дистрибутива);
  4. Install Apache – установка и конфигурирование веб-сервера Apache;
  5. Configure firewall – настройка фаерволла (открытие портов к SSH-серверу и веб-серверу);
  6. Install PHP – установка и конфигурирование PHP;
  7. Install MySQL – установка и конфигурирование сервера БД MySQL;
  8. Install web-application – распаковка архива и установка веб-приложения SSHM-сервера;
  9. Setup web-application session CRON command – добавление в cron команды очистки списка неактивных сессий

После окончания установки будет выведено сообщение:

scr_3

Если была выбрана опция генерации файлов для получения SSL-сертификата (при ответе “y” на запрос «Do you want to create request for a SSL certificate sign ?»), то будут заданы дополнительные вопросы, необходимые для генерации фалов запроса SSL-сертификата:

scr_4

После ввода ответов на эти вопросы начнется процесс установки, который аналогичен описанному выше, но дополнительным пунктом будет:

scr_5

Будет выведено сообщение:

scr_6

В директории, в которой расположен инсталляционный скрипт, будут сгенерированы csr- и key- файлы. Содержимое csr-файла нужно скопировать и передать выбранному Вами регистратору SSL-сертификатов. После того, как запрошенный сертификат будет получен от регистратора необходимо скопировать его в директорию с инсталляционным скриптом. Внимание ! Часть названий csr-, key- и crt-файлов до расширения должна совпадать. После копирования файла сертификата нужно запустить скрипт installl.sh еще раз. Если файл сертификата найден, то будет выведено сообщение:

scr_7

При утвердительном ответе на вопрос будет произведена установка сертификата в систему и перезапуск веб-сервера:

scr_8

Если сертификат не найден, то будет выведено сообщение и установка сертификата прервется:

scr_9

Если сертификат поврежден или не соответствует key-файлу, он будет скопирован, но запуск веб-сервера станет невозможным:

scr_10

В этом случае потребуется исправление проблемы «вручную». После успешной установки SSHM-сервера можно приступить к его администрированию через веб-приложение.

Установка RS SSH Client

Для установки приложения RS SSH Client необходимо скачать и запустить инсталлятор rs_ssh_client.setup.exe. После его запуска появится окно с приглашением:

scr_1

Нажимаем Next:

scr_2

Здесь следует выбрать путь для установки приложения или оставить путь, устанавливаемый по-умолчанию. Далее нужно нажать Install. Начнется установка. После ее завершения появится финальный диалог:

scr_3

Нажимаем Finish. Приложение установлено и готово к использованию. В меню «Пуск» и на рабочем столе будут созданы ярлыки для запуска приложения.

 

 

Веб-приложение SSHM-сервер

Авторизация и основной экран

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

scr_1

Для первоначальной настройки системы нужно воспользоваться логином sshm суперпользователя. В качестве пароля нужно использовать пароль введенный на этапе установки системы.

Основной экран предоставляет доступ к двум модулям:

  • Service
  • X-Workgroups

 scr_2

Модуль Services

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

Закладка Services

Здесь осуществляется управление списками конечных точек (добавление/изменение/удаление). Для изменения свойств сервиса необходимо выбрать сервис в дереве. В панели справа будут выведены свойства сервиса:

Поля свойств сервиса:

  • ID – уникальный идентификатор сервиса в БД системы;
  • Name – название сервиса
  • Description – опциональное описание сервиса
  • Parameters – список параметров созданного сервиса задается в формате XML (см. Формат параметров сервисов и конечных точек);
  • Active – включение/отключение доступности сервиса для пользователей.

Для сохранения внесенных изменений в поля свойств сервиса нужно нажать кнопку Apply.

Для добавления новой конечной точки нужно выбрать в дереве сервис, к которому планируется добавить конечную точку и нажать линк New Endpoint. В дереве сервисов добавляется и становится активным новый элемент:

Поля свойств конечной точки:

  • ID – уникальный автогенерируемый идентификатор конечной точки в БД системы;
  • Name – название конечной точки
  • Description – опциональное описание конечной точки
  • Parameters – список параметров конечной точки задается в формате XML (см. Формат параметров сервисов и конечных точек);
  • Active – включение/отключение доступности конечной точки для пользователей.

Для сохранения внесенных изменений в поля свойств конечной точки нужно нажать кнопку Apply. Для удаления конечной точки нужно выбрать ее в дереве и нажать линк Delete. Появится запрос:

scr_5

При утвердительном ответе конечная точка будет удалена.

 

Закладка Users

Здесь осуществляется управление правами групп пользователей и отдельных пользователей по доступу к сервисам и конечным точкам.

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

Для изменения прав доступа сервиса или конечной точки нужно нажать кнопку prop_btn в строке. Будет выведен диалог:

scr_7

При нажатии на линк Add будет добавлена строка, в которой можно выбрать тип записи (Allow/Deny) и диапазон дат, в течение которого действует право доступа:

scr_8

Можно задать несколько строк с правами. При этом, если диапазоны дат пересекаются, то приоритет имеет запретительное право доступа (Deny). Таким образом, для сервиса/конечной точки можно задать временные промежутки, когда пользователи могут получить к ним доступ. Для удаления строки с правом доступа нужно нажать кнопку delete_btn. После внесения изменений нужно нажать кнопку Save.

После выбора пользователя в правой части формы выводится закладка со списком доступных в системе сервисов и конечных точек.

На закладке Permissions для каждого сервиса или конечной точки доступно редактирование прав доступа, аналогично правам для групп пользователей, описанным выше. Дополнительно для каждой конечной точки можно задать время доступа по часам и дням недели. Для этого надо нажать кнопку prop_btn. Появится диалог:

scr_10

В нем можно выбрать дни недели, для которых нужно задать диапазон часов доступа и задать начальное и конечное время. Если установить флаг Always – то ограничение по времени доступа (часам доступа) снимается.

 

Закладка SSH root access

На закладке SSH root access можно скачать ключ в формате OpenSSH для доступа к базовому серверу по SSH с авторизацией по ключу:

5

Для этого нужно воспользоваться линком «Download SSH private key for root user». Полученный ключ можно использовать для доступа из ssh-клиента, например Putty. Для этого ключ нужно конвертировать в формат PPK с помощью утилиты Puttygen.

Также рекомендуется заблокировать авторизацию в SSH-сервере по паролю. Для этого нужно нажать линк «Disable password authentication (recommended)». Для обратного включения авторизации оп паролю нужно воспользоваться линком «Allow password authentication (not recommended)».

 

Модуль X-WorkGroups

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

Закладка Common

scr_11

В левой части страницы расположен список групп пользователей. В правой части выводится панель со свойствами выбранной в списке группы. Панель содержит две закладки. На закладке Common содержится поле с названием группы.

Закладка Users

Закладка Users содержит список всех пользователей системы. Флагами отмечены пользователи, входящие в выбранную группу All Users:

scr_12

Для удаления пользователя нужно нажать кнопку delete_btn, для открытия панели со свойствами пользователя – кнопку prop_btn. Для создания нового пользователя нужно нажать линк Add User. Появится панель со свойствами нового пользователя:

scr_13

Поля общей части:

  • Name – общее имя/наименование пользователя для отображения в интерфейсе веб-приложения;
  • Login – логин пользователя. Должен быть уникальным в пределах системы;
  • Effective range – эффективный диапазон, в течение которого учетная запись пользователя доступна. Если диапазон открыт – то ограничений по времени доступности учетной записи не накладывается;
  • Active – флаг активности учетной записи. Если снят – то учетная запись деактивирована и пользователь не сможет авторизовать в веб-приложении;
  • Root User for Acсount – флаг признака корневого пользователя для системы. Корневой пользователь имеет доступ к модулю X-Workgroups.

В области Attributes выведены поля для ввода значений атрибутов, состав и тип которых определяется сущностью User (см. Модуль Entities).

Для сохранения изменений нужно нажать кнопку Save, для отмены – Cancel.