- Современные технологии в Национальной Баскетбольной Ассоциации
- История Красного Бора Татарстан (Новый Пьяный Бор Елабужского уезда) в статьях
- Программа для поиска драйверов на любое устройство
- Как технология OCR снижает нагрузку на офис
- Как настроить локальную сеть через Wi-Fi
- Как операционная система Windows стала такой популярной
- Продвижение товаров на Wildberries с привлечением внешнего трафика
- Простая программа для управления проектами «Планамайзер»
VNC – технология наблюдения и удаленного управления компьютером |
В этой статье вы узнаете, как с помощью технологии удаленного подключения к рабочему столу VNC наблюдать за действиями учащихся, а также подключаться к машинам класса с целью выполнения любых действий в операционной системе.
1. Мониторинг рабочих мест – задачи и способы Контроль состояния машин учащихся – один из важнейших поддерживающих процессов в информационной системе учебного класса. Системный администратор должен в любой момент времени знать состояние всех компонентов сети – серверов, каналов связи, коммутационного оборудования, рабочих мест учащихся и преподавателей. Для этого, в частности, необходим автоматизированный мониторинг процессов, происходящих на машинах пользователей. К сведениям о состоянии рабочего места может относиться информация о:
В настоящей серии статей будут рассмотрены средства и способы получения таких сведений администратором класса, осуществляющим контроль работоспособности рабочих мест учащихся, на которых установлены операционные системы семейства Linux. С точки зрения дистанционного учебного процесса, одна из важнейших задач контроля состояния рабочих мест – наблюдение за рабочим столом, а в более общем случае – доступ к рабочему столу и возможность удаленного управления. Решать эту задачу призвана технология VNC. 2. Технология VNC – принципы работы Общий принцип удаленного доступа к рабочему столу на другой машине можно описать так. Команды, поступающие от вашей клавиатуры и мыши, передаются на удаленный компьютер по сети, оттуда вы постоянно получаете снимки экрана. Таким образом, при достаточной скорости сетевого соединения пользователь фактически работает за удаленным компьютером. Система удаленного доступа к рабочему столу Virtual Network Computing (VNC) была разработана компанией AT&T и основана на использовании протокола RFB (Remote FrameBuffer). Она поддерживает работу с графическим интерфейсом операционных систем семейства Unix (X11), а также Windows и Mac OS X. Характерной особенностью VNC является возможность организации нескольких «точек подключения» на одном сервере. Такими точками являются X-экраны VNC-сервера, которых может быть от одного до семи. Выбор экрана пользователь клиентской части программы осуществляет при подключении. Разделение работы нескольких клиентов с разными экранами происходит по TCP-портам (по умолчанию используются порты с 5900 до 5906). Если вернуться к технологическому обеспечению учебного процесса, то круг задач, которые можно решать, используя VNC, значительно шире, чем просто мониторинг состояния рабочих мест учащихся. Вот только некоторые из них:
К задачам контроля состояния рабочих мест пользователей в виртуальном учебном классе относятся только первые две позиции из приведенного списка. Понятно, что администратор подключается непосредственно к рабочему столу учащегося и видит то же, что и пользователь, сидящий за компьютером. В то же время желательно, чтобы при подключении администратора с целью выполнения контролирующих действий это происходило незаметно для пользователя. Прежде чем перейти к решению поставленных задач, найдем среди установленных программ (или установим на компьютер самостоятельно) средства, реализующие VNC. Средства VNC входят во многие дистрибутивы unix-систем. Если в вашем случае это не так, можно воспользоваться бесплатной реализацией технологии VNC – программой TightVNC. В случае, если VNC-сервер имелся в дистрибутиве операционной системы и был развернут при ее установке, он зарегистрирован как служба и может быть запущен через консоль управления. Клиентская часть (vncviewer) находится, скорее всего, в каталоге /usr/bin/. Так что прежде чем приступать к описанным в следующем разделе действиям, проверьте список сервисов операционной системы. 3. Установка и настройка TightVNC На сайте разработчика tightvnc.org доступна последняя версия программы (на сегодняшний день это 1.3.10) в исходных текстах. Можно также попробовать найти готовый бинарный пакет для вашей операционной системы. Разработчики предлагают инсталлировать программу в папку /usr/local/bin. После запуска скрипта установки из директории установочного пакета
в указанном каталоге появятся файлы программы:
Сразу после установки программа готова к эксплуатации (используются настройки по умолчанию). Основной файл, отвечающий за параметры создания экземпляра vnc-сервера, – tightvncserver.conf – расположен в директории /etc. В случае, когда vnc-сервер уже установлен в операционной системе, те же параметры могут задаваться в файле /etc/sysconfig/vncservers. Обязательно необходимо установить пароль на доступ к серверу. Это делается командой vncpasswd. Заданный и подтвержденный пароль будет в закрытом виде храниться в файле $HOME/.vnc/passwd. 4. Запуск vnc-сервера и подключение к нему Для запуска Xvnc-сервера используется специальный скрипт-обертка vncserver. Общий синтаксис вызова этого сценария следующий: vncserver [:display] [-geometry width x height] [-depth depth] [-pixelformat rgbNNN|bgrNNN] [-name desktop-name] [Xvnc-options...] Указывая при вызове скрипта параметры, можно задать для каждого создаваемого сеанса номер дисплея, ширину и высоту в пикселах рабочего стола, глубину цвета в битах на пиксел (от 8 до 32), формат кодирования цвета (rgb или bgr), имя рабочего стола, а также любые параметры запуска самого Xvnc-сервера. Выполнив на рабочем месте учащегося скрипт vncserver без параметров, получим следующее:
Как видно, на нашем узле test запущен экземпляр сервера со стандартными параметрами, к которому можно обращаться через первый дисплей (при следующем запуске vncserver без параметров номер созданного дисплея будет увеличен на единицу). Если пароль vnc до этого момента не задан, он будет запрошен здесь же. Параметры, с которыми создан экземпляр сервера, указаны в файле /root/.vnc/xstartup, к которому мы еще вернемся. Теперь с рабочего места администратора запускаем команду vncviewer. Это приводит к появлению окна с полем для ввода точки подключения. Туда вводится ip-адрес рабочего места учащегося (или имя хоста) и номер дисплея через двоеточие. Если до этого все шаги выполнены верно, следующим появляется запрос на ввод пароля. Это тот самый пароль, который вводился при настройке (см. предыдущий раздел). Наконец, если пароль введен правильно, подключение состоялось. Перед администратором появляется окно просмотрщика с терминалом. Для того чтобы видеть не только терминал, но и полноценный рабочий стол операционной системы, необходимо подключить оконную оболочку. Для этого обратите внимание на первые строки файла сценария xstartup, который находится в каталоге /root/.vnc/:
Как видим, нам рекомендуется раскомментировать две строки, чтобы пользоваться обычным рабочим столом. После того как это сделано, следующий экземпляр vnc-сервера запустится в режиме полноценного рабочего стола, а файл xstartup приобретет следующий вид:
Итак, чтобы подключаться к рабочим местам учащихся, на каждой машине должен быть запущен vnc-сервер. Администратору должны быть известны номер дисплея и пароль для доступа к vnc. Для запуска vnc-серверов администратор может воспользоваться подключением по ssh (использование этого механизма для мониторинга будет рассмотрено в следующей статье). Однако если число машин учащихся превышает, например, 10, такой способ запуска становится крайне неудобным. Поэтому хотелось бы, чтобы vnc-сервер запускался автоматически при загрузке системы. Если средства vnc устанавливались самостоятельно, необходимо обеспечить выполнение при загрузке операционной системы запуск сценария vnvncserver. В более распространенном случае наличия vnc в списке служб операционной системы достаточно установить флаг запуска при старте ОС через соответствующее приложение администрирования ОС (например, Service Configuration). Запуск службы vnc-сервера будет осуществляться в соответствии с параметрами, указанными в конфигурационном файле etc/vncservers. В случае использования двух постоянных рабочих столов – одного для пользователя admin, а другого для пользователя teacher – содержимое этого файла может выглядеть, например, так:
Основной в этом файле является переменная VNCSERVERS, содержащая разделенные пробелом пары "номер дисплея:имя пользователя ОС". 5. Наблюдение за сеансом пользователя Если учащийся тоже работает с использованием технологии VNC и подключается к одному из дисплеев общего сервера, для наблюдения за его действиями администратор должен подключиться к тому же дисплею. Все не так просто, когда учащийся работает локально на собственной машине. Если вы хотите видеть, что на самом деле происходит на мониторе пользователя, необходимо подключиться непосредственно к его текущей сессии X11. К счастью, X11 «знает» о существовании технологии vnc и даст вам возможность подключиться к сеансу через vncviewer. Достаточно лишь внести несколько изменений в конфигурационный файл X11. Итак, в файле /etc/X11/xorg.conf добавим в секцию Screen три следующие опции:
В качестве файла паролей указывается файл, содержащий пароль vnc, заданный при настройке. Секция Screen в результате приобретет примерно следующий вид:
Теперь подключим загрузку соответствующего модуля – добавим в секцию Module того же конфигурационного файла строку Load “vnc”:
После перезапуска оконной оболочки (или перезагрузки операционной системы) текущий сеанс пользователя доступен через нулевой дисплей vnc. 6. Защита канала В случае, когда связь между клиентом и сервером vnc осуществляется по открытому каналу (например, через каналы Интернета), возникает задача защиты передаваемых данных. В текущей версии программы TightVNC шифрованию подлежат только передаваемые по сети пароли, при этом используется алгоритм DES, основанный на 56-разрядном ключе. Как утверждают разработчики, в их планы входит встраивание в программу механизмов шифрования трафика. Пока же пользователям рекомендуют использовать OpenSSH. Мы вкратце рассмотрим другой вариант защиты канала между клиентом и сервером VNC. Для организации шифрованного ssl-соединения между двумя узлами широко применяется открытая программа stunnel. Программа stunnel работает по принципу «третий в канале». Трафик, отправляемый клиентским узлом, перехватывается клиентской частью программы stunnel, шифруется и пересылается на сервер. Там принимаемые зашифрованные данные попадают к серверной части программы stunnel, расшифровываются и отдаются основному приложению. Для организации удаленного подключения к машинам учащихся по защищенному каналу необходимо выполнить следующие действия:
В конфигурационном файле программы stunnel, как на клиентской, так и на серверной стороне, в параметрах accept и connect указываются точки приема и передачи трафика. Например, если адрес машины учащегося 192.168.10.10, клиентская часть программы stunnel «слушает» порт 1881, а серверная – 1881, то в конфигурационных файлах будет указано следующее:
Теперь клиент vncviewer должен подключаться не напрямую к vnc-серверу, как раньше, а к клиентской части программы stunnel, которая установлена на машине администратора и слушает назначенный порт – например, 1881. Тогда в качестве строки подключения vncviewer нужно указать «localhost:1::1881». Обратите внимание, что номер порта указывается через два двоеточия. Отметим, что при наличии проблем с производительностью машин и пропускной способностью используемых каналов введение дополнительных операций шифрования на обеих сторонах взаимодействия может критически сказаться на скорости работы просмотрщика. Несколько способов решить эту проблему, не отказываясь от шифрования, приведены, наряду с другими, в следующем разделе. Проблема 1. Недостаточная скорость работы через удаленное подключение: картинка обновляется медленно, движения курсора мыши запаздывают. Что делать? Во-первых, можно уменьшить объем передаваемых по сети графических данных: изменить параметры сервера geometry и depth в сторону уменьшения. Во-вторых, приведите в соответствие параметры запуска просмотрщика и vnc-сервера, к которому подключаетесь. Несовпадение параметров pixelformat и depth у сервера и клиента приводит к необходимости преобразования картинки, что замедляет скорость работы. Проблема 2. Случайные движения курсора мыши на стороне администратора беспокоят пользователей, к чьим сессиям X11 осуществляется подключение, или даже «спугивают» тех учащихся, кто пытается выполнять запрещенные действия. Что делать? Запускайте vncviewer с параметром -viewonly, в таком режиме данные о движениях мыши и нажатиях клавиш клавиатуры не передаются серверу. Проблема 3. Администратору неудобно наблюдать за несколькими рабочими местами пользователей одновременно. Что делать? Запускайте просмотрщик с уменьшенными параметрами геометрии, это позволит разместить на мониторе несколько удаленных рабочих столов. Проблема 4. Необходимо изменить порт, по которому осуществляется доступ к vnc-серверу. Что делать? При запуске vnc-cервера используйте опцию Xvnc -port, указывайте любой не занятый в информационной системе порт. Проблема 5. Необходимо разрывать соединение с vnc-сервером по истечении определенного времени бездействия клиентского приложения. Что делать? При запуске vnc-cервера используйте опцию Xvnc –IdleTimeout, указывайте требуемый интервал бездействия в секундах. В этой статье мы узнали, как с помощью технологии удаленного подключения к рабочему столу VNC наблюдать за действиями учащихся, а также подключаться к машинам класса с целью выполнения любых действий в операционной системе. В следующей статье речь пойдет о технологии ssh, а также о том, какие средства Linux администратор может использовать для получения полной картины состояния операционной системы и прикладных программ на машине пользователя. Оставьте свой комментарий! Tags:
Похожие статьи: |
Комментарии