RX@Etersoft: создание терминального сервера шаг за шагом

19 Июл
2012

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

RX@Etersoft — это развитие проекта FreeNX, получившее в своё время собственное название и свои отличительные особенности. К техническим отличиям RX от FreeNX можно отнести усовершенствованный проброс пользовательских принтеров и дисковых ресурсов, корректную работу с буфером обмена и доведённый до возможности стабильного использования rootless-режим (режим одного приложения).

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


Серверная часть


Все действия по установке и настройке сервера RX@Etersoft требуют прав root.

Подготовка сервера

Для организации подключения по протоколу NX у вас должен быть установлен и запущен ssh-сервер.
В настройках ssh-сервера должна быть включена авторизация по ключу, для этого в настройках сервера /etc/openssh/sshd_config должна быть строка:
PubkeyAuthentication yes

Если на сервере используется директива AllowUsers, в соответствующую строку sshd_config нужно включить пользователя nx.

Установка и настройка сервера RX@Etersoft

Установка RX сводится к установке двух пакетов: rx-etersoft и nx. Сделать это нужно стандартным для выбранной ОС способом.
Например, для ALT Linux, Debian, Ubuntu с использованием менеджера пакетов apt-get:
# apt-get install rx-etersoft-* nx*

для RedHat, CentOS, Scientific, LinuxWizard или Fedora с использованием yum:
# yum localinstall rx-etersoft*.rpm nx*.rpm


После установки инициализация RX@Etersoft производится командой:
# rxsetup


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

Авторизация на сервере

При подключении клиентской части к серверу RX@Etersoft, происходит подключение под пользователем nx по протоколу ssh с авторизацией по ключу. Затем по ssh-протоколу организуется подключение к localhost под пользователем и паролем, указанным клиентом в настройках подключения. Таким образом ssh-сервер должен разрешать пользователю nx авторизацию по ключу, а остальным — авторизацию с localhost по паролю.
Для повышения безопасности рекомендуется использовать директиву AllowUsers в ssh-сервере:
AllowUsers user1@127.0.0.1 user2@127.0.0.1 nx

Если ssh-сервер настроен не на 22, а на другой порт, в файле /etc/nxserver/node.conf.d/00-general.conf следует указать нужный порт:
SSHD_PORT=32 


Управление сессиями

Для управления сессиями существует графическая утилита nxsadmin.
Если же управлять из консоли удобнее, то все возможности для этого предоставляет команда nxserver. С помощью неё можно посмотреть список открытых сессий, закрыть указанную сессию или все сессии указанного пользователя, завершить все открытые сессии, остановить или запустить сервер. Кроме того, команда nxserver позволяет отправлять сообщения определённому пользователю (или в определённую сессию) или отправить широковещательное сообщение всем пользователям сразу. Все немногочисленные, но вполне достаточные функции утилиты, а также синтаксис команд можно посмотреть, как обычно, обратившись к помощи:
# nxserver --help


Клиентская часть


Выбор клиента

В качестве клиентского приложения для RX@Etersoft можно использовать несколько клиентов NX:
  • NXClient
    Продукт компании NoMachine, является самым популярным для организации подключения к NX-серверу. Обладает богатыми настройками и высокой надёжностью. Есть сборки под Windows и Linux. Главным недостатком этого клиента является отсутствие развития и закрытость кода программы — в случае возникновения ошибок, обходить их приходится разными, не всегда логичными методами.
  • OpenNX
    NX клиент с открытым кодом, написан на C++ с использованием wxWidgets. Существуют сборки под Linux, Windows и MAC OS.
  • QtNX
    Многообещающий проект, написанный на Qt, как следует из названия. К сожалению, не получил должного развития, и на данный момент OpenNX и NXClient значительно превосходят QtNX и по функционалу, и по стабильности.

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

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

Для работы nxclient понадобятся пакеты nx и nxclient. Установка производится аналогично установке пакетов серверной части.

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

Для Windows nxclient поставляется в виде привычного пользователю инсталлятора с расширением *.exe. Процесс установки ничем не отличается от установки любой другой windows-программы.

Для Windows большое значение имеют имя пользователя и имя компьютера. Так как nxclient напрочь не дружит с кириллицей, стоит избегать её везде, где только возможно. Имя хоста ни в коем случае не должно быть кириллическим. Лучше, если имя пользователя тоже будет латиницей, как и пути, по которым находится программа и пользовательское окружение. По умолчанию пользовательское окружение располагается в домашней папке пользователя, то есть путь содержит имя пользователя — ещё один довод за латиницу.

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

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


Вкладка «General» содержит все основные настройки подключения: имя/адрес сервера, порт, среду в которой производится вход в систему. Например, для подключения к linux-серверу с KDE4 на борту нужно выбрать UNIX — KDE, а для rootless-режима, который будет расмотрен в следующем разделе, существует настройка «Custom». Установка флажка под именем сервера позволит сохранить пароль пользователя, во избежание его постоянного ввода при подключении. Регулятор скорости соединения позволяет выбрать ресурсоёмкость канала, ориентируясь на тип подключения: от модема до локальной сети. Секция «Display» устанавливает размеры экрана, всё доступное пространство, установленное по умолчанию — хороший выбор.


Большой интерес для пользователя представляет вкладка «Services» (рис. 2). Она позволяет настраивать проброс локальных принтеров и пользовательских ресурсов, используя чекбоксы и файловые диалоги — без всяких конфигурационных файлов. Для того, чтобы принтер или папка оказались проброшены на сервер, они должны быть «расшарены» на клиентской машине и внесены в список общих ресурсов в настройках nxclient.

На прочих вкладках подробно останавливаться не будем, оставив простор для экспериментов.

Режим одного приложения

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

С точки зрения пользователя режим одного приложения (он же — rootless-режим) работает так: пользователь запускает программу с ярлыка не рабочем столе, и она у него открывается в его рабочем сеансе, представляя собой обычное окно. На самом же деле происходит подключение к серверу и запуск программы на нём, а на рабочий стол пользователя выводится только окно с запущенной программой. Такой приём не только не вызывает панику у неподготовленного сотрудника (можно настроить вплоть до знакомого ярлыка на рабочем столе), но и позволяет существенно сэкономить ресурсы сервера.


Для организации rootless-режима в настройках nxclient указывается сочетание UNIX — Custom, а в настройках задаётся выполнение команды, стартующей программу на сервере. На сервере в свою очередь создаётся shell-скрипт, запускающий программу (например, скрипт запуска 1С), и помещается в /usr/bin/.

Вместо заключения


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



загрузка...

Комментарии:

Наверх