RX/docs

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску

Введение

RX@Etersoft — терминальный сервер, разрабатываемый командой Etersoft, предназначенный для организации терминального доступа к серверам под управлением операционных систем на базе GNU/Linux.

Базовая установка и настройка

Установка пакетов в Linux может производиться с помощью любого пакетного менеджера, поддерживаемого операционной системой. В данном руководстве используется универсальный пакетный менеджер Epm, разрабатываемый командой Etersoft. Подробнее узнать о Epm, а также загрузить его для вашей операционной системы можно на странице проекта:

https://github.com/Etersoft/eepm

Также Epm поставляется вместе с дистрибутивом RX@Etersoft.

Загрузка пакетов

Установочные пакеты RX@Etersoft для вашей операционной системы могут быть загружены со страницы продукта (личного кабинета) на сайте Etersoft. Данные для доступа к странице продукта передаются пользователю при передаче лицензии RX@Etersoft.

Настройка сервера

Сервер RX@Etersoft может быть установлен на любую из поддерживаемых операционных систем на базе Linux.

Установка пакетов

Для базого функционирования сервера RX@Etersoft необходимо установить следующие пакеты: nx-libs, nxagent, nxproxy, rx-etersoft:

$ epmi nx-libs-3.5.99.26.1-eter1.p10.2.x86_64.rpm nxagent-3.5.99.26.1-eter1.p10.2.x86_64.rpm nxproxy-3.5.99.26.1-eter1.p10.2.x86_64.rpm rx-etersoft-1.6.7-eter0.p10.1.x86_64.rpm
 $ sudo rpm -Uvh --replacepkgs nx-libs-3.5.99.26.1-eter1.p10.2.x86_64.rpm nxagent-3.5.99.26.1-eter1.p10.2.x86_64.rpm nxproxy-3.5.99.26.1-eter1.p10.2.x86_64.rpm rx-etersoft-1.6.7-eter0.p10.1.x86_64.rpm
Подготовка...                         ################################### [100%]
Обновление / установка...
1: nx-libs-3.5.99.26.1-eter1.p10.2    ################################### [ 25%]
2: nxagent-3.5.99.26.1-eter1.p10.2    ################################### [ 50%]
3: rx-etersoft-1.6.7-eter0.p10.1      ################################### [ 75%]
4: nxproxy-3.5.99.26.1-eter1.p10.2    ################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers

Инициализация

Перед настройкой rx-etersoft необходимо убедиться что в настройках службы sshd
разрешено входить по ключу:

$ sudo sshd -T | grep pubkeyauthentication
pubkeyauthentication yes

При необходимости включить эту возможность указав "PubkeyAuthentication yes" в файле
/etc/openssh/sshd_config. Изменения вступят в силу после перезапуска службы sshd

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

# rxsetup init

Отсутствие ошибок при работе скрипта инициализации и успешное прохождение тестового подключения означают, что сервер настроен и готов к работе.

Журналирование

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

Системный серверный лог rx-etersoft расположен по пути /var/log/nxserver.log. Пользовательские журналы сессий находятся в домашних каталогах пользователей в папке ~/.nx

Для управления журналированием предназначены следующие команды:

# rxsetup logon     - включить журналирование
# rxsetup logoff    - выключить журналирование

Также уровень логгирования может быть настроен с помощью параметров конфигурации rx-etersoft, расположенных в файле /etc/rx-etersoft/node.conf.d/03-logging.conf:

# This directives controls the verbosity of the server-wide log.
# 0: No Logging
# 1: Errors
# 2: Warnings
# 3: Important information
# 4: Server - Client communication
# 5: Information
# 6: Debugging information
# 7: stderror of some applications

Для штатной работы сервера рекомендуется установить уровень логгирования не ниже 5. Для отладки возникающих проблем в процессе настройки сервера следует включить самый высокий уровень логов (7).

По умолчанию логи пользовательских сессий удаляются после завершения терминального сеанса. Чтобы сохранить их для исследования следует задать параметр очистки логов в файле конфигурации /etc/rx-etersoft/node.conf.d/03-logging.conf:

SESSION_LOG_CLEAN=0

Администрирование сессий

Управление пользовательскими сессиями на стороне сервера осуществляется с помощью следующих команд:

# nxserver --list				- список активных сессий пользователей
# nxserver --cleanup			- завершить все подключенные сессии
# nxserver --terminate <user>	- завершить сессии пользователя <user>

Установка клиента

Для подключения к серверу RX@Etersoft рекомендуется использовать штатное клиентское приложение RX Client, входящее в состав поставки RX@Etersoft. Использование сторонних приложений (NoMachine NXClient, OpenNX и т.п.) возможно, но не поддерживается официально и не обеспечивает полный функционал терминального подключения.

RX Client для Linux

Для установки необходимы пакеты: nx-libs, nxssh, rxclient:

$ epmi nx-libs-3.5.99.26.1-eter1.p10.2.x86_64.rpm nxssh-7.5-eter12.p10.13.x86_64.rpm rxclient-1.0.12-eter0.p10.1.x86_64.rpm 
 $ sudo rpm -Uvh --replacepkgs --noscripts nx-libs-3.5.99.26.1-eter1.p10.2.x86_64.rpm nxssh-7.5-eter12.p10.13.x86_64.rpm rxclient-1.0.12-eter0.p10.1.x86_64.rpm
Подготовка... 							####################################### [100%]
Обновление / установка...
1: nx-libs-3.5.99.26.1-eter1.p10.2 		####################################### [ 33%]
2: nxssh-7.5-eter12.p10.13 				####################################### [ 67%]
3: rxclient-1.0.12-eter0.p10.1 			####################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers

После установки запуск RX Client осуществляется командой rxclient или выбором соответствующего пункта в меню приложений операционной системы.

Rxclient main.png

RX Client для Windows

Установка RX Client осуществляется штатным способом с использованием установщика RXClient-Setup.exe (в имени файла может также присутствовать версия клиента).

После установки запуск RX Client осуществляется штатным для операционной системы способом через меню приложений или ярлык на рабочем столе.

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

Настройка подключения к терминальному серверу осуществляется одинаковым образом для RX Client в Linux и Windows, за исключением небольших отличий, описанных в настоящей документации.

Базовые настройки подключения

Для настройки подключения к терминальному серверу необходимо при первом запуске RX Client создать конфигурацию подключения. Для этого в окне приложения следует нажать на кнопку "Добавить", что приведёт к запуску мастера соединений:

Rxclient new connection.png

В поле "Сессия" указывается наименование сеанса. Указывайте понятные названия сеансов, чтобы потом безошибочно находить нужный сеанс в списке подключений по наименованию.

Поля "Хост" и "Порт" должны содержать имя/адрес терминального сервера и номер сетевого порта для подключения.

Тип подключения к сети является условной величиной, влияющей на параметры сжатия изображения при передаче по сети и, следовательно, нагрузку на сетевой канал. Параметр "Модем" характеризуется максимальным сжатием, параметр "LAN" устанавливает передачу без сжатия. В таблице ниже приведён ориентировочный расход трафика при работе в терминальном сеансе в разных режимах (данные приведены для подключения без осуществления проброса звука).

Простой Потоковое видео
Модем 20 Kbit/s 200 Kbit/s
ISDN 40 Kbit/s 7 Mbit/s
ADSL 150 Kbit/s 11 Mbit/s
LAN 2 Mbit/s 20 Mbit/s
Rxclient connection settings p1.png

Размер удалённого рабочего стола может быть установлен следующим образом:

  • Полный экран;
  • Доступное пространство - в качестве рабочей области в пользовательской системе создаётся максимизированное окно (максимально возможное для того, чтобы полностью отображаться на экране);
  • 1024x768;
  • 800x600;
  • 640x480;
  • Пользовательский.

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

Тип сеанса "Unix" является единственным официально поддерживаемым режимом работы RX@Etersoft. Все остальные значения, представленные в RX Client могут быть использованы на свой страх и риск, без официальной поддержки вендора.

Окружение рабочего стола представлено следующими вариантами:

  • KDE;
  • GNOME;
  • XFCE;
  • LXDE;
  • MATE;
  • XDMCP;
  • Пользовательский.

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

Сеанс XDMCP служит для организации подключения с помощью стандартного X протокола. Этот вариант обычно не имеет никаких преимуществ для пользователя, поэтому использование его для обычной работы с терминальным сервером не рекомендуется.

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

Rxclient connection settings p3.png

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

Пункт "Запустить консоль" активирует запуск графической системной консоли. Графическая консоль по умолчанию должна быть настроена на сервере. Процесс настройки консоли по умолчанию не является частью настройки RX@Etersoft и остаётся на усмотрение системного администратора сети.

Пункт "Запустить XSession скрипт" активирует запуск скрипта графического сеанса после входа на терминальный сервер. Этот вариант актуален для запуска не поддерживаемых официально сред, когда на терминальном сервере установлено графическое окружение, которое не может быть запущено путём выбора графического окружения (MATE, KDE, GNOME и т.п.) из списка, но при этом системным администратором сервера настроен запуск графического окружения с помощью скрипта /etc/X11/XSession.

Пункт "Запустить определённую команду" предназначен для запуска в терминальном сеансе указанного приложения. Обычно это используется для организации работы RX@Etersoft в режиме доставки приложений в совокупности с оконным режимом (rootless). Частным случаем запуска одного приложения также может быть и старт команды графического сеанса, например, запуск команды mate-session будет работать аналогично старту сеанса MATE в результате выбора соответствующего пункта списка.

В разделе "Опции" следует обратить внимание на два способа подключения.

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

Опция "Rootless режим" активирует запуск всех окон терминального сеанса в виде отдельных окон, встраиваемых в графический сеанс клиентского рабочего места. Это штатный механизм RX@Etersoft для организации работы в режиме доставки приложений.

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

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

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

Rxclient connection settings p2.png

Аутентификация на сервере

Сервер RX@Etersoft поддерживает следующие способы аутентификации:

  • по паролю;

  • по ssh-ключу;

  • по kerberos-тикету.

    Аутентификация с использованием смарт-карты временно не поддерживается.

    Rxclient auth methods.png

Все перечисленные методы аутентификации на клиентской стороне поддерживаются RX Client в Linux. Для клиентского приложения в ОС Windows доступна только аутентификация по паролю.

Аутентификация по паролю

Аутентификация по паролю является стандартным способом аутентификации RX@Etersoft и не требует специальной подготовки сервера и клиента. Пользователь вводит пару логин/пароль в интерфейсе RX Client. На сервере не должна быть запрещена аутентификация по паролю (по умолчанию не запрещена в большинстве дистрибутивов Linux).

При использовании брокера соединений RX@Etersoft клиент устанавливает соединение с брокером соединений, используя серверный ssh-ключ. Далее происходит аутентификация пользователя на рабочем сервере с использованием протокола NX. Пароль передаётся внутри защищённого канала и не подвергается опасности перехвата путём анализа сетевого трафика. Этот механизм делает парольную аутентификацию RX@Etersoft простой и безопасной.

Важно! Парольная аутентификация при использовании режима прямого подключения (usermode) не безопасна и строго не рекомендуется.

Аутентификация по ssh-ключу

Аутентификация по ssh-ключу производится с использованием пользовательского ssh-agent. Таким образом, ssh-agent должен быть запущен на стороне пользователя, а ключ должен быть в него добавлен.

Для аутентификации по ssh-ключу пользователь вводит логин и выбирает метод аутентификации. Поле, содержащее пароль, при этом игнорируется (заблокировано для ввода в интерфейсе rxclient).

Аутентификация по kerberos-тикету

Важно: RX Client не получает тикет, а использует существующий тикет, уже полученный пользователем. Для успешной аутентификации убедитесь с помощью команды klist, что тикет существует и является актуальным.

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

При использовании режима прямого подключения [рекомендуется]

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

При использовании брокера соединений

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

  1. В диреторию /var/lib/rx-etersoft/home добавить файл .k5login с принципалами тех пользователей, которым разрешён вход через nx. Важно: регистр записей имеет значение.
  2. В домашнюю директорию пользователя добавить файл .k5login с принципалами тех пользователей, которым разрешена аутентификация под этим пользователем.
  3. В файле конфигурации /etc/rx-etersoft/node.conf.d/04-forwarding.conf включить (раскомментировать) строку LOAD_BALANCE_SERVERS и указать там сервер(а), куда производится подключение, по имени.
  4. Все сервера (брокер соединений, один или несколько рабочих серверов, перечисленные в настройках балансировщика) должны быть доступны по имени на всех компьютерах, участвующих в подключении: на клиенте, брокере соединений, рабочем сервере.

Режим прямого подключения (usermode)

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

Целевой сценарий использования usermode — настройка беспарольной аутентификации на терминальных серверах RX@Etersoft с помощью kerberos-тикетов.

Существенным ограничением механизма usermode является снижение безопасности при использовании аутентификации по паролю. Так при использовании брокера соединений пароль пользователя передаётся внутри защищённого соединения клиента с брокером соединений, а при прямом подключении — в открытом виде. Для передачи пароля используется системная утилита sshpass, что не является безопасным.

Важно! Парольная аутентификация при использовании режима прямого подключения не безопасна и строго не рекомендуется.

Для включения режима прямого подключения на сервере нужно в файле /etc/rx-etersoft/conf.d/01-auth.conf внести настройку, разрешающую прямое подключение пользователя:

ENABLE_USERMODE_AUTHENTICATION="1" 

Для инициализации прямого подключения с клиентской стороны RX Client должен быть запущен с ключом --usermode:

$ rxclient --usermode

Проброс устройств

Сетевые папки

Проброс папок реализован по протоколу CIFS.

Настройка клиента

Настройка доступа к сетевому ресурсу

Для того чтобы добавить папку в список "сетевых ресурсов" необходимо настроить
к ней доступ.

Настройка для Linux

Требования к сетевому ресурсу:

  • владеющий папкой пользователь должен быть добавлен в базу пользователей samba (команда pdbedit -L выводит список пользователей);
  • иметь ненулевой пароль в smbpasswd;
  • папка должна принадлежать группе пользователя.

Настроить доступ к папкам samba можно через основной файл настроек /etc/samba/smb.conf, для этого потребуются привилегии пользователя root. Для настройки можно воспользоваться инструкциями, опубликованными на ресурсах с документацией, посвящённых используемому вами дистрибутиву. Пример инструкции.

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

На данный момент Usershares поддерживается многими файловыми менеджерами.

Пример файлового менеджера Caja из рабочего окружения Mate:

Fm share folder.png
Fm share settings.png
Настройка для Windows

Добавление папки в список сетевых ресурсов

Настроенную сетевую папку по протоколу CIFS можно добавить в список "сетевых ресурсов"

Rxclient services add button.png
Rxclient services add.png

Логин и пароль должны принадлежать владельцу папки.

Rxclient services list.png

Настройка сервера

Для корректного монтирования сетевого ресурса пользователь должен иметь права на монтирование с помощью утилиты mount.cifs. Это настроено по умолчанию в файле /etc/sudoers.d/rxetersoft:

User_Alias  NXUSERS = %users
#NXUSERS  ALL= NOPASSWD: /usr/sbin/lpadmin
#NXUSERS  ALL= NOPASSWD: /usr/bin/foomatic-configure
NXUSERS   ALL= NOPASSWD: /sbin/mount.cifs
NXUSERS   ALL= NOPASSWD: /bin/umount
NXUSERS   ALL= NOPASSWD: /usr/bin/nx-usbip-helper

Администратору сервера остаётся добавить пользователя в группу users. При необходимости алиас NXUSERS может быть заменён другой системной группой.

Важно: в некоторых дистрибутивах в целях безопасности отключено использование sudo. Для настройки sudo следует обратиться к документации или в техническую поддержку соответствующего дистрибутива.

Принтеры

Проброс с использованием CUPS [рекомендовано]

Проброс принтеров с помощью CUPS доступен только для подключения из Linux.

Для того чтобы на сервере были доступны пользовательские принтеры достаточно активировать
пункт "Включить проброс принтеров из CUPS":

Rxclient cups enable.png

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

Проброс с использованием CIFS

Проброс принтеров с помощью CIFS доступен как для Linux, так и для Windows-клиентов.

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

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

Смарт-карты

Проброс смарт-карт в RX@Etersoft реализован путём проброса сокета системной службы pcscd.

Важно: в текущей версии RX@Etersoft проброс смарт-карт реализован только для подключения с устройств под управлением Linux.

Настройка клиента Linux

Для работы проброса смарт-карт необходимо установить на клиент следующие пакеты: rxclient-pcsc, prunner.

Если все пакеты корректно установлены, в настройках подключения на вкладке "Сервисы" появится соответствующий пункт:

Rxclient pcsc.png

Для успешной работы служба pcscd должна быть настроена и запущена. Все смарт-карты должны
быть ей видны, что можно проверить командой:

$ pcsc_scan -v

Настройка сервера

Для работы проброса смарт-карт необходимо установить на терминальный сервер следующие пакеты: rx-etersoft-pcsc, prunner.

Для включения проброса смарт-карт на сервер необходимо в файле /etc/rx-etersoft
node.conf.d/02-restriction.conf разрешить использование смарт-карт:

ENABLE_SMARTCARD=1

В конфигурацию сервера SSH (файл /etc/openssh/sshd_config) нужно добавить параметр:

StreamLocalBindUnlink yes

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

Звуковые устройства

Поддержка Мультимедиа реализована с помощью технологии pulseaudio.

Настройка клиента

Для включения проброса звука нужно установить флажок "Включить поддержку мультимедиа" в настройках подключения на вкладке "Сервисы"

Rxclient multimedia.png

Поддержка технологии Мультимедиа очень требовательна к пропускной способности канала связи.
Такие параметры, как Rate (частота дискретизации) и режим Моно, могут снизить требования к пропускной способности. Можно попробовать подобрать оптимальный вариант в вашем случае.

Настройка сервера

Для корректной работы должна быть запущена и настроена служба pulseaudio.

На сервере для настройки мультимедиа используется переменная ENABLE_AUDIO в файле
/etc/rx-etersoft/node.conf.d/02-restriction.conf и может принимать значения:

  • both : разрешено пробрасывать как аудиовыход, так и аудиовход;
  • output : разрешено пробрасывать только аудиовыход;
  • none : запрет на проброс мультимедиа.

Данная настройка доступна только администратору на сервере. Пользователь не сможет на них повлиять через настройки rxclient. После изменения настройки новое значение вступит в силу только приследующем подключении к серверу.