Віддалене виконання програм (розділ для початківців)

ALTE DOCUMENTE

Віддалене виконання програм (розділ для початківців)

Ø Історія виникнення telnet

Ø Пристрій telnet-сервера

Ø Настоянка telnet-клієнта

Кілька десятків років тому про персональні комп'ютери ніхто і мріяти не смів. У той час електронно-обчислювальні машини займали цілі приміщення (ну якщо не приміщення, то шафи - точно) і коштували дуже дорого. Як правило, один комп'ютер купувався повністю на всю фірму (або університет) та обслуговував десятки терміналів.

Врізання «зауваження»

Протокол telnet був розроблений на початку 80-х років як типовий метод 8-бітного двонаправленого зв'язку між віртуальним термінальним пристроєм і комп'ютером. Віртуальний термінал названий для того, щоб відрізняти його від звичайного (неінтелектуального, dumb). У міру зниження цін на персональні комп'ютери знайти неінтелектуальні термінали стає дедалі важче. Багато з них просто екран і клавіатуру, з'єднані з комп'ютером через послідовний інтерфейс. Персональні комп'ютери, оснащені власними процесорами, ОЗУ та дисковою пам'яттю, набагато універсальніші та швидко витісняють неінтелектуальні термінали. Близько десяти років тому, коли я працював у фірмі, що виробляє UNIX-комп'ютери, тільки вище керівництво мало свої власні ПК, у простих смертних були встановлені термінали, підключені каналами зі швидкістю передачі 9600 біт/с. А щасливі користувачі ПК зв'язувалися із центральними UNIX-комп'ютерами за допомогою DOS-версії telnet.

Терміналом тоді називали малопотужний комп'ютер, обслуговуючий монітор і клавіатуру, проте обчислення виконувала високопродуктивна [1] ЕОМ. Подібна схема жива і сьогодні – саме так функціонують сучасні суперкомп'ютери, та й не лишевони.

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

Потреба стандартизації взаємодії терміналу з віддаленим комп'ютером виникла ще на зорі розвитку ARPANET, і в результаті цього в 1969 році на світ з'явився протокол telnet (скорочення від telecommunication networkprotocol- мережевий комунікаційний протокол). З його допомогою вдавалося здійснити захід на сервер з віддаленого терміналу, і необхідність мати апаратний доступ до вузла (спробуй її забезпечити!) Відпадала. Крім telnet був розроблений і проколов rlogin, що вперше з'явився в 4.2 BSD UNIX і призначався для віддаленого управління терміналами між UNIX-вузлами. На відміну від універсального telnet, протокол rlogin міг використовуватися лише серед UNIX. Це спрощувало його програмування, а й обмежувало сфери застосування. Тому, в даний час протокол telnet за популярністю помітно перевершує rlogin.

Обидва протоколи будуть докладно розглянуті у розділі «Протокол telnet і rlogin», тут вони будуть коротко описані в загальних рисах.

Технічно віддалений доступ до системи можна реалізувати перенаправленням введення-виведення. Справді, яка різниця з'єднаний термінал із комп'ютером проводами чи міжконтинентальною мережею Internet? З погляду прикладних програм термінал завжди залишається терміналом, навіть якщо фізично немає у природі. У UNIX будь-який пристрій (у тому числі віртуальний) може представлятися як файл. А файл у свою чергу - це об'єкт, що підтримує принаймні дві основні операції - читання та записиданих. Тому, Internet-з'єднання можна як деякий уявний файл.

Грубо кажучи, всі премудрості telnet-сервера зводяться до вміння запхати термінальне введення-виведення в TCP-з'єднання (хоча теоретично можна створити telnet і на базі UDP протоколу). Схематично взаємодія між telnet-сервером та telnet-клієнтом показано на малюнку t 26_1. jpg

віддалене

Малюнок t 26_1. jpg Модель взаємодії telnet-клієнта з telnet-сервером

На папері все, як завжди, просто, але насправді виникає безліч непередбачених складнощів, які змушують йти на всілякі хитрощі. Це навряд чи цікаво початківцям, тому повернемося до наших баранів, відіславши професіоналів до глави «Протоколи telnet і rlogin», у якій описується у всіх подробицях.

На щастя, в Internet існує кілька добрих безкоштовних telnet-серверів, що надають безкоштовний доступ. У книзі для більшості експериментів буде використовуватися hobbiton. org , але читач може вибрати інший сервер, величезний список яких знаходиться на сторінці http://www.telnet.org/htm/places_misc.htm.

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

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

Врізання «інформація»*

Додаток telnet. exe, що поставляється з Windows 95 і Windows 98, містить помилку, пов'язану з переповненням буфера занадто довгим аргументом командного рядка. Це дозволяє виконати будь-який код на комп'ютері жертви, варто їй натиснути на посилання у вікні браузера, на зразок telnet://server.com/xxxxxxxx , де "xxxx.." спеціальним чином підібрана послідовність [2] .

До початку роботи будь-якого клієнта потрібно налаштувати. Нижче буде показано як це зробити на прикладі штатного клієнта Windows. Інші клієнти конфігуруються тією чи іншою мірою аналогічно. Запустивши telnet. exe необхідно викликати діалог «Параметри терміналу», активуючи пункт меню "

Термінал/Параметри". З'являється наступне вікно (див. малюнок 059):

розділ

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

При роботі з telnet-сервером прапорець «Відображення введення» (інший поширений варіант назви цієї опції «Локальне луна» [3] ) необхідно скинути, інакше всі символи, що вводяться з клавіатури, будуть дублюватися. Це тому, що telnet -сервер повертає клієнту всі символи, набрані ним з клавіатури. Не може ж користувач працювати наосліп?

Це здається настільки очевидним, що існування альтернативних варіантів просто не вкладається в голові, але, незважаючи на це, вони існують! Навпаки, в більшості експериментів, що описуються в книзі, прапорець «Відображення введення» доведеться встановлювати, оскільки такі сервери як, наприклад, SMTP , POP 3, HTTP «мовчки» проковтують команди, що віддаються користувачем, і повертають результат своєї роботи, але не відображають прийнятісимволи на терміналі. Однак клієнт telnet може самостійно виводити на екран усі натиснуті клавіші, якщо прапорець «Відображення введення» встановлено.

Дві наступні опції керують формою курсору. Значення їх визначається смаками та уподобаннями користувача. Установка прапорця "миготливий курсор" призводить до миготіння, дозволяючи його легше знайти на екрані. Якщо мерехтіння дратує - цей прапорець можна скинути.

Форму курсору пропонується вибрати між «простим» та «прямокутним». "Проста" призводить до появи на екрані символу прочерку, зображеного на малюнку 063. Навпаки, прямокутний курсор займає весь рядок і виглядає так, як показано на малюнку 062.

Малюнок 062 Вид курсора при встановленому прапорі «Прямокутний курсор»

Малюнок 063 Вид курсора при скинутому прапорі «прямокутний курсор»

Розмір буфера це число рядків, які запам'ятовуватиме telnet-клієнт, допускаючи можливість прокручування вікна. Рекомендується встановити досить велике значення, інакше виведення результатів роботи програми йтиме «вгору» за вікно, і не буде жодної можливості повернути його назад. Втім, як альтернатива telnet. exe допускає протоколювання сеансу роботи, - збереження всіх натиснутих клавіш та отриманої від сервера інформації у файлі протоколу.

Протоколування - часто необхідна в роботі річ і краще її завжди тримати увімкненою. Для цього достатньо відкрити меню

Термінал/Почати протоколювання" та вказати ім'я файлу в який буде вестись запис. Закінчити сеанс протоколювання можна або виходом з telnet, або припиненням протоколювання командою меню "

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

ТакимТаким чином, до початку сеансу з telnet-сервером необхідно скинути прапорець «Відображення введення» та встановити «Емуляція VT 100», значення решти можуть змінюватись в залежності від смаків користувача.

Врізання «зауваження»

У постачання Windows 2000 входить значно змінений, консольний, telnet-клієнт, короткий опис якого знаходиться у розділі «Огляд telnet-клієнтів». Однак допустимо використання колишнього, графічного telnet-клієнта, взятого з постачання Windows 95 (Windows 98) або Windows NT 4. x. Для цього достатньо скопіювати один виконуваний файл telnet. exe.

Але старий клієнт не здатний з'єднатися з telnet-сервером Windows 2000, оскільки не підтримує NTLM автентифікацію, яку рекомендується використовувати з метою безпеки. З усіма іншими завданнями, описаними в цій книзі, він успішно справляється.

Наступний експеримент демонструє підключення до telnet-сервера hobbiton. org та реєстрацію нового користувача. Для цього необхідно вибрати пункт меню

віддалене

Малюнок 060 Діалог «підключення»

Потім натиснути кнопку «підключити», і кілька секунд з'явиться заставка " OpenBSD " [4] , і ввести ім'я користувача та пароль (дивися малюнок 061).

виконання

Малюнок 061 Початок telnet-сесії із сервером

[1] На ті часи

[2] Докладніше це розглянуто у розділі «Технології зриву стека»

[3] Англійською Local Echo

[4] Якщо сервер не знаходиться в дауні (з ним, як і з більшістю інших безкоштовних ресурсів, це трапляється набагато частіше, ніж хотілося б),

Document Info

Accesari: 1028 Apreciat:

Comenteaza documentul:

Nu esti inregistrat Trebuie sa fii utilizator inregistrat pentru a puteacomenta

A fost util?

Daca documentul a fost util si crezi ca merita sa adaugi un link catre el la tine in site

Copiaza codul в pagina web a site-ului tau.