Книга построена в стиле "вопрос ответ". Ответы бывают двух видов

Вид материалаКнига
A:Что такое telnet и как с ним работать?
Рисунок 53 Рисунок t26_1.jpg Модель взаимодействия telnet-клиента с telnet-сервером
Web-programming  Какие сервера бесплатно предоставляют право исполнения cgi?
Windows 9x
Рисунок 54 Рисунок 059 Параметры терминала telnet.exe
Локальное эхо
Размер буфера
Отображение ввода
Пример сеанса работы с telnet
Удаленная система
Рисунок 56 Рисунок 060 Диалог "подключение"
Рисунок 57 Рисунок 061 Начало telnet-сессии с сервером
Как работать с UNIX?
Подобный материал:
1   ...   20   21   22   23   24   25   26   27   28

Разное




A:Что такое telnet и как с ним работать?


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

Терминалом тогда называли маломощный компьютер, обслуживающий монитор и клавиатуру, а все вычисления выполняла высокопроизводительная ЭВМ. Подобная схема жива и сегодня – именно так функционируют современные суперкомпьютеры, да и не только они.

Программа, выполняющаяся на центральной ЭВМ, получает с терминала исходные данные, выполняет все необходимые вычисления и отправляет результат своей работы обратно на терминал. Ну, чем не классический пример, иллюстрирующий идеальную концепцию ввода-вывода?

Потребность в стандартизации общения терминала с удаленным компьютером возникла еще на заре развития ARPANET, и в результате этого в 1969 году на свет появился протокол telnet (сокращение от telecommunication network protocol – сетевой коммуникационный протокол). С его помощью удавалось осуществить заход на сервер с удаленного терминала, и необходимость иметь аппаратный доступ к узлу (попробуй-ка ее обеспечить!) отпадала. Помимо telnet был разработан и проколол rlogin, впервые появившийся в 4.2 BSD UNIX и предназначавшийся для удаленного управления терминалами между UNIX-узлами. В отличие от универсального telnet, протокол rlogin мог использоваться только в среде UNIX. Это упрощало его программирование, но и ограничивало области применения. Поэтому, в настоящее время протокол telnet по популярности заметно превосходит rlogin.

Технически удаленный доступ в систему можно реализовать перенаправлением ввода-вывода. В самом деле, какая разница соединен терминал с компьютером проводами или межконтинентальной сетью Интернет? С точки зрения прикладных программ терминал всегда остается терминалом, даже если физически не существует в природе. В UNIX любое устройство (в том числе виртуальное) может представляться в виде файла. А файл в свою очередь – это объект, поддерживающий, по крайней мере, две основных операции – чтения и записи данных. Поэтому, Интернет-соединение можно представить как некоторый воображаемый файл.

Грубо говоря, все премудрости telnet-сервера сводятся к умению запихать терминальный ввод-вывод в TCP-соединение (хотя теоретически можно создать telnet и на базе UDP протокола). Схематично взаимодействие между telnet-сервером и telnet-клиентом показано на рисунке 52





Рисунок 53 Рисунок t26_1.jpg Модель взаимодействия telnet-клиента с telnet-сервером


На заре развития Интернет, когда еще никто не успел додуматься до web, а центром сетевой жизни были почта и Usenet, протокол telnet оказался основным средством межсетевого общения. Сегодня же подобный сервис – большая экзотика. И вряд ли сложно догадаться почему – слишком много развелось за последнее время вредителей и вандалов всех мастей, а удаленное выполнение программ – мощное оружие в руках злоумышленника, вот и стали администраторы закрывать ворота на свои сервера.

К счастью, в Internet существует несколько хороших бесплатных telnet-серверов, предоставляющих бесплатный доступ. (см. " Web-programming  Какие сервера бесплатно предоставляют право исполнения cgi?")

Достаточный признак наличия telnet-сервера на узле – открытый двадцать третий порт. Впрочем, далеко не каждый сервер пускает к себе всех желающих. Сразу же после установки соединения запрашивается имя пользователя и пароль, но только в редких случаях удается ввести нечто вроде "guest" (в переводе на русский "гость") или "newuser" (в переводе на русский "новый пользователь").

Для общения с telnet-сервером потребуется telnet-клиент. Какой именно выбрать – зависит от вкуса читателя, в книге же будет использоваться исключительно telnet.exe, входящий в штатную поставку Windows 9x/Windows NT. Это не лучший выбор и его возможности сильно ограничены, но он всегда доступен любому пользователю, в то время как остальные утилиты еще попробуй-ка, разыщи!

Внимание: приложение telnet.exe, поставляемое с Windows 95 и Windows 98, содержит ошибку, связанную с переполнением буфера слишком длинным аргументом командной строки. Это позволяет выполнить любой код на компьютере жертвы, стоит ей кликнуть по ссылке в окне браузера, наподобие telnet://server.com/xxxxxxxx, где “xxxx….” специальным образом подобранная последовательность.

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

Windows 9x


Запустив telnet.exe, необходимо вызывать диалог "Параметры терминала", активируя пункт меню “ТерминалПараметры”. Появляется следующее окно (смотри рисунок 53):





Рисунок 54 Рисунок 059 Параметры терминала telnet.exe


При работе с telnet-сервером флажок "Отображение ввода" (другой распространенный вариант названия этой опции " Локальное эхо") должен быть сброшен, иначе все вводимые с клавиатуры символы будут дублироваться. Это происходит потому, что telnet-сервер возвращает клиенту все символы, набранные им с клавиатуры. Не может же пользователь работать вслепую?

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

Две следующие опции управляют формой курсора. Значение их определяется вкусами и пристрастиями пользователя. Установка флажка "мерцающий курсор" приводит к миганию, позволяя его легче отыскать на экране. Если же мерцание раздражает – этот флажок можно сбросить.

Форму курсора предлагается выбрать между "простым" и "прямоугольным". "Простая" приводит к появлению на экране символа прочерка, изображенного на рисунке 54.2. Напротив, прямоугольный курсор занимает всю строку целиком и выглядит так, как показано на рисунке 54.1.




Рисунок 55 Рисунок 062 "прямоугольный курсор" Рисунок 063 "Простой курсор"


"Клавиатура VT100" указывает на необходимость эмуляции клавиатуры терминала VT-100, отличающегося от обычных терминалов наличием клавиш-стрелок, управляющими положением курсора. Если этот флажок сбросить, в редакторе vi придется пользоваться клавишами "<h>,<j>,<k>,<l>", что может оказаться несколько непривычно современному пользователю, поэтому "VT100" лучше всегда держать установленным.

" Размер буфера" – это число строк, которые будет запоминать telnet-клиент, допуская возможность прокрутки окна. Рекомендуется установить достаточно большое значение, иначе вывод результатов работы программы станет уходить "вверх" за окно, и не будет никакой возможности вернуть его назад. Впрочем, в качестве альтернативы telnet.exe допускает протоколирование сеанса работы, – сохранение всех нажатых клавиш и полученной от сервера информации в файле протокола.

"Протоколирование" – часто необходимая в работе вещь и лучше ее всегда держать включенной. Для этого достаточно открыть меню "Терминал  Начать протоколирование" и указать имя файла в который будет вестись запись. Закончить сеанс протоколирования можно либо выходом из telnet, либо прекращением протоколирования командой меню "Терминал"  "Закончить протоколирование".

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

Таким образом, до начала сеанса с telnet-сервером необходимо сбросить флажок " Отображение ввода" и установить "Эмуляция VT100", значения всех остальных могут варьироваться в зависимости от вкусов пользователя.

Windows 2000


В поставку Windows 2000 входит значительно измененный telnet клиент, – это консольное приложение, вызывающее трудности с настройкой у новичков. Оно может работать в двух режимах - в рабочем и командном.

Командный режим предназначается для управления клиентом. Все символы, введенные с клавиатуры, обрабатываются самим клиентом и не передаются на сервер. Сразу после запуска, клиент находится в командном режиме. Для того чтобы получить список существующих команд достаточно набрать "?" или "help". Установить соединение с сервером можно либо воспользовавшись командой "open имя сервера порт", либо указав адрес сервера (и порт) в командной строке. По умолчанию используется двадцать третий порт.

После успешной установки соединения, клиент переходит в рабочий режим. Возвратится обратно в командный (если возникает такая необходимость) помогает нажатие сочетания клавиш <Ctrl-]>. Находясь в командном режиме, можно в любой момент закрыть активное соединение командой "close" или выйти из клиента (с закрытием соединения) командой "quit". Для переключения из командного в рабочий режим нажмите клавишу <Enter>.

Две команды "set" и "unset" позволяют управлять параметрами клиента. Доступны следующие опции (для получения их списка укажите знак вопроса после команды set или unset):


NTLM - посылать серверу при аутентификации только NT хеш LOCAL_ECHO эхо-отображение символов, набираемых на клавиатуре

TERM тип терминала (ANSI, VT100, VT52 или VTNM)

CRLF завершать каждую строку символами CR (0xD) и LF (0xA)


Команда set устанавливает требуемую опцию (например, "set LOCAL_ECHO" включает эхо-отображение), а команда unset соответственно сбрасывает ("unset LOCAL_ECHO" выключает эхо-отображение).

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

Замечание: в Windows 2000 вполне допустимо исползать прежний, графический telnet-клиент. Для этого достаточно скопировать один исполняемый файл telnet.exe из поставки Windows 95 (Windows 98) или Windows NT 4.

Пример сеанса работы с telnet


Следующий эксперимент демонстрирует подключение к telnet серверу "hobbiton.org" с регистрацией нового пользователя.

Выберите пункт " Удаленная система" меню "Подключить" в графическом клиенте или непосредственно укажите имя сервера в его консольной ипостаси.

Когда на экране появится диалоговое окно, изображенное на рисунке 55 в поле "Имя узла" укажите "hobbiton.org" (или адрес другого узла, с которым вы хотите установить соединение). Содержимое поля "порт" на данном этапе оставьте по умолчанию, – "telnet" или введите численное значение порта – "23", в поле "Типе терминала" выберите терминал "vt100".





Рисунок 56 Рисунок 060 Диалог "подключение"


Когда все будет сделано, нажмите кнопочку "подключить", и через пару секунд появится заставка “Open BSD”, с требованием ввода имени пользователя и пароля (смотри рисунок 56).





Рисунок 57 Рисунок 061 Начало telnet-сессии с сервером


Для регистрации нового пользователя введите вместо своего имени "newuser", – сервер, радостно хрюкнув, задаст несколько придирчивых вопросов о поле, возрасте, месте проживания и через некоторое время, варьирующиеся от десятков минут до нескольких дней, создаст новый аккаунт и запустит вас в систему.

Как с ней работать? см. " Как работать с UNIX?"


Родственные вопросы:

Как работать с UNIX?

Web-programming  Какие сервера бесплатно предоставляют право исполнения cgi?