Для чего используется протокол telnet. TELNET— основы использования

Эмуляция удаленного терминала. Удаленный доступ к ресурсам сети

Telnet - это одна из самых старых информационных технологий Internet. Она входит в число стандартов, которых насчитывается три десятка на полторы тысячи рекомендуемых официальных материалов сети, называемых RFC (Request For Comments).

Под telnet понимают триаду, состоящую из:

  • telnet-интерфейса пользователя;
  • telnetd-процесса;
  • TELNET-протокола.

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

В настоящее время существует достаточно большое количество программ - от Kermit до различного рода BBS (Belluten Board System), которые позволяют работать в режиме удаленного терминала, но ни одна из них не может сравниться с telnet по степени проработанности деталей и концепции реализации. Для того, чтобы оценить это, знакомство с telnet стоит начать с протокола.

Протокол Telnet

Telnet как протокол описан в RFC-854 (май, 1983 год). Его авторы J.Postel и J.Reynolds во введении к документу определили назначение telnet так:

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

Telnet строится как протокол приложения над транспортным протоколом TCP. В основу telnet положены три фундаментальные идеи:

  • концепция сетевого виртуального терминала (Network Virtual Terminal) или NVT;
  • принцип договорных опций (согласование параметров взаимодействия);
  • симметрия связи "терминал-процесс".

При установке telnet-соединения программа, работающая с реальным терминальным устройством, и процесс обслуживания этой программы используют для обмена информацией спецификацию представления правил функционирования терминального устройства или Сетевой Виртуальный Терминал (Network Virtual Terminal). Для краткости будем обозначать эту спецификацию NVT. NVT - это стандартное описание наиболее широко используемых возможностей реальных физических терминальных устройств. NVT позволяет описать и преобразовать в стандартную форму способы отображения и ввода информации. Терминальная программа ("user") и процесс ("server"), работающий с ней, преобразовывают характеристики физических устройств в спецификацию NVT, что позволяет, с одной стороны, унифицировать характеристики физических устройств, а с другой обеспечить принцип совместимости устройств с разными возможностями. Характеристики диалога диктуются устройством с меньшими возможностями.

Если взаимодействие осуществляется по принципу "терминал-терминал" или "процесс-процесс", то "user" - это сторона, инициирующая соединение, а "server" - пассивная сторона.

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

Симметрия взаимодействия по протоколу telnet позволяет в течении одной сессии программе-"user" и программе-"server" меняться местами. Это принципиально отличает взаимодействие в рамках telnet от традиционной схемы "клиент-сервер". Симметрия взаимодействия тесно связана с процессом согласования формы обмена данными между участниками telnet-соединения. Когда речь идет о работе на удаленной машине в режиме терминала, то возможности ввода и отображения информации определяются только конкретным физическим терминалом и договорной процесс сводится к заказу терминальной программой характеристик этого терминала. Гораздо сложнее обстоит дело, когда речь идет об обмене информацией между двумя терминальными программами в режиме "терминал-терминал". В этом случае каждая из сторон может выступать инициатором изменения принципов представления информации и здесь проявляется еще одна особенность протокола telnet. Протокол не использует принцип "запрос-подтверждение", а применяет принцип "прямого действия". Это значит, что если терминальная программа хочет расширить возможности представления информации, то она делает это (например, вставляет в информационный поток Esc-последовательности), если в ответ она получает информацию в новом представлении, то это означает, что попытка удалась, в противном случае происходит возврат к стандарту NVT.

Обычно процесс согласования форм представления информации происходит в начальный момент организации telnet-соединения. Каждый из процессов старается установить максимально возможные параметры сеанса. Однако эти параметры могут быть изменены и позже, в процессе взаимодействия (например, после запуска прикладной программы).

В Unix-системах параметры терминалов обычно описаны в базе данных описания терминалов termcap. При инициировании telnet-соединения обычно именно эти параметры используются в процессе согласования формы представления данных. При этом из одной системы в другую обычно передается значение переменной окружения TERM. Если для этого значения переменной TERM имеются одинаковые описания в termcap, то проблем с представлением информации обычно не бывает; если терминал, заказанный в TERM, не определен, то берется стандартный терминал системы. При этом не все функции этого терминала будут задействованы. В процессе договора останутся только те, которые поддерживаются на обоих концах соединения. Часто можно столкнуться с ситуацией, когда значения переменных TERM на локальной и удаленной машинах совпадают, а информация на экране отображается не так, как этого бы хотелось. Скорее всего это вызвано различиями в описании данного устройства в базе данных termcap.

Сетевой виртуальный терминал (NVT) . Концепция сетевого виртуального терминала позволяет обеспечить доступ к ресурсам удаленной машины с любого терминального устройства. Под терминальным устройством понимают любую комбинацию физических устройств, позволяющих вводить и отображать информацию. Для тех кто знаком с универсальными машинами серии EC, такое определение терминала не является новым: в момент загрузки системы можно было назначить составную консоль, в которую могли входить устройство ввода с перфокарт и алфавитно-цифровое печатающее устройство (АЦПУ). В более ранних вычислительных комплексах такими терминалами могли быть системная печать и устройство чтения перфоленты (как на МИНСК-22) или телетайп (как на М-6000). Понятно, что за таким понятием терминала стоит требование устойчивости системы, которое было основополагающим для проекта ARPA.

В протоколе TELNET NVT определен как "двунаправленное символьное устройство, состоящее из принтера и клавиатуры". Принтер предназначен для отображения приходящей по сети информации, а клавиатура - для ввода данных, передаваемых по сети и, если включен режим "echo", вывода их на принтер. По умолчанию предполагается, что для обмена информацией используется 7-битовый US ASCII, каждый символ которого закодирован в 8-битовое поле. Любое преобразование символов является расширением стандарта NVT.

NVT предполагается буферизованным устройством. Это означает, что данные, вводимые с клавиатуры, не посылаются сразу по сети, а собираются в пакеты, которые отправляются либо по мере заполнения буфера, либо по специальной команде. Такая организация NVT призвана с одной стороны минимизировать сетевой трафик, а с другой обеспечить совместимость с реальными буферизованными терминалами. Например, таковым и являются терминалы ЕС-7920, из-за которых можно было потерять целый экран информации в случае зависания машины.

В моменты окончания печати на принтере NVT или отсутствия символов в буфере клавиатуры по сети должна посылаться специальная команда GA (Go Ahead). Смысл этой команды заключается в следующем: в реальных компьютерах линия "терминал-процесс" находится под управлением либо терминальной программы (ввод данных), либо печатающей программы. После выполнения своей функции каждая из них возвращает управление и освобождает линию. Обычно это происходит при работе с полудуплексными устройствами, такими как IBM-2741. Для того, чтобы протокол позволял работать и с этими устройствами, введен сигнал GA.

Остановимся более подробно на понятиях принтера и клавиатуры в концепции NVT.

Принтер имеет неограниченные ширину и длину страницы и может отображать все символы US ASCII (коды с 32 - 127), расширенный набор символов (коды с 128 - 255), а также распознает управляющие коды (с 0 - 31 и 127). Некоторые из них имеют специальные значения (таблица 3.1).

Клавиатура имеет возможность ввода всех символов US ASCII. Кроме этого клавиатура может генерировать специальные стандартные функции управления терминалом. Стандарт telnet определяет пять стандартных функций управления терминалом. Вообще говоря, эти функции могут или присутствовать на реальном терминале, и тогда они должны представляться в стандартной форме команды, или отсутствовать, и тогда заменяться командой NO (No-Оperation).

Команда "Прервать процесс" (Interrupt Process - IP). Данная команда реализует стандартный для многих систем механизм прерывания процесса выполнения задачи пользователя (Cntrl+C в Unix-системах или Cntrl+Break в MS-DOS). Следует заметить, что команда IP может быть использована и другим протоколом прикладного уровня, который может использовать telnet.

Команда "Прервать процесс выдачи" (Abort Output - AO). Многие системы позволяют остановить процесс, выдающий информацию на экран. Здесь следует понять отличие данной команды от IP. При выполнении IP прерывается выполнение текущего процесса пользователя, но не происходит очистка буфера вывода, т.е. процесс может быть остановлен, а буфер вывода будет продолжать передаваться на экран. Обычно это происходит при взаимодействии по медленным линиям связи. Пользователи персональных компьютеров прекрасно знакомы с этой особенностью буферизованных устройств, когда возникают проблемы с остановкой печати: пользователь уже прервал печать и очистил по команде print /t буфер печати на компьютере, а лазерный принтер продолжает изводить бумагу лист за листом. Это типичный пример непродуманного подхода к процессу управления терминальным устройством, который характерен для разработчиков MS-DOS. Для того, чтобы избежать подобного казуса и существует команда AO. Реально проверить ее может любой пользователь медленного телефонного канала связи - для этого можно запустить команду more для просмотра большого файла, после этого по команде Cntrl+C прервать ее - выдача информации на экран будет продолжаться, и после этого выдать из командной строки telnet команду AO, что прервет выдачу.

Команда "Ты еще здесь?" (Are You There - AYT). Назначение этой команды - дать возможность пользователю убедиться, что в процессе работы по медленным линиям он не потерял связи с удаленной машиной. В силу буферизации ввода и вывода может оказаться, что пользователь может вводить данные, а связь с удаленной машиной уже потеряна. В стандартной ситуации этот факт будет обнаружен только после нажатия клавиши "Enter". Telnet дает возможность убедится в наличии связи в любой момент времени.

Команда "Удалить символ" (Erase Character - EC). Многие системы обеспечивают возможность редактирования командной строки путем введения так называемых символов "забой" или удалением последнего напечатанного символа на устройстве отображения. В любом случае последний введенный в буфер символ удаляется. Команда EC призвана стандартизировать реализацию этого механизма.

Команда "Удалить строку" (Erase Line - EL). Данная команда аналогична EC, но удаляет целую строку ввода. Обычно выполнение этой команды приводит к очистке буфера ввода, т.к. при работе в режиме командной строки строка ввода только одна.

Синхронизация . В локальных системах синхронизация работы процессов обычно реализуются через механизм прерываний или, как в Unix, механизм сигналов. Это означает, что система имеет возможность вмешаться в процесс обработки данных практически в любой момент времени. В контексте взаимодействия программы обработки данных и терминальной программы это означает возможность прервать программу обработки или очистить один из буферов с/без отображением(я) информации из него. Именно к этому типу взаимодействия относятся команды IP и AO. Однако в сети сделать это не так просто, как в локальной вычислительной среде. Данные при передаче между машинами буферизуются и обмен происходит пакетами. Если бы команда "Прервать процесс" просто вставлялась в последовательность символов в пакете, то это приводило бы к эффекту запаздывания, т.е. после ввода пользователем команды "прервать процесс", а процесс будет продолжать выполняться пока не доберется до идентификатора команды IP в полученном пакете. Результат - бесполезно потраченное время. Поэтому механизм синхронизации telnet состоит из использования специальной формы пакета TCP (TCP Urgent notification) и команды DATA MARK (DM). Специальная форма TCP пакета используется для изменения процедуры обработки пакетов. Обычно пакет обрабатывается, начиная с первого символа пакета последовательно. В случае специальной формы пакета сначала происходит поиск "интересных" сигналов, а уже потом производится обработка пакета по стандартному сценарию. Команда DM обычно замыкает пакет и обозначает конец специальной обработки. Если TCP-пакет содержит специальные символы до DM, то порядок специальной обработки отменяется, а DM воспринимается как команда No- Operation (NO). Если специальные символы не найдены, то порядок специальной обработки пакетов продолжается. В этом смысле интересными сигналами или символами являются стандартные команды telnet IP, AO, AYT или другие команды, требующие немедленного выполнения.

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

Эта утилита очень часто использовалась для удаленного управления компьютером с Linux, но потом ей на замену пришел защищенный протокол SSH. Но telnet все еще используется, например, для тестирования сети, проверки портов, а также для взаимодействия с различными IoT устройствами и роутерами. В этой статье мы рассмотрим что такое telnet, а также как пользоваться telnet для решения своих задач.

Что такое Telnet?

Как я уже сказал, эта утилита предназначена для создания интерактивного соединения между удаленными компьютерами. Она работает по протоколу TELNET, но этот протокол поддерживается многими сервисами, поэтому ее можно использовать для управления ими. Протокол работает на основе TCP, и позволяет передавать обычные строковые команды на другое устройство. Он может использоваться не только для ручного управления но и для взаимодействия между процессами.

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

$ telnet опции хост порт

Хост – это домен удаленного компьютера, к которому следует подключиться, а порт – порт на этом компьютере. А теперь давайте рассмотрим основные опции:

  • -4 – принудительно использовать адреса ipv4;
  • -6 – принудительно использовать адреса ipv6;
  • -8 – использовать 8-битную кодировку, например, Unicode;
  • -E – отключить поддержку Escape последовательностей;
  • -a автоматический вход, берет имя пользователя из переменной окружения USER;
  • -b – использовать локальный сокет;
  • -d – включить режим отладки;
  • – режим эмуляции rlogin;
  • -e – задать символ начала Escape последовательности;
  • -l – пользователь для авторизации на удаленной машине.

Это все, что касается команды telnet для установки соединения. Но соединение с удаленным хостом, это только полдела. После установки подключения telnet может работать в двух режимах:

  • Построчный – это предпочтительный режим, здесь строка текста редактируется на локальном компьютере и отправляется только тогда, когда она будет полностью готова. На такая возможность есть не всегда и не у всех сервисов;
  • Посимвольный – все набираемые вами символы отправляются на удаленный сервер. Тут будет сложно что-либо исправить, если вы допустили ошибку, потому что Backspace тоже будет отправляться в виде символа и стрелки движения тоже.

Использование telnet заключается в передаче специальных команд. У каждого сервиса свои команды, но у протокола есть свои команды telnet, которые можно применять в консоли telnet.

  • CLOSE – закрыть соединение с сервером;
  • ENCRYPT – шифровать все передаваемые данные;
  • LOGOUT – выйти и закрыть соединение;
  • MODE – переключить режим, со строчного на символьный или с символьного на строчный;
  • STATUS – посмотреть статус соединения;
  • SEND – отправить один из специальных символов telnet;
  • SET – установить значение параметра;
  • OPEN – установить подключение через telnet с удаленным узлом;
  • DISPLAY – отобразить используемые спецсимволы;
  • SLC – изменить используемые спецсимволы.

Мы не будем рассматривать все команды, поскольку они вам вряд ли понадобятся, а если и понадобятся, то вы легко сможете их найти в официальной документации.

Как пользоваться telnet?

Дальше мы рассмотрим как использовать telnet для решения ваших задач. Обычно, утилита уже установлена в большинстве систем, но если это не так, то вы можете установить telnet из официальных репозиториев, например, в Ubuntu:

$ sudo apt install telnet


Для этого не обязательно применять telnet, есть ping.

2. Проверка порта

C помощью telnet мы можем проверить доступность порта на узле, а это уже может быть очень полезным. Чтобы проверить порт telnet выполните:

$ telnet localhost 123 $ telnet localhost 22

$ telnet localhost 123

$ telnet localhost 22


В первом случае мы видим, что соединение никто не принимает, во втором же выводится сообщение об успешном подключении и приветствие SSH сервера.

3. Отладка

Чтобы включить режим отладки и выводить более подробную информацию во время работы используйте опцию -d во время подключения:

$ sudo telnet -d localhost 22

$ sudo telnet - d localhost 22

4. Консоль telnet

Использование консоли telnet тоже важный момент в разборе как пользоваться telnet. В основном режиме вы можете выполнять команды, на удаленном сервере, если же вы хотите адресовать команду именно telnet, например, для настройки ее работы, необходимо использовать спецсимвол для открытия консоли, обычно утилита сразу говорит вам что это за символ, например, по умолчанию используется “^[“:


Для его активации вам нужно нажать сочетание клавиш Ctrl+[, затем вы уведите приглашение ввода telnet.

Чтобы посмотреть все доступные команды, вы можете набрать?. Например, вы можете посмотреть статус подключения:

telnet> status

telnet > status


Здесь есть и другие интересные возможности. Такие вещи можно проделывать при любом подключении с помощью утилиты telnet.

5. Посмотреть сайт telnet

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

$ telnet opennet.ru 80

$ telnet opennet . ru 80


Затем наберите команду веб-серверу.

Использование команды telnet предоставляет возможность установки канала связи с компьютерами на расстоянии.

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

Раньше telnet часто использовался для того чтобы управлять ПК с операционной системой «Линукс».

А сейчас с помощью этой же утилиты тестируют сеть, проверяют порты, управляют роутерами и другими IoT-устройствами.

Содержание:

Особенности утилиты

Несмотря на то, что главной задачей telnet является создание связи между удалёнными друг от друга ПК по одноимённому протоколу, с помощью утилиты можно управлять и другими сервисами.

Например, получать доступ к POP3, HTTP, IRC или SMTP.

Ведь эти и некоторые другие сервисы работают на базе транспортного протокола TCP, для работы с которым можно пользоваться клиентом telnet.

Синтаксис команд telnet при подключении к удалённому компьютеру выглядит следующим образом: $ telnet (опции) (хост) (порт).

Хост представляет собой домен того компьютера, к которому проводится подключение. Порт – порт на том компьютере, с которого осуществляется доступ. А опции могут быть следующими:

  • -4 и -6 обеспечивают принудительное использование адресов ipv4 и ipv6, соответственно;
  • -8 даёт возможность использования 8-битной кодировки;
  • -Е отключает поддержку escape-последовательностей;
  • -a автоматически регистрирует пользователя в удалённой системе;
  • -d включает отладочный режим;
  • -p включает эмуляции rlogin;
  • -e устанавливает начальный управляющий символ;
  • -l авторизует пользователя в системе.

После того как соединение с удалённым хостом установлено утилита telnet начинает работу в одном из двух режимов – построчном или посимвольном.

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

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

Однако при его использовании вся информация отправляется на моментально.

И, если пользователь допустил ошибку, исправить её будет невозможно – ведь даже пробелы и Backspace отправляются на сервер в виде символов.

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

Основные команды

Работая с протоколом telnet, пользователь вводит в консоли соответствующие команды. К самым популярным относят следующие:

  • OPEN (название ПК) (порт). Позволяет обеспечить связь с компьютером, имя которого указано в команде. Если не указывать порт, утилита попытается использовать номер, выбранный по умолчанию. Иногда вместо имени ПК указывают его ;
  • DISPLAY (аргумент). Команда для отображения полного или частичного набора параметров утилиты telnet;
  • CLOSE. Предназначена для закрытия сессии «телнет» и возвращения системы в командный режим;
  • QUIT. Команда для завершения всех открытых соединений и выведения из telnet;

Рис. 2. Использование команды Quit в клиенте MS Telnet.

  • MODE TYPE. Используется для управления одним из двух вариантов режима ввода (посимвольным или построчным). При этом удалённому компьютеру отправляется запрос на переход в определённый режим, и, если он поддерживается сервисом, обеспечивается соответствующее переключение;
  • STATUS. Команда, с помощью которой отображается текущий статус утилиты, имя и режим обмена;
  • ? (команда). Сообщает информацию о соответствующей командной последовательности. Нужна в тех случаях, когда пользователь собирается применить незнакомую ему команду;
  • ! (команда). Выполняет командную последовательность на локальной системе;
  • SEND ARGUMENTS. Посылает символьные аргументы удалённому ПК;
  • ESCAPE. Отправляет один из escape-знаков типа запятой, скобки или символа «карет» (^);
  • SYNCH. Служит для отправления synch-последовательности, позволяющей отменить все набранные, но ещё не отправленные команды. Используется только в построчном режиме;
  • BRK . Отправление break-последовательности при нажатии клавиши Break.

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

А, после вывода на экран полного списка, получить справочную информацию о каждой командной последовательности с помощью команды «?».

Хотя, например, для клиента telnet в Windows перечень может оказаться сокращённым.

Рис. 3. Список команд telnet в клиенте Microsoft.

Telnet – базовый протокол ОС UNIX, обеспечивающий терминальный доступ пользователей к удалённому компьютеру .

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

По умолчанию в Telnet используется 23 порт. На удалённом компьютере должна быть запущена серверная часть, а на компьютере пользователя – клиентская. Клиентская программа носит то же название – telnet и допускает ввод параметров из командной строки. К этим параметрам относятся:

Имя (IP адрес) сервера и номер порта

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

Имя пользователя

Имя журнала соединения

Определение действий некоторых функциональных клавиш клавиатуры и др.

Синтаксис командной строки зависит от программной реализации telnet и с этой точки зрения telnet можно рассматривать как службу или сервис.

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

Наиболее популярный метод повышения безопасности прикладных терминальных протоколов (например, telnet) является протокол SSH (Secure SHell), использующий 22 порт по умолчанию. Так же, как и в telnet, на удалённом компьютере запускается серверная часть SSH, а на пользовательском компьютере – клиентская. После установления соединения все данные передаются в зашифрованном виде и все данные прикладных протоколов туннелируются по этому защищённому соединению как это показано на рисунке 3.5.3.1.

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

Протоколы электронной почты

Электронная почта (E-mail) – один из старейших и наиболее распространённых сетевых сервисов, популярных как в локальных, так и глобальных сетях .

Система электронной почты появилась в 1982 г. как сервис предка Internet сети ARPANET. Эта система значительно отличалась от принятых CCITT рекомендаций серии X.400. Сложность рекомендаций Х.400 и их непродуманность привели к редкому для сетевых технологий случаю, когда инициативная разработка победила международный стандарт. Службы электронной почты, отвечающие Х.400, не нашли широкого применения и представляют скорее научный интерес.

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

Конверт и заголовок имеют формализованные поля. Наиболее важными из них являются (обязательные для заполнения отправителем поля выделены жирным шрифтом):

То: - адрес (а) получателя (лей) в формате имя_ящика@имя_почтового_сервера

Сс: - (carbon copy) адрес (а) дополнительного (ных) получателя (лей)

Bcc: - (blind carbon copy) слепой (ые) адрес (а) получателя (лей), о которых другим не сообщается

Sender: - адрес отправителя письма

Received: - поле, куда при прохождении каждого узла добавляется имя узла, дата и время приёма

Return-Path: - имена узлов на пути письма

Date: - дата и время отправки письма

Reply-to: - адрес, куда надо ответить

Message-id: - уникальный идентификатор письма (для ссылок)

In-Reply-id: - идентификатор письма, на которое даётся ответ

Subject: - тема письма

Тело сообщения представляет собой набор строк из не более, чем 1000 (рекомендуется до 78) ASCII (American Standard Code for Information Interchange) знаков, т. е. 7-и битных чисел, представляющих буквы латинского алфавита, знаки препинания и цифры (популярным для такого представления является термин «кодировка»). Символы национальных кодировок (например, знаков кириллицы), двоичные файлы (например, с аудио, или видео информацией) и др. отображаются в соответствии с соглашением MIME (Multipurpose Internet Mail Extension – многоцелевые расширения электронной почты в Интернете), которое предусматривают поле с указанием способа кодировки (например, Base64 – см. параграф 3.5.2).

Базовым методом обеспечения конфиденциальности электронной почты является её криптографическая защита. Наиболее популярная система именуется PGP (Pretty Good Privacy - достаточно хорошая конфиденциальность). Эта система предложена Филом Циммерманом (Phil Zimmerman) и предусматривает использование нескольких алгоритмов шифрования (RSA, IDEA, MD5).

Другая система носит название PEM (Privacy Enhanced Mail – почта повышенной секретности) и отличается от PGP необходимостью связи с центрами сертификации ключей, меньшей степенью защиты (для кодирования данных в системе PGP используется ключи длинной 128 бит, а в системе PEM – только 56 бит), но полным соответствием рекомендациям ITU-T (Х.400 и Х.509).

Протоколы электронной почты характеризуются значительным разнообразием от фирменных, пригодных в программных продуктах конкретных фирм-производителей, до общепризнанных. Речь идёт о протоколах именно систем электронной почты, а не о распространённых системах эмуляции почтовых служб на базе протокола НТТР (см., например, www. mail. ru).

Среди почтовых протоколов можно выделить:

SMTP (Simple Mail Transfer Protocol – простой протокол электронной почты) – протокол, используемый для обмена почтой между узлами и отправки писем от клиента к почтовому серверу. По умолчанию протокол использует 25 порт.

РОР3 (Post Office Protocol v.3 –протокол электронной почты версии 3) – протокол для получения почты клиентом. По умолчанию протокол использует 110 порт.

IMAP v4 (Internet Message Access Protocol v.4 –протокол интерактивного доступа к электронной почте версии 4) – протокол, аналогичный РОР3, но позволяющий клиенту хранить и обрабатывать почту на самом почтовом сервере. По умолчанию протокол использует 585 порт

Протокол SMNP

Протокол SNMP (Simple Network Management Protocol – простой протокол сетевого управления) первоначально разрабатывался для управления маршрутизаторов, но затем был расширен на любые сетевые устройства (по умолчанию порты 161/162). В настоящее время актуальна версия 2 протокола (1999 г.) .

Протокол построен по принципу клиент - сервер (на управляемом сетевом устройстве должна быть запущена программа клиента) и включает в себя протокол управления (взаимодействие управляемого и управляющего узлов), язык ASN.1 (Abstract Syntax Notation v.1 - абстрактная синтаксическая нотация версии 1) описания модели управления и собственно модель управления MIB (Management Information Base - база управляющей информации). Распространению протокола мешает его низкая защищённость и ориентация на использование протокола UDP, приводящего к возможной потере сообщенийDNS

Задача разрешения имен подразумевает определение IP адреса узла по его символьному имени и определение символьного имени по заданному IP адресу.

Исторически первый, но до сих пор действующий механизм разрешения имен связан с прямым заданием таблицы соответствия символьных имён и IP адресов в файле hosts/lmhosts (первый файл используют UNIX/Linux и некоторые др. операционные системы (ОС), а второй – ОС фирмы Microsoft). Оба файла текстовые и их форматы и ключи можно найти в MS Windows в одноимённых файлах с расширением. sam (sample – образец). Очевидно, для сколько-нибудь крупной сети решить задачу таким образом полностью не представляется возможным, хотя запись в эти файлы сведений об основных серверах, маршрутизаторах, шлюзах и пр. весьма эффективна для ускорения старта компьютера в сетевом окружении.

Другой, достаточно популярный способ разрешения имён связан с использованием NetBIOS (Network Basic Input/Output System) поверх TCP/IP . Эта система была разработана совместными усилиями Microsoft и IBM в 80-е годы как сетевой сервис ввода/вывода для операционной системы Windows. Позже, для реализации доступа пользователей к ресурсам сети был разработан протокол NetBEUI (NetBIOS Extended User Interface – расширенный пользовательский интерфейс NetBIOS) как основной сетевой протокол в ОС Windows for Workgroups и NT. Наконец, с повсеместным распространением стека TCP/IP компания Microsoft была вынуждена выпустить реализацию NetBIOS, использующую протокол IP для передачи необходимых данных (NetBIOS поверх TCP/IP). До сих пор продолжается поддержка NetBIOS в ОС Windows 2000/NT/XP, правда уже не как основного механизма доступа к ресурсам сети. NetBIOS целесообразно использовать в небольших, одноранговых сетях.

Изначально, каждый узел в сети с NetBIOS имеет символьное имя (до 15 знаков) с идентификатором ресурса (16-ый знак), который указывает на роль узла (файловый сервер, принт-сервер, рабочая станция и пр.). «Чистый» NetBIOS применим только для небольших сетей и считается «немаршрутизируемым», т. к. –

система имён не позволяет идентифицировать сеть

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

Для устранения указанных недостатков компания Microsoft предложила службу WINS (Windows Internet Name Service – служба Windows имен Internet) на базе серверов имен NetBIOS. Следует отметить, что несмотря на упоминание сети Internet, WINS не применяется в этой глобальной сети.

Первый недостаток NetBIOS устраняется в WINS тем, что вводится групповое имя для сети, а второй – тем, что запросы при разрешении имён обращены к конкретным серверам WINS. Неустойчивость в работе службы, трудности администрирования и затруднительность использования в глобальной сети Internet, к настоящему моменту заставили компанию Microsoft перейти к полноценной поддержке DNS.

DNS (Domain Name System – доменная система имён) реализуется с помощью одноименного прикладного протокола, использующего по умолчанию 53 порт . Система DNS была разработана в рамках ОС UNIX и соответствующая служба, использующая DNS, имеет ту же аббревиатуру, но расшифровывается как Domain Name Service.

Имена в DNS строятся по иерархическому принципу в виде перевёрнутого дерева. Домены верхнего уровня (корневые) делятся по профессиональному принципу (. com - коммерческие,. gov - государственные,. net - сетевые и пр. узлы) или по национальному (. ru - русские,. fi - финские,. fr - французские и т. д.). ОС UNIX разрабатывалась в США и, само собой считалось, что все узлы находятся там же. Сейчас можно встретить двойные имена доменов, например,. com. tw – коммерческие тайваньские.

В свою очередь, каждый домен содержит поддомен, имя которого добавляется слева и отделяется точкой, и т. д. Заканчивается запись добавлением слева имени узла. Имя каждого домена, поддомена или узла не должно превышать 63 символа, а полное имя – 255 символов. Для обозначения имён традиционно используется латинский алфавит, цифры и тире (знак _ недопустим), но, в принципе, можно зарегистрировать домен с именем на кириллице, но смысл этого проблематичен.

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

Для повышения надёжности в каждом домене должно быть не менее 2-х серверов (primary - первичного и secondary - резервного), причём физически эти серверы должны находиться в разных сетях и могут располагаться не в тех доменах, имена узлов которых они содержат.

Корневой домен поддерживают свыше 10 DNS серверов, IP адреса и имена которых «зашиты» в сетевые ОС. Регистрацию новых имён и выделение соответствующих IP адресов производит владелец домена. Например, регистрацию в домене. ru производит РосНИИРОС, где регистрация имени и получение IP адреса обойдётся приблизительно в 50$, а годовая поддержка адреса – в 10$.Все изменения в таблице имен производятся на первичном DNS сервере, резервные серверы только обновляют свои записи по записям первичного сервера. Репликация (обновление) зоны производится с помощью надёжного протокола TCP, в то время, как для DNS запросов клиентов, применяется протокол UDP. Для ускорения процесса разрешения имени и уменьшения трафика в сети иногда устанавливают так называемые кэш-серверы DNS, которые записывают часто используемые имена и адреса.Режим работы DNS сервера может быть рекурсивным и не рекурсивным. В случае рекурсивного режима при невозможности разрешить DNS запрос этот запрос транслируется специально заданному другому DNS серверу (форвардеру – forfarders), который затем возвращает полученный ответ. При не рекурсивном режиме - в отсутствии информации о запрашиваемом узле производится обращение к корневым DNS серверам, а от них вниз по цепочке до получения ответа.

NAT (Network Address Translation - трансляция сетевых адресов) реализует преобразование (подмену) IP адресов локальных сетей во внешние IP адреса глобальной сети Internet . Необходимость такого преобразования следует из соглашения об использовании части IP адресов только в локальных сетях (см. п. 3.2), по которому маршрутизаторы глобальной сети уничтожают пакеты с этими адресами.

NAT действует на сетевом и частично на транспортном уровнях, обеспечивая преобразование в IP пакетах адресов узлов локальной сети во внешний адрес. Преобразование производится путём замены адреса внутреннего узла на внешним адрес. Заменяемые адреса запоминаются в таблице, с помощью которой производится обратная замена при получении ответного пакета. Следует отметить, что для устранения возможной неразличимости преобразуется не только IP адрес, но и с помощью PAT (Port Address Translation) номер порта.

Кроме преобразования адресов NAT позволяет уменьшить потребность в IP адресах для глобальных сетей, т. к. все пользователи локальной сети могут получать доступ к ресурсам глобальной сети через один внешний адрес.

NAT - не единственный способ отправки пакетов из локальной сети в глобальную, альтернативой трансляции адресов является использование сервера-посредника.

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

Далее будут изложено немного теории о том, что такое TELNET, то, ради чего многие и стремятся ей овладеть: возможности службы, а также список основных команд, позволяющий эти возможности осуществить на Windows .

TELNET - это средство связи, которое устанавливает транспортное соединение между терминальными устройствами, клиентами, то есть вашим компьютером и чьей-то ещё машиной, сервером, поддерживающей этот стандарт соединения. Это не специальная программа, а всего лишь сетевой протокол, но также словом TELNET (terminalnetwork) называют различные утилиты, которые также используют этот протокол. Сегодня Телнет присутствует практически везде, все ОС, так или иначе, его используют, в

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

Что нам всё это даёт?

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

Подключения к сети

При помощи Телнет вы можете:

  • подключаться к удалённым компьютерам;
  • проверить порт на наличие доступа;
  • использовать приложения, которые доступны только на удалённых машинах;
  • использовать различные каталоги, к которым получить доступ можно только таким образом;
  • отправлять электронные письма без использования специальных программ (клиентов);
  • понимать суть работы многих протоколов, использующихся сегодня, и извлекать из этого для себя определённую выгоду;
  • обеспечивать другим юзерам доступ к данным, размещённым на своём компьютере.

Начинаем пользоваться

Запуск

Запустить TELNET на Windows 7 и на любой другой Винде достаточно просто. Для этого необходимо сначала клиент, если он ещё не установлен:

  • Зайти в Панель управления.

  • Выбрать пункт «Программы».
  • Выбрать вкладку «Включение или отключение компонентов Windows».

  • Найти Telnet-клиент и поставить напротив него маркер, если он ещё не установлен.

После нажимаем «ОК» и ждём минуту, пока клиент устанавливается.

Запуск терминала осуществляется в Windows через командную строку, если у вас не установлено каких-либо специальных утилит для работы с Телнет. Но раз вы читаете эту статью, значит, только начинаете знакомство с этой темой, и для начала неплохо бы было освоить основы управления при помощи командной строки.

  1. Запускаем командную строку от имени администратора.
  2. Вводим «telnet».

Командная строка перезагружается, и теперь откроется командная линия TELNET, в которой мы и будем работать.

Проверяем порт

Одно из простейших действий, выполняемых в TELNET - проверка порта . Вы можете проверить порт на наличие доступа к нему с вашего компьютера. Для этого нужно сделать следующее:

В командной строке, открытой по методу выше вводим: telnetip-адрес номер порта

К примеру, если ваш IP-адрес 192.168.0.1, а номер порта 21 (порт FTP), то вводим:

telnet 192.168.0.1 21

Если команда выдаёт сообщение об ошибке, значит, порт недоступен. Если появляется пустое окно или просьба ввести дополнительные данные, значит, порт открыт. Для Windows такой способ проверить порт может быть достаточно удобным.

Команды

Команды TELNET составляют основу использования терминала. С их помощью можно управлять компьютером , который использует этот протокол, если для вас разрешён доступ, а также совершать другие различные действия. Как уже сказано выше, на Windowsони вводятся в командной строке приложения Телнет.

Для того чтобы увидеть основной список команд, введите в строке help и нажмите «Enter». Базовые команды:

  1. Open - подключение к удалённому серверу. Необходимо ввести эту команду вместе с именем управляемого сервера и номером порта, например: openredmond 44 . Если параметры не указаны, то используются локальный сервер и порт по умолчанию.
  2. Close - отключение от удалённого сервера. Используются аналогичные параметры.
  3. Set - настройка удалённого сервера, используется с именем управляемого сервера. Вместе с Set используются следующие команды:
    1. - используется, чтобы задавать терминал указанного типа.
    2. - задаёт управляющий символ.
    3. - задаёт режим работы.
  4. Unset [параметр] - отключает заданный ранее параметр.
  5. Start - запускает сервер Телнет.
  6. Pause - ставит работу сервера на паузу.
  7. Continue - возобновляет работу.
  8. Stop - останавливает сервер.

TELNET - один из старейших протоколов, но при этом он до сих пор применяется. Это означает, что и вы можете начать использовать его в своих целях. Для этого нужно лишь изучить синтаксис и список команд и начать практиковаться. Вы можете почерпнуть много нового, а заодно совсем по-другому начать смотреть на интернет и на привычные ранее действия в сети.