RSS    

Видеокурсы

Видеокурсы по ВТ

Опасности в социальных сетях

Социальные сети

Программы для бесплатного просмотра online tv...  

Компьютер заражен? Есть несколько вариантов вылечить ПК...

Стандарт LTE - Long-Term Evolution - или стандарт связи четвертого поколения (4G) считается перспективным... 



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. После запуска скрипта установки из директории установочного пакета

#./vncinstall /usr/local/bin

 

в указанном каталоге появятся файлы программы:

  • vncviewer – клиент программы, позволяющий подключиться к удаленному рабочему столу в оконном режиме X11;
  • vncserver – скрипт-обертка для запуска X-сервера VNC; для выполнения этого сценария на компьютере должен быть установлен Perl;
  • vncpasswd – программа, позволяющая изменять пароли доступа к экранам VNC-сервера. Программа сама запустится при первом старте сервера;
  • vncconnect – программа для организации обратного режима работы, когда VNC-сервер подключается к VNC viewer;
  • Xvnc – собственно X VNC сервер (одновременно являющийся X-сервером и VNC-сервером).

Сразу после установки программа готова к эксплуатации (используются настройки по умолчанию). Основной файл, отвечающий за параметры создания экземпляра 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 без параметров, получим следующее:

# vncserver

New 'X' desktop is test:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/test:1.log

 

Как видно, на нашем узле test запущен экземпляр сервера со стандартными параметрами, к которому можно обращаться через первый дисплей (при следующем запуске vncserver без параметров номер созданного дисплея будет увеличен на единицу). Если пароль vnc до этого момента не задан, он будет запрошен здесь же. Параметры, с которыми создан экземпляр сервера, указаны в файле /root/.vnc/xstartup, к которому мы еще вернемся.

Теперь с рабочего места администратора запускаем команду vncviewer. Это приводит к появлению окна с полем для ввода точки подключения. Туда вводится ip-адрес рабочего места учащегося (или имя хоста) и номер дисплея через двоеточие. Если до этого все шаги выполнены верно, следующим появляется запрос на ввод пароля. Это тот самый пароль, который вводился при настройке (см. предыдущий раздел). Наконец, если пароль введен правильно, подключение состоялось. Перед администратором появляется окно просмотрщика с терминалом.

Для того чтобы видеть не только терминал, но и полноценный рабочий стол операционной системы, необходимо подключить оконную оболочку. Для этого обратите внимание на первые строки файла сценария xstartup, который находится в каталоге /root/.vnc/:

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

 

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

#!/bin/sh

# Uncomment the following two lines for normal desktop:
 unset SESSION_MANAGER
 exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

 

Итак, чтобы подключаться к рабочим местам учащихся, на каждой машине должен быть запущен vnc-сервер. Администратору должны быть известны номер дисплея и пароль для доступа к vnc. Для запуска vnc-серверов администратор может воспользоваться подключением по ssh (использование этого механизма для мониторинга будет рассмотрено в следующей статье). Однако если число машин учащихся превышает, например, 10, такой способ запуска становится крайне неудобным. Поэтому хотелось бы, чтобы vnc-сервер запускался автоматически при загрузке системы.

Если средства vnc устанавливались самостоятельно, необходимо обеспечить выполнение при загрузке операционной системы запуск сценария vnvncserver.

В более распространенном случае наличия vnc в списке служб операционной системы достаточно установить флаг запуска при старте ОС через соответствующее приложение администрирования ОС (например, Service Configuration). Запуск службы vnc-сервера будет осуществляться в соответствии с параметрами, указанными в конфигурационном файле etc/vncservers.

В случае использования двух постоянных рабочих столов – одного для пользователя admin, а другого для пользователя teacher – содержимое этого файла может выглядеть, например, так:

# The VNCSERVERS variable is a list of display:user pairs.
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# <URL:">http://www.uk.research.att.com/vnc/sshvnc.html>;.
VNCSERVERS="1:admin 2:teacher"
# VNC options
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"

 

Основной в этом файле является переменная VNCSERVERS, содержащая разделенные пробелом пары "номер дисплея:имя пользователя ОС".

 

5. Наблюдение за сеансом пользователя

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

Все не так просто, когда учащийся работает локально на собственной машине. Если вы хотите видеть, что на самом деле происходит на мониторе пользователя, необходимо подключиться непосредственно к его текущей сессии X11. К счастью, X11 «знает» о существовании технологии vnc и даст вам возможность подключиться к сеансу через vncviewer. Достаточно лишь внести несколько изменений в конфигурационный файл X11.

Итак, в файле /etc/X11/xorg.conf добавим в секцию Screen три следующие опции:

Option "Security Types" "VncAuth"
Option "UserPasswordVerifier" "VncAuth"
Option "PasswordFile" "/root/.vnc/passwd"

 

В качестве файла паролей указывается файл, содержащий пароль vnc, заданный при настройке.

Секция Screen в результате приобретет примерно следующий вид:

Section "Screen"
	Identifier "Screen0"
	Device     "Videocard0"
	Monitor    "Monitor0"
	DefaultDepth     24

	Option "Security Types" "VncAuth"
	Option "UserPasswordVerifier" "VncAuth"
	Option "PasswordFile" "/root/.vnc/passwd"
	
	SubSection "Display"
		Viewport   0 0
		Depth     16
		Modes    "800x600" "640x480"
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
		Modes    "800x600" "640x480"
	EndSubSection
EndSection

 

Теперь подключим загрузку соответствующего модуля – добавим в секцию Module того же конфигурационного файла строку Load “vnc”:

Section "Module"
	Load  "dbe"
	Load  "extmod"
	Load  "fbdevhw"
	Load  "glx"
	Load  "record"
	Load  "freetype"
	Load  "type1"
	Load  "dri"
	Load "vnc"
EndSection

 

После перезапуска оконной оболочки (или перезагрузки операционной системы) текущий сеанс пользователя доступен через нулевой дисплей vnc.

 

6. Защита канала

В случае, когда связь между клиентом и сервером vnc осуществляется по открытому каналу (например, через каналы Интернета), возникает задача защиты передаваемых данных.

В текущей версии программы TightVNC шифрованию подлежат только передаваемые по сети пароли, при этом используется алгоритм DES, основанный на 56-разрядном ключе. Как утверждают разработчики, в их планы входит встраивание в программу механизмов шифрования трафика. Пока же пользователям рекомендуют использовать OpenSSH.

Мы вкратце рассмотрим другой вариант защиты канала между клиентом и сервером VNC. Для организации шифрованного ssl-соединения между двумя узлами широко применяется открытая программа stunnel.

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

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

  • настроить службу vncserver на всех подлежащих мониторингу рабочих местах;
  • установить клиента vnc на рабочем месте администратора;
  • установить и настроить на машинах класса программу stunnel в режиме сервера;
  • установить и настроить на рабочем месте администратора программу stunnel в режиме клиента.

В конфигурационном файле программы stunnel, как на клиентской, так и на серверной стороне, в параметрах accept и connect указываются точки приема и передачи трафика. Например, если адрес машины учащегося 192.168.10.10, клиентская часть программы stunnel «слушает» порт 1881, а серверная – 1881, то в конфигурационных файлах будет указано следующее:

accept=localhost:1881
connect=192.168.10.10:1880 – на клиенте (рабочем месте администратора) 

accept=localhost:1880
connect=localhost:5901 – на сервере (рабочем месте учащегося).

 

Теперь клиент vncviewer должен подключаться не напрямую к vnc-серверу, как раньше, а к клиентской части программы stunnel, которая установлена на машине администратора и слушает назначенный порт – например, 1881. Тогда в качестве строки подключения vncviewer нужно указать «localhost:1::1881». Обратите внимание, что номер порта указывается через два двоеточия.

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

 

7. Несколько полезных приемов

Проблема 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 администратор может использовать для получения полной картины состояния операционной системы и прикладных программ на машине пользователя.

Оставьте свой отзыв:

Комментарии   

 
Maxi
0 # Maxi 12.04.2013 11:36
Сейчас модно использовать VNC из веб-браузера, вроде этого **.onlinevnc*. VNC вьювер не нужен.
Ответить | Сообщить модератору
 

Добавить комментарий


Защитный код
Обновить

 

Самое читаемое:

Быстрый поиск

Группа вКонтакте: новости

 

Новости в Twitter и Facebook

  подписка на новости в twitter              Подписка на новости facebook

Инструкции к программам

Инструкции к программам

Новые информационные технологии и программы