Удаленный доступ между Ubuntu- и Windows-машинами в виртуальной ЛВС. автор: к.т.н., доц. Хабаров С.П., Санкт-Петербург, 2011 г. ( www.habarov.spb.ru, serg.habarov@mail.ru ) Вместо предисловия Уважаемые коллеги Ubuntu-содружества и начинающие сетевые пользователи! Предлагаемый вам материал - это фрагмент большого учебного пособия, в котором рассматриваются вопросы организации гетерогенных ЛВС, их исследования, а также моделирования на базе виртуальных машин с различными операционными системами. Отдельно в этом пособии рассматривается вопрос взаимодействия Ubuntu- и Window-машин, возможные протоколы их объединения и используемые при этом сетевые технологии. Отдельная глава посвящена удаленному доступу между Ubuntu и Windows компьютерами. Причем знакомство с этим взаимодействием рассматривается с использованием всего одного компьютера в рамках организации на нем виртуальной сети. Именно эта глава, глава 8, и представляется вашему вниманию. Представленный материал носит не технический, а учебно-методический характер, рассчитанный на начинающих сетевых пользователей. По этой причине он включает в себя дополнительные сведения, с которыми хорошо знакомы более опытные пользователи. Отсюда и приложения к этой главе, чтобы у начинающего сетевика сложилось, хотя бы скудное, но общее представление о рассматриваемом вопросе. Абсолютно не претендуя на авторство большей части изложенного здесь материала, я ставил перед собой задачу познакомить начинающих пользователей только с небольшим кругом вопросов, которые опытными пользователя давно обсуждаются в статьях и форумах Интернет. Именно сведения из этих источников я и объединил в этой главе, рассмотрев их в условиях организации виртуальной сети на одном компьютере. Надеюсь, что приведенный материал окажется кому-то полезен, а кто-то почерпнет для себя что-либо новое. ^ 8. Удаленный рабочий стол в Ubuntu Вы уже знакомы с опцией "Удалённый рабочий стол" по работе в Windows. Более того на одном из виртуальных или сетевых узлов у вас должна быть установлена Windows XP, на которой разрешен доступ на дистанционное управление рабочим столом. Если вы забыли как это делается можете воспользоваться краткой справкой, приведенной в Приложение 1 к данной главе. До начала знакомства с этим разделом, следует проверить, что реально существует доступ с основного Windiws-компьютера к удаленному рабочему столу виртуальной машины с Windows XP для конкретного логина и пароля пользователя. Это нужно для того, чтобы не было проблем в процессе дальнейшего знакомства с использованием удаленного рабочего стола в среде Ubuntu - Windows систем. Итак, в нашей виртуальной сети используются как Windows-машины, так и Linux-машины? Можно ли удаленно управлять Windows из Ubuntu или Ubuntu из Windows? Несомненно, да. Подобно тому, как используется подключение к удаленному рабочему столу между платформами Microsoft. Вы можете щелкать мышью на рабочем столе и запускать приложения, точно так же, как если бы вы сидели прямо перед компьютером. Мы обсудим несколько различных возможностей, которые вы можете получить, используя подключение к удаленному рабочему столу. Рис. 8.1. Структура тестовой системы. Структура тестовой системы (рис. 8.1) будет включать в себя основной компьютер, на котором установлены 4 виртуальных машины с Windows 98, Windows XP, Ubuntu версий 6.10 - Edgy Eff и 10.04 - Lucid Lynx. Если на вашем компьютере недостаточно рабочей памяти, то не обязательно загружать для наших опытов все машины одновременно, часть из них может находиться а режиме сохранения состояния в Virtual PC Console. Теперь необходимо разрешить удаленное подключение для вашей учетной записи на машине с Windows. Для этого откройте "Панель управления -> Система -> Удаленные сеансы" и поставьте галочку "Разрешить удаленный доступ к этому компьютеру". В списке разрешенных учетных записей для подключения добавьте ваш логин. ^ 8.1. Выбор протокола удаленного рабочего стола Приложения удаленного рабочего стола обычно используют либо протокол RDP (англ. Remote Desktop Protocol — протокол удалённого рабочего стола), либо протокол VNC (англ. Virtual Network Computing — протокол виртуальной вычислительной сети). Для установки удаленного подключения оба узла, как сервер, так и клиент должны поддерживать один и тот же протокол. Проблема заключается в том, что не все операционные системы (ОС) используют одинаковые протоколы по умолчанию. Вдобавок к этому, некоторые дистрибутивы Linux и некоторые редакции Windows не содержат в себе ни серверного, ни клиентского приложения удаленного рабочего стола, либо не содержат приложение удаленного рабочего стола вообще. Вашей первой задачей должно стать определение протокола, который уже поддерживается на ваших компьютерах. Дополнительно к исследованию вашей ОС, поиску документации, ссылкам на шпаргалки, вы должны иметь возможность понимать, что есть что и где. Затем, уже в конце, вы должны выбрать протокол для использования на всех ваших компьютерах. Платформа Протокол Клиент Сервер Windows Home Edition RDP ...X... ..._... Windows XP Professional RDP ...X... ...X... Windows Vista Home Basic & Premium RDP ...X... ..._... Windows Vista Business & Ultimate RDP ...X... ...X... Большинство Linux систем VNC ...X... ...X... Обратим внимание, что на сегодняшний день удаленный рабочий стол VNC обычно медленнее, чем RDP соединения. Тем не менее, VNC обычно легче реализовать на различных платформах. То есть, вам надо точно знать, что существует два популярных метода получения доступа к рабочему столу другого пользователя. Первый, и пожалуй наиболее популярный это с помощью RDP, протокола прикладного уровня, разработанный компанией Microsoft. ^ 8.2. Протокол RDP Как уже было сказано, RDP - это протокол (http://www.rdesktop.org), разработанный корпорацией Microsoft, для обеспечения доступа, контроля и управления ресурсами другого компьютера под управлением систем Windows. Он имеет ряд особенностей, преимуществ и оказался весьма успешным. Особенности RDP: Поддержка 32-битного цвета 128-битовое шифрование Переадресовывание звука и видео (Web-камера, микрофон) Возможность обмена данными через буфер обмена Позволяет использовать локальные ресурсы удаленного ПК (принтеры, сканеры, камеры) Этот протокол обеспечивает полноценный менеджмент удаленного ПК и работает по стандартному принципу клиент-сервер. Сервер. Им является удаленный компьютер, с которым вы устанавливаете соединение. Это может быть либо стационарный компьютер в офисе, либо портативный компьютер, с которым вы соединяетесь удаленно, когда его владелец находится в поездке. Клиент. Это тот компьютер, с которого вы устанавливаете соединение с сервером. Например, переносной компьютер для работы во время путешествия, телефон, смартфон, нетбук и прочие «умные» устройства. ^ 8.2.1. Практическое применение RDP в Ubuntu Предположим, что вы администрируете несколько Web-серверов на Linux, а на работе вам приходится администрировать сеть компьютеров и серверов, на многих из которых установлена Windows. Чтобы успешно справляться с обеими задачами вам может хватить одного ноутбука с Ubuntu. Для этих задач вам достаточно использовать консольную утилиту rdesktop, которая по умолчанию содержится в стандартной поставке любой версии Ubuntu Linux. Как работает данная утилита? Тут всё предельно просто, если вам известно имя удаленного сервера к которому вы должны подключиться. Это может быть IP-адрес или доменное имя, типа host.myserver.com. Чтобы подсоединится к удалённому рабочему столу Windows, наберите в консоли: rdesktop [опции] Получить все доступные опции можно запустив эту утилиту без параметров. Наиболее часто используемыми являются: —u учетная запись для аутентификации. —d домен. —p пароль, чтобы другие не могли его подсмотреть лучше не использовать, в этом случае rdesktop запросит пароль при запуске. —k эмулируемая раскладка клавиатуры. —g разрешение экрана, можно указать в процентах от всего экрана. —f полноэкранный режим (можно переключиться с помощью комбинации клавиш Ctrl-Alt-Enter). —s начальная оболочка пользователя (вместо Explorer). —c начальный рабочий каталог пользователя. —0 глубина цвета: 8, 16 или 24 бит. Основной для Ubuntu 24-битный цвет Windows XP/2003 не поддерживает. —z активация сжатия передаваемых данных, актуально для медленных соединений. Используя опции и флаги для утилиты rdesktop, вы можете модифицировать эту простую команду: Если вам необходимо указать определенную раскладку клавиатуры, то команда будет иметь вид rdesktop -k en_us 192.168.1.44 Следует отметить, что это важно, так как входя в разные виртуальные машины под Windows, я наблюдал ситуацию, когда rdesktop при соединении, особенно в русифицированных версиях, устанавливала кириллицу и не возможно было ввести пароль латинскими буквами. Переключение раскладки клавиатуры в момент ввода пароля не работало. Указать размер открываемого окна в пикселях или в процентах можно командой rdesktop -g 60% -k en_us 192.168.1.44 При этом 100% – это не полный экран, а полное окно в котором вы работаете. Если нужен полный экран, то следует использовать следующий формат команды: rdesktop -f -k en_us 192.168.1.44 Указать логин и пароль для удаленного компьютера, что бы его не вводить при входе можно в команде. rdesktop -u admin -p password -g 100% -k en_us 192.168.1.44 Естественно, что данный метод набора не безопасен, но в случае локальной работы или в процессе выполнения наших работ, он более удобен и быстр, так как отсутствует необходимость постоянно вводить логины и пароли. Если в структуре нашей тестовой системы активировать vmUbuntu10 и vm_WinXP, при условии что на последней установлен доступ к ее рабочему столу, а после этого в терминале vmUbuntu10 ввести команду rdesktop -g 60% -u serp -p serp 192.168.1.44 на удаленный доступ к рабочему столу vm_WinXP, то вид экрана основного компьютера будет иметь вид, приведенный на рис. 8.2. Рис. 8.2. Окна виртуальных машин основного ПК при доступе с Ubuntu-машины на Windows-машину. При этом vm_WinXP - заблокируется, а в окне "rdesktop - 192.168.1.44" на vmUbuntu10, будут доступны любые действия с Windows XP. Естественно, в рамках тех прав, которыми наделен пользователь ее удаленного рабочего стола. Но, если ваша задача администрирования компьютера с Windows XP, то настраивая удаленное подключение к нему, вы себя, как пользователя ее рабочего стола, наделяете административными правами. ^ 8.2.2. Графические клиенты RDP в Ubuntu Утилита rdesktop является приложением командной строки. Это предполагает, что вы используете ее в консоли. Она имеет множество конструкций, что удобно для профессионального администратора. Более того, эту команду можно использовать в скриптовых файлах, автоматизирующих те или операции по управлению компьютером или сетью. Но жизнь меняется и менее профессиональным пользователям больше нравятся красивые окошки и возможность тыкать мышкой. Тем, кому из вас это более по душе, Ubuntu-содружество представляет возможность использовать графические утилиты, поддерживающие доступ по протоколу RDP. К разряду наиболее востребованных на сегодня таких графических клиентов RDP можно отнести Gnome-RDP или Remmina Все они поддерживают сессии, а так же несколько открытых рабочих столов, что очень удобно. Установить Gnome-RDP очень просто: sudo aptitude install gnome-rdp Gnome-RDP поддерживает такие протоколы как: RDP, VNC, SSH. С помощью Gnome-RDP вы сможете настроить для RDP разрешение экрана, количество цветов, раскладку клавиатуры, вывод звука. Установить Remmina не сложнее: sudo aptitude install remmina Структура Remmina более продвинута, программа имеет больше опций, поддерживает протоколы: SSH, RDP, VNC. SFTP и обладает кучей опций и настроек. Но знакомство с этими, или еще более продвинутыми программными продуктами, дело вашей совести и домашней практики. Наша задача получить начальные сведения, а для этого мы познакомимся с входящим в состав стандартной поставки Ubuntu клиентом терминального сервера. Выберите в основном меню Приложения -> Интернет -> Клиент терминального сервера. На экране появится окно, аналогичное приведенному на рис. 8.3. В этом окне надо установить тип протокол, указать имя или адрес компьютера, удаленным рабочим столом которого вы хотите воспользоваться. Логин и пароль устанавливаются по тем же соображениям, о которых говорилось при описании rdesktop. Рис. 8.3. Стартовое окно "Клиент терминального сервера". Но не торопитесь нажимать "Соединиться", так надо перейти на вкладку "Экран", где следует установить размер отображения удаленного экрана и указать используемую глубину цвета. Но и этого мало. Перейдите на вкладку локальные ресурсы (рис. 8.4). Рис. 8.4. Вклад "Локальные ресурсы" клиента терминального сервера. Здесь следует указать стартовую раскладку клавиатуры, в зависимости от того в каком режиме вам необходимо вводить логин и пароль пользователя. Если поставить птичку в поле "Добавить мой локальный диск к ...", то у вас появится возможность при работе на удаленном компьютере использовать ресурсы вашего локального компьютера. Если в клиенте терминального сервера vmUbuntu10, был указан адрес vmWinXP, то в vmUbuntu10 откроется окно, полностью повторяющее рабочий стол указанного пользователя в vmWinXP. И на этом рабочем столе можно открыть папки, как удаленного компьютера, так и локальные. Более того, вы можете стандартными методами переносить или копировать файлы между папками удаленного и локального компьютеров. Рис. 8.5. Удаленный рабочий стол Windows XP на Ubuntu-машине. На рис. 8.5 приведен удаленный рабочий стол виртуальной машины с Windows XP, который открыт в виртуальной Ubuntu-машине. Показано, что на этом столе стандартными методами Windows открыто два окна: одно - с содержимым папки на диске C:\ удаленной Windiws-машины, второе - с содержимым домашнего каталога локальной Ubuntu-машины. Вид папок соответствует состоянию, после того как файл primer из домашнего директория был скопирован в папку удаленной машины.^ 8.2.3. Настройка удаленного рабочего стола в Ubuntu Мы, люди знакомые с настройкой рабочего стола в Windows, полагаем, что и в Ubuntu должно быть где-то какое-то окно с настройкой доступа к нашему рабочему столу. И, действительно, погуляв по меню, находим последовательность Система -> Параметры -> Удаленный рабочий стол, которая нам открывает окно, аналогичное рис. 8.6, но только с пустыми полями. А после того, как мы установим верхнюю птичку, окно примет вид, как на рис. 8.6. Рис. 8.6. Окно определения параметров подключения к рабочему столу Ubuntu. Обратите внимание на анимированную иконку в начале третьей строки. Это операционная система определяет возможность работы этого компьютера в режиме удаленного рабочего стола. Если проверка пройдет штатно, то третья строка этого окна изменить свое содержание. В ней будет указан адрес, по которому можно обращаться извне к вашему рабочему столу (рис. 8.7). Рис. 8.7. Окно параметры рабочего стола после проверки. Приведенное на рис. 8.6 окно представляет собой интерфейс инструмента операционной системы, который позволяет обеспечивать нескольким пользователям доступ к сеансу работы в среде GNOME, а также настроить параметры такого доступа. Эти параметры непосредственно влияют на безопасность вашей системы: Элемент диалогового окна Описание Позволять другим пользователям видеть ваш рабочий стол — Выберите этот параметр, чтобы удалённые пользователи могли просматривать ваш сеанс. Все нажатия клавиш, щёлчки мышью и события буфера обмена, порождаемые удалённым пользователем, будут игнорироваться. Когда пользователь просматривает или управляет вашим рабочим столом, установите следующие параметры безопасности: Запрашивать подтверждение: — Выберите этот параметр, чтобы для совместного использования вашего сеанса требовалось ваше разрешение. Выбрав этот параметр, вы будете уведомлены при попытках других пользователей соединиться с вашим сеансом. Вы также сможете выбирать подходящее время для соединения с вашим сеансом. Требовать ввести пароль: — Выберите этот параметр, чтобы заставить удалённых пользователей вводить пароль, если используется идентификация. Этот параметр позволяет повысить безопасность. Пароль — Введите пароль, который должен вводиться клиентом, желающим просмотреть или управлять вашим сеансом. Введя все параметры и сохранив их, мы уверены, что настроили удаленный доступ к рабочему столу vmUbuntu10. Но если теперь на основном Windows-компьютере выполнить Пуск -> Все программы -> Стандартные -> Связь -> Подключение к удаленному рабочему столу, то нас ожидает глубокое фиаско с отказом в доступе. Но это связь Windows c Ubuntu, а что будет при связи Ubuntu c Ubuntu. Если мы из vmUbuntu10, используя клиент терминального сервера, попытаемся связаться с vmUbuntu6, где также настроен удаленный рабочий стол, то получим результат, как на рис. 8.8. Рис. 8.8. Результат подключения клиента терминального сервера. Вместе с тем, если мы из vmUbuntu10 попытаемся связаться vmUbuntu6, используя Приложение -> Интернет -> Просмотр удаленных рабочих столов, то получим положительный результат (рис. 8.9). Рис. 8.9. Подключения vmUbuntu10 к vmUbuntu6 с помощью клиента удаленных рабочих столов. Давайте разберемся, в чем причина этих явлений. Все дело в том, что сервера удаленных рабочих столов Ubuntu работают по протоколу VNC, а доступ к удаленным рабочим столам в Windows реализован на основе протокола RDP. О протоколе VNC речь пойдет ниже, а пока мы знакомимся с возможностями RDP. И тут возникает вопрос, а как обеспечить совместимость удаленных рабочих столов Windows-машин и Ubuntu-машин. ^ 8.2.4. Совместимость удаленных рабочих столов Windows и Ubuntu по протоколу RDP Удаленный рабочий стол в Ubuntu - это не более чем VNC. И, как отмечают многие пользователи, он является медленным и громоздким по сравнению с реальным Microsoft Windows Remote Desktop. Те из них, кто привык к скоростям Windows Remote Desktop, говорят, что VNC может просто свести с ума. Как же настроить удаленный рабочий стол Ubuntu, чтобы он использовал Windows Remote Desktop? Вариантов может быть несколько. Но этот материал не научное эссе и мы не будем заниматься сравнительным анализом возможных подходов. Рассмотрим всего один из вариантов технологии объединения удаленных рабочих столов Windows- и Ubuntu-машин. Для этой цели будем: Для подключения с Ubuntu-машины на Windows-машину использовать rdesktop или клиента терминального сервера c протоколом RDP. Для подключения из Windows-машины к Ubuntu-машине использовать стандартные средства Windows по подключению к удаленному рабочему столу, установив для этого на Ubuntu-машине сервер RDP. ^ 8.2.4.1. Установка RDP-сервера на Ubuntu-машину. Организовать RDP-сервер на Ubuntu-машине можно, например, с помощью пакета xrdp, который поддерживает протокол удаленного рабочего стола RDP для среды XWindows, то есть для класса Linux-машин. Именно его и следует установить на Ubuntu-машине. Рассмотрим разные варианты установок пакета xrdp на Ubuntu-машину.Вариант 1. Если ваша Ubuntu-машина имеет доступ в Интернет, то для установки xrdp надо: В основном меню выбрать Приложения -> Центр приложений Ubuntu. В открывшемся окне в поле поиска ввести xrdp и нажать "Ввод". Ubuntu выполнит поиск пакета в репозиториях и выдаст окно с сообщением о результатах поиска (рис. 8.10). Рис. 8.10. Результат поиска пакета xrdp в репозиториях. Для ознакомления с назначением пакета и условиями поставки нажать кнопку "Подробнее". Будет выдано окно (рис. 8.11) с кратким сведением о пакете, лицензии и его версии. Рис. 8.11. Краткие сведения о пакете, его версия и лицензия. Обратите особое внимание на версию. Так, из рис. 8.11 видно, что для Ubuntu 10.04, которая установлена на моем компьютере, в репозиториях зарегистрирована версия пакета 0.4.1~dfsg-2 (xrdp). Это нам пригодится, когда будем рассматривать случай установки пакета на Ubuntu-машине без доступа в интернет или произойдет сбой при удаленной установке. Для установки пакета нажать кнопку "Установить - Бесплатно" и ждать окончания режима установки (рис. 8.12). Рис. 8.12. Сообщение об окончании установки пакета xrdp.Вариант 2. Если ваша Ubuntu-машина имеет доступ в Интернет, то достаточно войти в терминал и набрать команду sudo aptitude install gnome-rdp Следует отметить, что такой подход доступен и в удаленном терминальном режиме, если мы воспользуемся протоколом SSH и утилитой PuTTY. Пример протокол такой установки приведен в Приложение 2 к данному разделу. Привлекательным в этом подходе является то, что мы можем последовательно подключаться к удаленным узлам, куда у нас есть SSH-доступ, и там устанавливать нужное ПО. То есть, не вставая со своего любимого дивана, можем конфигурировать удаленные компьютеры.Вариант 3. Если ваша Ubuntu-машина не имеет доступа в Интернет, то: Следует найти в локальной сети или скачать у друзей файл xrdp_0.4.1~dfsg-2_i386.deb. Вспомните, чуть выше, разговор о версии пакета. (В Интернете этот пакет можно найти на серверах: //launchpad.net, //opensource.telkomspeedy.com, //packages.ubuntu.com ). Поместить этот файл в вашу домашнюю директорию на Ubuntu-машине. Выделив этот файл, нажать правую кнопку мышки и в открывшемся меню выбрать "Установщик пакетов GDebi". Рис. 8.13. Запуск установщика пакета xrdp. Откроется окно "Установка пакета", об окончании которой система вас проинформирует (рис. 8.14). Более того, кликнув мышкой на треугольник рядом с опцией "Терминал", вы получили полный протокол установки вашего пакета. Обратите внимание, что он аналогичен тому, что был получен при использование консольной команды установки. То есть, все описанные выше окна - не что иное, как графический интерфейс к консольной команде. Рис. 8.14. Сообщение об окончании установки пакета xrdp. После установки xrdp запустится автоматически. Если в вашей системе этого не произошло, запустите его вручную при помощи init-скрипта: sudo /etc/init.d/xrdp start Собственно, на этом установка сервера закончена. ^ 8.2.4.2. Доступ к RDP-серверу Ubuntu-машины Итак, RDP-сервер на Ubuntu-машину установлен и можно возвращаться к работе с удаленными рабочими столами. Теперь попробуем подключиться к RDP-серверу разными RDP-клиентами, как из Windows, так и из Ubuntu. Для чистоты эксперимента попробуем сделать это при помощи штатного mstsc.exe из поставки Microsoft Windows XP SP3. Для этого на основном компьютере c Windows XP: Выбираем Пуск -> Программы -> Стандартные ->Связь -> Подключение к удаленному рабочему столу (рис. 8.14). Рис. 8.15. Подключение из основного компьютера к рабочему столу vmUbuntu10. Вводим имя или адрес нашей виртуальной vmUbuntu10 (192.168.1.10), не забывая при этом, что есть еще вкладка "Параметры", которые можно установить и настроить. Нажимаем кнопку "Подключить". В Windows-окне "Удаленный рабочий стол" основного компьютера появляется окно RDP-сервера vmUbuntu10 с запросом параметров доступа к ее удаленному рабочему столу. Введите имя пользователя, его пароль и нажимаем "ОК" (рис. 8.16). Рис. 8.16. Подключение из основного компьютера к рабочему столу vmUbuntu10. Если аутентификации прошла успешно в Windows-окне основного компьютера откроется удаленный рабочий стол Ubuntu-машины, аналогично приведенному на рис. 8.17. Рис. 8.17. Фрагмент экрана основного компьютера с удаленными рабочими столами vmUbuntu10. На рис. 8.17 приведен фрагмент экрана основного компьютера на котором видно три окна: Верхнее - это виртуальная Ubuntu-машина vmUbuntu10, на которой установлена Ubuntu 10.04. Среднее - это виртуальная Ubuntu-машина vmUbuntu6, на которой установлена Ubuntu 6.04. Нижнее - это открытый из Windows XP основного компьютера, удаленный рабочий стол к vmUbuntu10. Но если с первым и третьим должно быть все ясно. О них чуть выше и шел достаточно подробный разговор. А зачем здесь третье окно и что автор этим хочет сказать? Попробуем разобраться и сделать какие-либо выводы. Но для этого нам надо вернуться в раздел 8.2.3, где мы пытались организовать связь двух Ubuntu-машин, используя клиента терминального сервера. Потерпели фиаско, которое иллюстрировал рис. 8.8. То есть Ubuntu-машины не могли связаться по протоколу RDP. А что будет сейчас, когда мы на vmUbuntu10 установили RDP-сервер? Давайте войдем в vmUbuntu6, виртуальную машину на базе Ubuntu 6.04: В основном меню выберем Приложения -> Интернет -> Клиент Терминального Сервера. В открывшемся окне "Терминал-Сервер (клиент)", аналогичном рис. 8.3 и рис. 8.4, выберем для соединения протокол RDP, введем адрес нашей второй виртуальной машины vmUbuntu10 - 192.168.1.10 и нажмем кнопку "Соединиться". В этот раз, в отличие от рис. 8.8, окно vmUbuntu6 примет вид, аналогичный рис. 8.18. Рис. 8.18. Фрагмент экрана основного компьютера с удаленными рабочими столами vmUbuntu10. То есть, Ubuntu-машины готовы установить связь по протоколу RDP. Клиент RDP машины vmUbuntu6, послав запрос на vmUbuntu10, был услышан ее RDP-сервером, который переслал обратно запрос с требованием выполнить аутентификации. Если теперь введем имя и пароль пользователя, зарегистрированного на vmUbuntu10, то в окне виртуальной машины vmUbuntu6 нам будет доступен рабочий стол vmUbuntu10. Именно он и является вторым окном, приведенным на рис. 8.17. Мы подходим к моменту, когда уже можно формулировать какие-либо выводы. И первый из них, что мы можем объединить между собой работу удаленных рабочих столов по протоколу RDP, как Ubuntu-Windows систем, так и Ubuntu-Ubuntu систем. Второй вывод заключается в том, что удаленный компьютер Windows блокируется при удаленном входе на его рабочий стол. При удаленном входе на рабочий стол Ubuntu, можно работать как на основном, так и на удаленном рабочих столах, одновременно. У вас есть три окна (рис. 8.17) и в каждом из них вы можете запустить различные приложения, конечно если хватит мощности вашего основного компьютера. В одном окне - игру, в другом - терминал, в третьем - доступ в Интернет. И если ваш основной компьютер не достаточно мощный, то они будут работать с большой задержкой. Это будет вам действовать на нервы, и вы будете автору этих строк задавать вопрос: "И зачем мне все это нужно?" А вы не забыли, что вся наша виртуализация, хотя она и хороша сама по себе, но нужна нам была для того, чтобы смоделировать процессы, имеющие место в реальных компьютерных сетях. И все наши виртуальные машины - это реальные узлы вашей локальной или корпоративной сети. И здесь мы подходим к основным выводам, которых по философским, а не техническим меркам, может быть всего два, а именно, "один ко многим" и "многие к одному". Другими словами, использование протокола RDP позволяет вам в Ubuntu-Windows системах: Проводить удаленное конфигурирование, настройку и администрирование множества узлов сети. Организовать удаленный терминальный доступ множества пользователей на один мощный сервер сети, используя доступ к его рабочему столу. При этом множество Windows-пользователей могут получить возможность работать на своих компьютерах в среде Linux-систем, таких как Ubuntu. При условии, что именно она и установлена на этом сервере. ^ 8.3. Доступ к удаленным рабочим столам по протоколу VNC Выше мы рассмотрели работу компьютеров, использующих протокол RDP, являющийся основным в Windows-системах при организации доступа к удаленным рабочим столам. Для взаимодействия Ubuntu-Windows систем нам пришлось устанавливать и запускать в работу RDP-сервер на Ubuntu-машине. Попробуем остановить работу этого сервера. Для этого в консоли vmUbuntu10 выполним команду sudo /etc/init.d/xrdp stop И если состояние экрана основного компьютера было как на рис. 8.17, то мы увидим что окна, удаленных рабочих столов закроются, ввиду того, что потерялась связь основного компьютера и виртуальной машины vmUbuntu6 c виртуальной машиной vmUbuntu10. Если мы попробуем повторно инициировать доступ с основного Window-компьютера или виртуальной машины vmUbuntu6 к удаленному рабочему столу vmUbuntu10, то потерпим фиаско. Как настраивать доступ к рабочему столу Ubuntu 10.04, мы уже знаем из п.8.2.3. Попробуем сделать аналогичные действия на vmUbuntu6. Ничего особо нового (т.е. наоборот старого) мы на окне настройки не увидим (рис. 8.19), за исключением одной строки, которая важна для дальнейших наших рассуждений. Рис. 8.19. Настройка доступа к рабочему столу в vmUbuntu6. Ubuntu версии 6.04 предлагает нам для доступа к ее рабочему столу использовать команду vncviewer [имя или IP-адрес компьютера] : [номер дисплея] Ключевыми являются первые три буквы этой команды, которые позволяют нам сделать вывод, что Ubuntu 6.04 организует свой рабочий стол так, что удаленный доступ к нему поддерживается протоколам VNC. И если теперь, работая в терминалах как vmUbuntu10, так и vmUbuntu6, использовать при вводе команду vncviewer, то у нас появляется возможность получать доступ к удаленным столам противоположных Ubuntu-машин. Того же эффекта можно достичь если в основном меню выбирать "Приложения" -> "Интернет" -> "Просмотр удаленных рабочих столов" (в Ubuntu 10.04) или "Приложения" -> "Интернет" -> "Клиент терминального сервера" -> "Протокол: VNC" (в Ubuntu 6.04). То есть в Ubuntu-системах протокол VNC интегрирован в поставку операционной системы и является основным, по умолчанию, протоколом взаимодействия с удаленными рабочими столами Ubuntu-систем. ^ 8.3.1. Общие сведения о VNC VNC — это широко распространенный метод удаленного доступа к рабочему столу компьютера по сети. Данные о нажатии клавиш и движении мыши, выполняемых пользователем на собственном компьютере передаются по сети на удаленный компьютер и воспринимаются им как действия с его собственными клавиатурой и мышью. Информация с экрана удаленного компьютера выводится на экране компьютера пользователя. Работа по VNC через интернет с удаленным компьютером, находящимся в противоположной точке мира, для пользователя выглядит так, как будто этот компьютер находится непосредственно перед ним. Особенно VNC удобен при работе с графическим интерфейсом. Для начинающих, администрирование удаленных серверов по VNC намного проще, чем через командную строку по SSH или панель управления с веб-интерфейсом. На удаленном компьютере должна быть запущена программа-сервер (VNC server), которая играет роль клавиатуры, мыши и монитора, и обменивается данными с компьютером пользователя. Доступ к VNC-серверу может быть защищен паролем. На компьютере пользователя должна быть запущена программа-клиент (VNC client, VNC viewer), которая передает на удаленный компьютер информацию о нажатиях на клавиши и движениях мыши, получает от него изображение и выводит его на экран. Основной объем передаваемых по VNC данных приходится на графическую информацию, выводимую на экран. Для работы требуется канал, ширина пропускания которого от 32 Кбит/сек до 2 Мбит/сек. Для комфортной работы в полноцветном режиме при разрешении экрана 1024x768 скорость канала должна быть 1-2 Мбит/сек. При снижении качества графики, при уменьшении числа цветов и при некоторых дополнительных способах оптимизации, приемлемое удобство может обеспечить скорость канала 128 Кбит/сек. Канал занимается полностью только при обновлении больших участков экрана, при печати текста трафик заметно меньше, а в остальное время канал практически не используется. Если при передаче по каналу возникают большие задержки передачи пакетов (медленные каналы, спутниковая связь, большие расстояния), это вызывает ухудшение времени реакции на нажатие клавиш и движение мыши, что значительно снижает комфортность работы. VNC – система удалённого доступа к рабочему столу компьютера по протоколу RFB (Remote Frame Buffer). VNC является межплатформенным программным обеспечением. Реализации клиентов VNC существует даже на JAVA, что позволяет использовать клиент на телефоне или смартфоне. К одному VNC-серверу, может подключаться сразу несколько клиентов. VNC это бесплатное программное обеспечение, с открытым исходным кодом, что без сомнения является преимуществом. Для обеспечения безопасности, устанавливать VNC соединение возможно через SSL, VPN или SSH-туннель. В некоторых случаях, когда сервер не снабжен GUI-интерфейсом, есть возможность установки программы Xming и вызов графического приложения на сторону клиента через SSH-туннель (см. п.8.4). Более полная информация о протоколе VNC приведена в Приложение 3 к данному разделу. ^ 8.3.2. Настройка VNC-сервера в Ubuntu Существует большое количество модификаций VNC-серверов и VNC-клиентов. Что касается Ubuntu, то наиболее популярным являются как раз те, что присутствует в сборке Ubuntu Linux по умолчанию, это: VNC-сервер для Linux - Vino VNC-клиент для Linux - Vinagre. Если по какой-то причине у вас в системе не оказалось ни сервера, ни клиента, или они перестали работать, то установить их заново можно, выполнив в консоли команды: sudo aptitude install vinosudo aptitude install vinagre В состав пакета Vino входят множество файлов, но отмечу два исполняемых файла, которые вам когда-либо потребуются при настройке VNC-соединений. Это файл /usr/bin/vino-preferences — автозапуск сервиса при старте системы и строка вызова /usr/lib/vino/vino-server в службах и приложениях. Еще одним вариантом запуска VNC-сервера Vino, является возможность использовать для этого команду: sudo /usr/lib/vino/vino-server --sm-client-disable При наличии на стороне VNC-сервера GUI, а Vino по сути и не работает без графической подсистемы, настроить его параметры можно выбирая "Система" -> "Параметры" -> "Удалённый рабочий стол". И мы попадем в уже знакомое нам окно "Параметры удаленного рабочего стола" (рис. 8.6). То есть, устанавливая галочки или вводя пароль в этом окне, мы делаем не что иное, как настраиваем VNC-сервер Vino. Есть еще один способ просмотра и изменения параметров VNC-сервера Vino. Правда, этот способ не для ламмеров. Нажмите Alt+F2, в открывшемся окне введите gconf-editor. У вас откроется окно "Редактор конфигурации" (рис. 8.20). Рис. 8.20. Oкно "Редактор конфигурации". Следуя в левой части окна последовательно по опциям "desktop" -> "gnome" -> "remote_access", в правой части экрана у вас должно появиться окно с параметрами (ключами) настройки VNC-сервера Vino. В частности, если вам надо включить или отключить удаленный доступ к рабочему столу достаточно установить или снять галку напротив пункта: enabled. Аналогично и с другими ключами, описание которых отображается в нижней части окна. Если вам, по каким-то причинам не нравится Vino, вы можете использовать альтернативные серверы, такие как: tightvncserver, vnc4server, x11vnc. Установить их в Ubuntu также просто, как и любой другой софт. Надо только подключиться к Интернет и ввести команду: sudo aptitude install [имя VNC-сервера] Не обязательно устанавливать сразу все - можно установить любой из них на выбор. В частности, отличие tightvnc от других серверов в том, что он не расшаривает ваш рабочий стол, а создает совершенно новую сессию. Т.е. удаленный пользователь не увидит ваших открытых окон. В каких-то случаях это большой плюс и удобно для совместной работы. В каких-то, наоборот, не очень удобно, особенно когда необходимо кому-то помочь удаленно. ^ 8.3.3. Настройка и работа с VNC-клиентом в Ubuntu Теперь обратим все свое внимание на Vinagre, который является VNC-клиентом Ubuntu. Именно он осуществляет подключение к удаленному рабочему столу другого компьютера и обеспечивает работу с ним. Для вызова утилиты Vinagre из терминала Ubuntu используется команда: vinagre [Ключи] [Сервер][::Порт|:Дисплей] Назначение основных параметров и ключей данной утилиты: Параметры: Назначение Сервер - Это имя или IP-адрес хоста, к удаленному рабочему столу которого выполняется подключение. Порт - Номер VNC-порта, по умолчанию 5900. При значении ':0' будет ':5900', при ':1' - ':5901' и т.д. до 1024. Дисплей - Идентификатор дисплея (туннеля) на котором Vinagre должен быть запущен (от 0 до 1024). Ключи приложения: --fullscreen -f - Открыть vingare в полноэкранном режиме --new-window