Учебно-методические материалы для студентов кафедры АСОИУ

Дистанционное управление компьютером. Терминалы и протоколы удаленного управления.

Режим дистанционного управления позволяет клиентам управлять работой удаленного сервера или рабочей станции по сети. Этот режим обычно используется сисадминами для администрирования выделенных серверов и технической поддержки пользователей.

Удаленный компьютер (удаленный хост) — сервер, физически размещенный на некотором расстоянии от клиента и доступ к которому (для клиентов) возможен только по сети. Для подключения к удаленному хосту используются специализированные протоколы удаленного управления. Эти протоколы, реализующие модель «терминал-сервер», позволяют работать с ресурсами сервера так же, как и с локальными ресурсами: выполнять команды, работать с файловой системой, запускать приложения и т.п. С распространением персональных ЭВМ терминальный доступ стал использоваться в основном для решения задач удаленного администрирования.

Терминалы

С середины 1970-х до середины 1980-х годов вся работа за компьютером выполнялась через специальные устройства ввода-вывода — терминалы. С помощью терминалов пользователи подключались к серверу (мэйнфрейму) и использовали его системные ресурсы для решения прикладных задач.

Изначально, терминал — это оконечное сетевое устройство, подключенное к вычислительной системе и предназначенное для ввода и вывода данных. Команды, принимаемые с устройства ввода терминала (клавиатуры), передаются на удаленный сервер, где и выполняются. Результаты обработки возвращаются и отображаются на устройстве вывода терминала (дисплее). Впоследствии были разработаны эмуляторы терминалов — специальные программы, выполняющие те же задачи.

Таким образом, можно выделить два основных типа терминалов:

  1. Реальный, или физический терминал — как правило подразумевает устройство, вычислительные способности которого ограничены возможностью отображать то, что ему передано из сети (как максимум — полноэкранную графику).
  2. Виртуальный терминал — сетевое приложение (программа), выполняющее функции физического терминала. Со стороны удаленного хоста такая программа, ничем не отличается от реального терминала.

Однако терминалы различаются не только по представлению, но и по возможностям. В зависимости от них различают:

Текстовые терминалы

Текстовый терминал, также известный как "последовательный терминал", "ASCII-терминал", "символьный терминал" и "видеодисплейный терминал" (VDT, video display terminal) — это устройство (или программа) ввода/вывода, работающее в дуплексном режиме и использующее символьно-ориентированные (байт-ориентированные) протоколы передачи данных, такие как telnet. Потоки данных между терминалом и сервером представляют ASCII-символы. Специальные символы (или последовательности символов) представляют команды управления сервером и ответы сервера. Существуют и служебные команды, управляющие выводом (перевод строки, полужирный/наклонный текст, звуковой сигнал и т.п.) и сеансом связи (согласование версий протокола и др.).

Текстовые терминалы отличаются минимальными требованиями к полосе пропускания сети. Это позволяет дистанционно управлять удаленными серверами (например, в сети Интернет), используя медленные коммутируемые соединения (модемную связь через порт RS-232C).

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

«Тупые» (dumb) терминалы

Есть множество различных опреде­лений "dumb-терминалов", которые, суть, характеризуют максимальные возможностей терминала. Чаще всего под dumb-терминалами подразуме­вают текстовые терминалы, которые способны отображать на экране только алфавитно-цифровые символы.

Графические возможности текстовых терминалов ограничены специальными символами ASCII, которые могут быть использованы для рисования рамок таблиц, стрелок, горизонтальных и вертикальных линий, заливок разной плотности и т.д. Использование VGA палитры позволяет задавать цвет фона и текста. Но все это сводится к псевдографике, т.к. текстовые терминалы не управляют выводом на уровне отдельных пикселей (Рис. 1).

Графические терминалы

Графические терминалы, в отличие от текстовых, представляют возможности работы с полноцветной растровой и векторной графикой при вводе и отображении данных. Такие терминалы применяются в системах, поддерживающих графический пользовательский интерфейс (GUI, Graphic User Interface). Это позволяет получать данные от пользователя не только с клавиатуры, но и от точечных устройств ввода ("мышь", тачпад, сенсорный экран и т.п.)

Для графических терминалов применяются два типа дисплеев:

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

Текстовый режим работы также поддерживается графическими терминалами, но реализован иначе — внутри основного протокола.

«Интеллектуальные» терминалы

Под термином «интеллектуальный терминал» обычно подразумевают аппаратно-программный комплекс, ресурсов которого достаточно не только для вывода полноэкранной графики, но и для выполнения некоторых вычислений. Принципиальным отличием интеллектуального терминала от обычного ПК является то, что исполнимые программы должны загружаться с сервера, а выполняться на клиенте (самом терминале). В приведенной трактовке типичным примером интеллектуального терминала является бездисковая рабочая станция — компьютер, у которого отстутствует жесткий диск (а зачастую и сменные накопители). Загрузка операционной системы и приложений для такого компьютера выполняется по сети.

«Тонкие клиенты»

«Тонкий клиент» (thin client) — разно­видность интеллектуального тер­минала. Правильнее - его програм­мное обеспечение, которое позволяет загружать и выполнять сетевые приложения (клиентские скрипты, Java-апплеты, ActiveX-приложения и т.п.) в некотором программном окружении (например, в браузере или виртуальной машине).

Протоколы удаленного управления

telnet

Служба удаленного управления telnet (Teletype Network) ) — одна из самых старых сетевых технологий Internet (первая спецификация — RFC 158 от 19.05.1971 г.). Текущая спецификация telnet — RFC 854/STD 8Telnet Protocol Specification. По умолчанию сервер telnet принимает входящие подключения на 23-ий порт TCP (см. Сетевые сервисы).

Протокол telnet изначально разрабатывался для использования в гетерогенных сетях. В его основе — концепция сетевого виртуального терминала (Network Virtual Terminal, NVT) — механизма абстрагирования от специфики ввода/вывода различных аппаратных и программных платформ. Так, например, в UNIX в качестве символа перехода на другую строку используется LF (код 13), в то время как в MS-DOS и Windows — пара символов CR-LF (коды 10 и 13). Сетевой виртуальный терминал NVT предлагает использование унифицированного набора символов, который используется для преобразования кодов клиента и сервера.

Хотя в сессии telnet выделяют клиентскую и серверную сторону, протокол является симметричным и обе стороны взаимодействуют через NVT, обмениваясь данными двух типов:

Прикладные данные проходят через протокол без изменений т.е. на выходе второго виртуального терминала мы видим именно то, что было введено на вход первого. С точки зрения протокола эти данные - просто последовательность байтов (октетов), по умолчанию принадлежащих набору ASCII. Если же установлена опция Binary — то последовательность любых данных в двоичном представлении.

Все значения октетов прикладных данных кроме \377 (десятичное 255) передаются по транспорту как есть. Октет \377 передаётся последовательностью \377\377 из двух октетов. Это связано с тем, что октет \377 используется для кодирования опций протокола.

Telnet поддерживает четыре режима передачи:

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

Иногда клиенты telnet используются для доступа к другим символьно-ориентрованным протоколам на основе транспорта TCP (HTTP, IRC, SMTP, POP3 и прочим). Однако, использование клиента telnet в этом качестве может привести к ошибкам, связанным с неправильной трактовкой сервером опций протокола (листнг 3).

Листинг 1. Использование telnet в качестве веб-браузера

aag@stilo.asoiu:~> telnet 4stud.asoiu 80
Trying 194.188.210.1...
Connected to 4stud.asoiu.
Escape character is '^]'.
HTTP/1.1 400 Bad Request
Date: Wed, 03 Oct 2012 06:01:43 GMT
Server: Apache/2.2.17 (Linux/SUSE)
Content-Length: 307
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.17 (Linux/SUSE) Server at 4stud.asoiu Port 80</address>
</body></html>
Connection closed by foreign host.

rlogin

Протокол rlogin (англ. remote login — удаленный вход в систему, RFC 1282, порт сервера - 513) позволяет пользователям рабочих станций UNIX подключаться к удаленным серверам UNIX через сеть Internet и работать так же, как при прямом подключении терминала к машине. Помимо rlogin существуют еще несколько подобных протоколов: rsh (remote shell), rcp (remote copy). Утилиты rlogin, rsh и rcp часто объединяют под общим названием r-команд.

Впервые появившаяся в составе 4.2BSD UNIX, программа rlogin (и остальные r-команды) одно время была исключительно популярной в этой среде. В качестве средства терминального доступа rlogin очень похожа на telnet, но из-за тесной интеграции с ОС нашла ограниченное применение в других системах.

В rlogin отсутствуют многие опции, свойственные telnet, в частности режим согласования параметров между клиентом и сервером. Однако rlogin предусматривает хотя бы минимальные средства защиты на основе доверительных отношений между хостами: на сервере rlogin в специальных системных файлах (обычно /etc/hosts.equiv и $HOME/.rhosts) администратор может перечислить компьютеры, доступ с которых к данному серверу будет разрешен без пароля. Пользователи других компьютеров (не перечисленных в этих файлах) могут войти на сервер лишь после ввода пароля (который как и в telnet передается в открытом виде). Но, доверительные отношения между хостами тоже не панацея, и могут устанавливаться лишь в изолированных сетях. Дело в том, что такие техники несанкционированного доступа, как подмена IP-адресов (IP-spoofing) и доменных имен (DNS-spoofing), делают r-сервисы в Интернет незащищенными. Поэтому современные дистрибутивы UNIX-подобных ОС включают не фактические r-команды, а замещающие ссылки на их SSH-аналоги: scp, sftp и др.(см. man rlogin в Ubuntu, выводящий руководство по OpenSSH).

SSH (Secure Shell)

SSH (англ. Secure SHell - безопасная оболочка) — безопасный протокол дистанционного управления компьютером. Основная спецификация - RFC 4251. The Secure Shell (SSH) Protocol Architecture, входящий порт - 22. По сравнению с протоколами telnet и rlogin, ssh отличается, в первую очередь, высокой защищенностью за счет поддержки криптостойких алгоритмов шифрования и рядом дополнительных возможностей.

SSH позволяет не только использовать защищенную оболочку на удаленном хосте, но и туннелировать графический интерфейс (X11 forwarding), превращая клиентов, использующих X-Window System, в графические терминалы. SSH также способен (при надлежащем конфигурированиии) передавать через безопасный канал любой другой сетевой протокол - port forwarding. Криптографическая защита протокола SSH не фиксирована, возможен выбор различных алгоритмов шифрования.

Согласно Указу Президента Российской Федерации № 334 от 03.04.95 физическим лицам и организациям, включая государственные, частные и акционерные, запрещена эксплуатация систем криптографии, не прошедших сертификации в ФАПСИ. А SSH (а иже с ним PGP) является именно такой системой.

Не стоит думать, что нам пытаются запретить защищать конфиденциальную информацию: организации не только могут, но и обязаны защищать важную информацию. Только для этого они должны применять сертифицированные средства. Применяя свободное, но несертифицированное ПО на основе ssh, SSL, PGP и т.п. следует помнить, что его использование чревато разбирательством со стороны спецслужб.

Сервис SSH использует по умолчанию порт 22 и объединяет протоколы трех уровней:

Поддержка SSH реализована во всех UNIX системах и на большинстве из них в типовую поставку включено как клиентское, так и серверное ПО (см. man ssh). Для не-UNIX систем имеются как платное, так и бесплатное клиентское ПО (SecureCRT, putty). Серверное ПО - платное.

X-Window System

[актуальную информацию см. в man Xorg]

Практически все задачи управления UNIX могут выполняться в текстовом режиме, однако администраторы нередко предпочитают графический интерфейс, как более удобный. Вдобавок, некоторыми приложениями UNIX можно управлять только в графической среде. Программное обеспечение X-server, отвечающее за вывод графической информации, имеется для множества платформ, включая DOS, Windows, Macintosh, UNIX и т.д.

Следует иметь в виду, что применение X Window System предполагает наличие достаточно большой пропускной способности сети. Система прекрасно работает в локальных сетях, но очень медленно — по глобальным каналам. Поэтому при использовании X Window System на домашнем компьютере администратора управление лучше осуществлять через терминальные утилиты наподобие xterm, а не посредством графических утилит.

При подключении к серверу UNIX (на котором запускаются клиенты X11) аутентификация может осуществляться двумя методами: через терминальные утилиты (telnet, rlogin и т. п.) и через менеджер дисплеев X (X Display Manager, xdm). В первом варианте передачи пароля в открытом виде можно избежать, применяя вместо telnet и rlogin уже упоминавшиеся программы ssh и OTP. В случае X Display Manager пароли по умолчанию передаются в открытом виде. Поэтому при удаленном управлении сервером UNIX по общедоступным сетям xdm пользоваться не стоит.

Очень осторожно администраторы должны подходить к вопросу использования сервера UNIX в качестве сервера X (т. е., говоря понятным языком, к запуску графической оболочки X11 на сервере UNIX). X Window System устроена так, что пользователь может со своей машины запустить клиента X на удаленном сервере X и перехватывать на нем ввод/вывод информации. В результате злоумышленник получает возможность считывать конфиденциальную информацию с сервера X, включая пароли, вводимые пользователем на сервере X (хотя эмулятор терминала xterm позволяет блокировать перехват пароля, этой возможностью редко кто пользуется).

На серверах X применяются две схемы аутентификации клиентов: по имени хоста и с помощью «магических плюшек» (MIT-MAGIC-COOKIE-1). При аутентификации по имени хоста на сервере X создаются системные файлы, где перечисляются хосты, откуда разрешено запускать клиентские программы X на данном сервере X. Но подобную защиту никак не назовешь достаточной, так как с помощью подмены IP-адресов или доменных имен злоумышленник может провести атаку на X11. При использовании же схемы «магических плюшек» (их поддержка встроена в протокол XDMCP, на основе которого функционирует X Display Manager) аутентификация осуществляется на основании учетных записей пользователей. Чтобы иметь право запустить клиента на сервере X, пользователь в своем домашнем каталоге машины-клиента X11 должен иметь системный файл с записанным секретным кодом сервера X. Этот секретный код и называется магической плюшкой. Беда только в том, что плюшка передается по сети в открытом виде, поэтому данный метод также вряд ли можно считать безопасным.

В X Window System 11 Release 5 добавлены еще две схемы (XDM-AUTHORIZATION-1 и SUN-DES-1), напоминающие схему MIT-MAGIC-COOKIE-1, но использующие алгоритм шифрования DES. Однако из-за экспортных ограничений такие схемы в комплект поставки X Window System не включают. Исходя из вышеприведенных соображений, запускать серверное ПО X11 на сервере UNIX можно лишь в том случае, когда запрещен доступ клиентов X11 с других компьютеров.

Remote Desktop Protocol *

RDP (англ. Remote Desktop Protocol, протокол удалённого рабочего стола) — открытый протокол прикладного уровня, разработанный Microsoft и изначально предназначенный для подключения графических терминалов к Windows Terminal Server. Клиенты существуют практически для всех версий Windows (включая Windows CE и Mobile), Linux, Free BSD, Mac OS X. По-умолчанию используется порт TCP 3389. Офицальное название Майкрософт для клиентского ПО - Remote Desktop Connection или Terminal Services Client (TSC), в частности, клиент в Windows XP/2003/vista называется mstsc.exe.

RDP-клиент, - Remote Desktop - позволяет вам, находясь на одном компьютере, удаленно управлять другим. Например, если вам нужно зайти в свой компьютер, находящийся в офисе, из дома (предположим, что вы заблаговременно настроили свой рабочий компьютер), то вы можете с помощью инструмента Remote Desktop получить доступ ко всем данным, находящимся на рабочем компьютере, включая файлы, приложения и сетевые соединения. Вы даже можете слышать звук, с которым открываются файлы (спрашивается: зачем? прим. aag).

Фактически Remote Desktop позволяет не только получать доступ к файлам удаленного компьютера, но и на самом деле видеть рабочий стол таким, какой он есть на удаленном компьютере. Более того, если удаленный компьютер работает в операционной системе Windows 2000 или .NET Server, то на нем могут удаленно работать несколько пользователей одновременно.

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

Для соединения инструмент Remote Desktop использует LAN, виртуальную частную сеть (VPN) или интернет-соединение. Работа удаленного рабочего стола сильно зависит от скорости установленного соединения.

Remote Desktop поддерживает работу в двух режимах:

Remote Desktop поддерживает 24-битные цвета - это позволяет варьировать качество картинки в широких пределах.

Переадресация ресурсов позволяет, например, использовать файловую систему удаленного компьютера в качестве сетевого ресурса общего доступа.

Переадресация звуков позволяет компьютеру-клиенту воспроизводить звуки, которые генерируются на компьютере-сервере. При проигрывании звуков Remote Desktop также учитывает пропускную способность полосы частот. Вместо того чтобы перегружать соединение звуковым сигналом при изменении пропускной способности, Remote Desktop снижает качество звука.

Remote Desktop-сервер и Remote Desktop-клиент пользуются общим буфером. Это позволяет им свободно обмениваться информацией.

Веб-технологии удаленного управления

Всемирная Паутина (World Wide Web) оказывает все большее влияние на средства управления сетевой средой. Уже сейчас многие маршрутизаторы, коммутаторы, сетевые принтеры допускают управление через web-браузеры. Но список этот далеко не исчерпывается ими и Web вторгается и в сферу управления сетевыми ОС. Вначале из Web можно было управлять лишь серверами HTTP и FTP, но этот список постоянно расширяется и охватывает теперь СУБД (например, phpMyAdmin как веб-интерфейс к СУБД MySQL), файловые системы, межсетевые экраны, сетевые службы DNS, DHCP и многое другое (пример - Webmin для управления UNIX-подобными системами). Несмотря на все увеличивающееся количество подобных решений, до полнофункциональных специализированных административных систем они не доросли. Основная проблема здесь в том, что для многих приложений и, особенно, сетевых устройств пароль по HTTP передается в открытом виде.

*Выдержки из официальной справочной документации Microsoft, рассчитанной, в первую очередь, на американских домохозяек

CC-BY-CA Анатольев А.Г., 31.01.2012