Я сервер себе задумал собрать, да так, чтобы это был просто отдельно стоящий системный блок - без монитора, клавиатуры,
мыши... И один из самых первых вопросов, с которым я столкнулся - необходимость управлять им. Естественно,
дистанционно, по сети. Выбор свой я остановил на програмном обеспечении NoMachine NX Server от компании
Nomachine (сайт -
http://www.nomachine.com/).
Реализация традиционна для систем дистанционного управления (доступа). На компьютере-сервере запущена
программа (т.н. "сервер удаленного доступа"), к которой подключаются машины-клиенты. На сайте компании
Nomachine в разделе "Загрузка" предлагается два варианта сервера:
- NX Server for Linux Evaluation - пробная версия коммерческого (платного) продукта.
- NX Free Edition for Linux - бесплатная версия.
Комерческая версия по окончании пробного срока перестает работать и говорит, что теперь ее пора либо купить, либо удалить.
С другой стороны, основное отличие бесплатной версии от комерческих - в малом количестве маскимально возможных подключений (только
два). А мне, собственно, для управления "домашним сервером" больше и не нужно! Поэтому, отправился
я качать бесплатную версию. Там размещено примечание. Гласит оно следующее:
Для установки NX Server for Linux необходимо установить три пакета: клиент (client), узел (node) и сервер (server).
Клиент необходим, так как в него входят библиотеки, требующиеся узлу. Узел нужен потому, что в него входит инструментарий,
необходимый для сервера. Кроме того, на каждом компьютере-сервере NX должен быть установлен и запущен сервер
SSH (SSHD), т.к. програмное обеспечение NX использует механизмы, предоставляемые SSH-подсистемой для аутентификации
пользователей.
Чтож, надо так надо. Скачиваем все три пакета - клиент, узел и сервер. На момент написания данной статьи это были следующие три файла:
- nxclient-3.2.0-9.i386.rpm
- nxnode-3.2.0-5.i386.rpm
- nxserver-3.2.0-7.i386.rpm
Теперь пакеты нужно установить. Установка пакетов должна осуществляться в строго определенном порядке. Первым необходимо
установить клиента. Вторым - узел и уж затем - собственно сервер. Если Вы будете устанавливать пакеты в ином порядке - получите сообщение
об ошибке и о том, какой пакет должен был быть уже установлен. Linux Mandriva (который установлен на моем "сервере") позволяет
устанавливать пакеты несколькими способами. Можно, например, в графическом режиме (если в системе был установлен пакет
gurpmi
- графический интерфейс к консольному инсталятору пакетов urpmi). Вот так он выглядит:
Рис. №_1 Графический интерфейс установки пакетов - gurpmi
Запускаем установку пакета "клиент". Установка пакетов (программ) - прерогатива администратора системы. Поэтому, после нажатия кнопки "Установить" Вас попросят
ввести пароль пользователя root (администратора). Вводим пароль - пакет установлен. Повторяем еще два раза - для узла и для сервера.
С другой стороны, установка пакетов возможна без использования графических интерфейсов (GUI) - в консоли (командной строке). Выполнить
установку можно, например, с помощью команды rpm, или команды urpmi. После стольких лет привыкания народа к GUI
это может поначалу показаться дикостью. Но, как я уже сказал ранее, устанавливать программы в систему может только root. Более того,
по окончании установки NX-сервера нам нужно будет его еще запустить и настроить. А настройка программы также относится к числу административных задач, и для данного сервиса
выполняется в консоли от имени "супер"-пользователя root (администратора). С другой стороны, в консоли стать суперпользователем можно всего
одной командой - причем, раз и до конца сеанса. Итак, запускаем консоль. Для этого мышью кликаем: "Меню" -> "Утилиты" -> "Консоль". При этом, в
консоль мы сначала попадаем с правами рядового пользователя (от имени которого мы, собственно, вошли в систему). В приведенных ниже
примерах я описываю свои действия на своем "сервере". Мое имя пользователя - dmitry, а имя моего сервера - smb-svr. И это
отчетливо видно по приглашению командного интерпретатора (консоли) - в нем до "собаки" (символа "@") указано имя текущего пользователя,
после - имя (текущего) компьютера, а затем через пробел - имя текущего каталога.
В моем случае выглядит это так:
[dmitry@smb-svr ~]$
Символ "~" обозначает домашний каталог (для текущего пользователя).
Чтобы стать суперпользователем вводим команду:
su
В ответ на появившееся приглашение вводим пароль суперпользователя. Если пароль введен правильно, то приглашение
командного интерпретатора изменится и примет следующий вид:
[root@smb-svr dmitry]#
То есть, мы теперь - пользователь root, компьютер не поменялся, а папка-то была домашней для пользователя dmitry
и реально называется тоже dmitry, что мы и видим. И вот теперь, с правами администратора, мы, как говорится, "во всеоружии".
Если до этого момента Вы еще не установили пакеты в графическом режиме, то теперь самое время сделать это в консоли.
А так как двумя строками выше мы уже стали суперпользователем (root-ом), то установка проблем не вызовет, и пароль
вводить каждый раз не будет необходимости. Переходим в папку, в которую загрузили установочные пакеты программ.
Последовательно вводим три команды как показано ниже (в одной строке - одна команда):
rpm -i nxclient-3.2.0-9.i386.rpm
rpm -i nxnode-3.2.0-5.i386.rpm
rpm -i nxserver-3.2.0-7.i386.rpm
Каждая из команд устанавливает соответствующий пакет. После их выполнения с установкой сервера NX покончено. Переходим к его настройке.
Данная процедура должна выполняться в консоли от имени "суперпользователя" root (администратора). Если Вы устанавливали
пакеты в графическом режиме, пришло время запустить консоль и переключиться в режим администратора, как описано выше. Если
же установку пакетов вы выполняли в режиме командной строки, то мы все еще в консоли и все еще с правами суперпользователя.
И можем приступать к непосредственной настройке сервера удаленного доступа. Следующая команда может поначалу смутить людей,
умеющих читать латинские буквы. Мы ж вроде как установили уже всё?! Ан нет! Итак, вводим:
./nxserver --install
В ответ получаем сокращенный протокол установки сервера удаленного доступа. Примерно такой:
NX> 701 Installing: server at: Пнд Апр 16 12:08:23 2007.
NX> 701 Autodetected system: mandrake.
NX> 701 Install log is: /usr/NX/var/log/install.
NX> 701 Checking NX server configuration using /usr/NX/etc/server.cfg file.
NX> 723 Cannot start NX statistics:
NX> 709 NX statistics are disabled for this server.
NX> 701 Version '3.2.0-7' installation completed.
NX> 701 Bye.
Нас в данном случае больше всего интересует лишь одно слово - "completed" (завершено). То есть, установка сервера завершена. Кому интересно, может просмотреть подробный протокол установки в файле /usr/NX/var/log/install. Но, чтобы уж убедиться наверняка, что сервер запущен и работает, вводим следующую команду:
./nxserver --status
Правильный ответ сервера выглядит так:
NX> 900 Connecting to server ...
NX> 110 NX Server is running.
NX> 999 Bye.
Фраза "NX Server is running" обозначает именно то, чего мы и добивались - сервер работает! Но, скажу сразу, попытка на этом этапе войти в систему с другого компьютера потерпит неудачу! Этому есть две причины. Одна из них - ключ SSH-шифрования. Помните, ранее, в примечаниях по установке сервера было сказано: "...програмное обеспечение NX использует механизмы, предоставляемые SSH-подсистемой для аутентификации...". Не зарываясь особо в дебри, скажу лишь, что при установке NX-сервера создается специальный файл - т.н. "ключ SSH-шифрования". Называется файл "default.id_dsa.key" и расположен он в папке "/usr/NX/share/keys". Этот ключ НЕОБХОДИМО каким-то доступным Вам образом скопировать на те компьютеры, с которых планируется удаленный вход в данный сервер! Впоследствии, ключ этот на тех компьютерах будет использован при настройки клиента удаленного доступа (см. ниже).
Вторая причина - использование NX-сервером собственной базы пользователей, которым разрешен удаленный вход в сервер. И чтобы пользователь dmitry смог в дальнейшем получить доступ к серверу извне, его нужно вписать в эту самую базу. Выполняется это командой:
./nxserver --useradd dmitry
По этой команде сервер в своей базе создаст пользователя (в данном примере - dmitry). Всё? Нет! Своя база пользователей - это не единственное, что у NX-сервера "свое". Есть еще и своя база паролей! По этому, чтобы для пользователя dmitry был возможен успешный удаленный вход, необходимо NX-серверу указать пароль этого самого пользователя. Вводим команду:
./nxserver --passwd dmitry --system
В ответ на приглашение вводим пароль для пользователя dmitry, и в ответ на второй запрос повторяем его (пароль) для верификации. Вот теперь со стороны сервера всё готово - в базу заведен пользователь и ему создан пароль. Можем для проверки задать нашему серверу вопрос о зарегестрированных на нем пользователях. Команда имеет следующий вид:
./nxserver --userlist
В ответ на эту команду сервер выводит список своих пользователей. Пока что мы ввели одного лишь пользователя, что, собственно, и наблюдаем:
NX> 149 Listing NX users:
Username
--------------------------------
dmitry
NX> 999 Bye.
Итак, наш сервер запущен, и в нем заведен пользователь. Теперь мы можем входить в систему дистанционно (с другого компьютера).
Нужно лишь проверить еще две вещи, которые могут помешать этому.
-
Если на сервере запущен файервол (брандмауер), то обязательно должен быть открыт порт 22.
-
Если в настройках сервера SSH (SSHD) используется защита, впускающая в систему только определенных разрешенных пользователей, то
в этот список обязательно должен быть включен пользователь "nx".
Перейдем теперь к компьютеру-клиенту, с которого мы собираемся дистанционно управлять сервером. Для этого на компьютере нужно установить и
настроить программу-клиент. На момент написания данной статьи на сайте компании
Nomachine были доступны к загрузке
бесплатные клиенты для следующих операционных систем:
- NX Client для Windows
- NX Client для Linux
- NX Client для Mac OSX
- NX Client для Solaris
Выбираем требующийся для Вашей ОС пакет, загружаем и устанавливаем. Как устанавливать пакет в Linux, было описано выше (с поправкой на тот факт,
что устанавливать нужно лишь один пакет - клиент). Процедуру установки в Windows, я думаю, описывать излишне. Про Mac OSX и Solaris
мне сказать нечего - я с этими ОС не работал. В ОС Windows при первом запуске клиента будет предложен "волшебник" - NX Connection Wizard.
В нем указывается имя сессии (Вы придумываете его самостоятельно), имя сервера, к которому Вы планируете подключиться, номер порта,
ОС сервера, тип и размер рабочего стола, и т.д. По окончании работы "волшебника" на рабочем столе будет создан ярлык с именем сессии,
придуманным Вами. Впоследствии запускать сеанс входа в сервер будем именно с его помощью. Настройку параметров клиента в любое время
можно запустить следующим образом: "Пуск" -> "Программы" -> "NX Client for Windows" -> "NX Client for Windows". Жмем и видим следующее окно:
Рис. №_2 Окно запуска NX-клиента в Windows
В этом окне мы сначала выбираем имя сессии в меню "Session" (имя "black box control" в примере на рис. 2 - это я так назвал сессию у себя), а затем жмем кнопку "Configure..." Открывается меню настройки параметров сессии, как
показано ниже слева:
Рис. №_3 Настройка NX-клиента в Windows (слева) и окно ввода ключа (справа)
В этом окне мы видим несколько закладок. В закладке General (Общее) - все те же настройки, которые были в "волшебнике". Проверим их на всякий случай еще раз.
- Host - имя сервера, к которому планируется подключение. Вместо имени сервера можно ввести его IP-адрес (например, 192.168.1.1)
- Port - номер порта, на котором сервер ждет подключений - 22.
- Key - ключ (SSH-шифрования). О нем - отдельно ниже.
- Desktop - выбор параметров рабочего стола. В одном выпадающем списке выбирается ОС, запущенная на сервере, к которому планируется подключение. Во втором выпадающем списке выбирается графическая оболочка (Gnome, KDE, пр.), вход в которую будет осуществлен автоматически.
- Ползунок с подписями "Modem", "ISDN", "ADSL", "WAN" и "LAN" - меняет степень сжатия (компрессии) данных в канале между сервером и клиентом. Позволяет снизить объем трафика в канале связи "клиент <-> сервер".
- Display - установка размеров экрана. Можно выбрать конкретные значения (например, "640х480" или "800х600" и т.д.), можно выбрать полноэкранный (Fullscreen) или пользовательский (Custom) размеры...
Теперь подробнее про ключ SSH-шифрования. Помните, ранее (при установке сервера) я уже обращал Ваше внимание на файл
default.id_dsa.key. И говорил, что его нужно любым доступным способом скопировать на компьютер, с которого планируется входить в сервер. Надеюсь, Вы так и сделали. Теперь его время пришло. Нажимаем кнопку "
Key..." (левая половина рис. 3). Появляется окно ввода ключа, как показано на рис. 3 справа. В этом окне мы нажимаем кнопку "
Import" и на запрос программы указываем путь к файлу
default.id_dsa.key. После этого в окне появляется этот самый ключ - набор букв, символов и цифр, являющийся по сути паролем, который NX-сервер при установке сгенерировал автоматически. (В реальном случае Вы конечно увидите именно буквы, символы и цифры, а не размазанные пятна как на рис. 3 - все-таки, там был мой пароль, вот я его и "размылил"). Нажимаем кнопку "
Save" два раза: первый раз в окне ввода ключа (которое после этого закроется), а второй - в окне настройки параметров сессии. Напоследок - любимая кнопка "
OK", и клиент готов!
После нажатия кнопки "
OK" мы возвращаемся в окно запуска NX-клиента, показанное на рис. 2. В нём - вводим имя пользователя и пароль (поля "
Login" и "
Password", соответственно). Жмем кнопку "
Login" и немножко ждем. Результат может выглядеть например так, как показано на рис. 4 ниже. В данном примере (для наглядности) я включил режим дисплея как "800х600" - и благодаря этому рабочий стол KDE моего Linux-сервера разместился в окне...
Рис. №_4 Рабочий стол пользователя dmitry на сервере smb-svr в окне NX-клиента, запущенного из под Windows
Напоследок - подсказка:
Во время работы в полноэкранном режиме для того, чтобы не завершая сеанс вернуться с удаленного рабочего стола сервера на рабочий стол машины-клиента, нужно мышью "прицелиться" в самую крайнюю правую верхнюю точку экрана и щелкнуть. При этом рабочий стол сервера будет свернут, а Вы вернетесь к работе на локальной машине.
Вместо послесловия...
-
Выше мной было описанно, как установить, настроить и подключить машину-клиент к NX-серверу "по-быстрому". Возможности NX-сервера на этом не исчерпываются. Возможностей, функций и настроек у него еще превеликое множество. Все это подробно описано в документации, представленной на сайте компании Nomachine . Но, правда, на английском языке...
-
Тем, кто слышал слово "виртуализация", но не знает что это - вот это оно и есть...
(С) Дмитрий Харций, апрель 2008 г.
ВВЕРХ СТРАНИЦЫ