Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #32, ИЮЛЬ 2003 г.

ДЛИННЫЕ РУКИ ПРАВИЛЬНОЙ ОСИ

Vitls (vitls@chat.ru)

Спецвыпуск Xakep, номер #032, стр. 032-068-1


КАК УПРАВЛЯТЬ СЕРВАКОМ УДАЛЕННО ИЗ LINUX

Салам, дорогой! На сей раз я расскажу тебе о такой простой вещи, как управление компьютером. Да ладно тебе руками-то махать! Слабо, например, перезагрузить компьютер, находясь за пару тысяч километров от него?

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

ПРАДЕДУШКА TELNET

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

Для успешного использования данного протокола требуются две вещи. Сервер и клиент. Серверная часть (демон telnetd) выполняется на удаленном компьютере (хост-сервер), которым требуется управлять. Клиентская программа называется... угадай с трех раз, правильно, telnet - и выполняется на твоем компьютере (хост-клиент). Она имеет и свой набор команд, которые управляют, собственно, этой программой и сеансом связи, его параметрами, открытием новых сессий, закрытием и т.д. Эти команды подаются из командного режима telnet, в который можно перейти, нажав так называемую escape-последовательность клавиш, которая тебе сообщается в начале сеанса. Традиционно это Ctrl-]. Эту последовательность можно переопределить по своему усмотрению в командном режиме. Читай man telnet до полного просветления.

Telnet является протоколом прикладного уровня. То есть все сообщения для управления хост-сервером и удаленным терминалом передаются при помощи транспортного протокола TCP. Это только на первый взгляд кажется, что кроме установления соединения с удаленным сервером клиент telnet ничего не умеет. Если копнуть глубже, то тебе откроются совершенно неожиданные вещи. Подробности ты можешь посмотреть сам, прогулявшись по линку: http://www.omnifarious.org/~hopper/technical/telnet-rfc.html. Не удивлюсь, если ты вдруг обнаружишь, что сквозь этот протокол можно работать не только в текстовом режиме, но и запускать удаленные графические приложения. Возможности протокола telnet описывают десятки различных документов RFC (Request For Comment).

ЮЗАЕМ В ЛИНЕ

И серверная (вдруг тебе потребуется), и клиентская программы являются практически неотъемлемой частью любого дистрибутива Linux. В моем ALT Linux Master 2.2 поставляются два пакета: telnet и telnet-server. Не думаю, что у тебя возникнут проблемы с установкой.

Подключение (установление сессии) производится крайне просто: командой telnet адрес [порт], где адрес - IP-адрес удаленной системы, а необязательный параметр "порт" указывает, к какой сервисной службе подключаться. Подключившись к telnet-серверу, ты сразу получаешь приглашение ввести имя пользователя и пароль. Короче, картинка та же самая, как если бы ты сам сидел за клавой далекой машины. Единственное, что тебя будет отрезвлять, так это более длительное время ожидания отклика на нажатие клавиши. Ну, это-то понятно, расстояние и дохлые каналы свою роль таки играют.

Содержание  Вперед на стр. 032-068-2