Telnet (TErminaL NETwork)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 11:58, 23 июня 2016.
Telnet
Семейство: TCP/IP
Порт/ID: 23/TCP
Назначение протокола: виртуальный текстовый терминал
Спецификация: RFC 854
Основные реализации (клиенты): telnet (Unix)
PuTTY, telnet.exe (Windows)[1]
Основные реализации (серверы): telntd, MS Telnet
Расширяемость: Опции (RFC 855)
Вступил в силу с: 1969

Telnet (англ. TErminaL NETwork) - протокол прикладного уровня, используемый для реализации двунаправленного интерактивного текстового интерфейса в сети через виртуальный терминал. Данные от пользователя перемешиваются с управляющими командами TelNet в восьмибитные байт-ориентированные данные, передаваемых по протоколу TCP. TelNet был разработан в 1969 году. Первой версией была RFC 15, далее расширенная в RFC 854 и далее стандартизированная в один из первых интернет-стандартов IETF STD 8. Telnet обеспечивает доступ к командной строке операционной системы на удалённом хосте, поддерживая большинство видов сетевого оборудования и операционных систем с утилитой конфигурации, однако из-за серьёзных проблем в безопасности использования Telnet в открытой сети (Интернет), всё чаще для этих целей используют протокол SSH. Однако, Telnet часто используют также и для ссылки на программное обеспечение, содержащее клиентскую часть протокола, так как клиентские приложения Telnet доступны практически для всех компьютерных платформ.

Telnet-клиент для DOS

История и стандарты

Telnet это протокол клиент-сервер. Как правило, он используется, чтобы установить соединение с TCP порт 23, где находится серверное приложение Telnet. Однако, до появления TCP/IP Telnet использовал протокол NCP. Официальную огласку Telnet получил 5 марта 1973 года, после того как стандарт протокола был определён в UCLA. Из-за нечёткой архитектуры опций протокола было сделано много расширений, некоторые из которых были приняты (STD 27, STD 32), широко реализованы, а так же предложены в числе стандартов IETF.

Безопасность

При первоначальной разработке telnet в 1969 году большинство пользователей подключенных к сети компьютеров или находились в компьютерных отделениях академических учреждений, или являлись частью правительственных/частных исследований. Поэтому вопросы безопасности вставали не так остро, как это стало позднее, в 1990-х. Резко выросло людей, имеющих доступ к Интернету, а значит и количество людей, пытающихся взломать чужие сервера. Это вызвало необходимость в зашифрованных альтернативах. Эксперты компьютерной безопасности рекомендовали, чтобы использование Telnet для удалённых входов в систему было прекращено во всех нормальных обстоятельствах по следующим причинам:

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

Эти связанные с безопасностью недостатки наглядно показывали, что использование протокола Telnet в общедоступной сети опасно и неоптимально. Позже, в 1995 году, появился протокол SSH (Secure Sell), который обеспечивал большинство функций Telnet, а так же предоставлял устойчивое шифрование и публичный ключ аутентификации, для того, чтобы предотвратить перехват уязвимых данных и подтвердить подлинность удалённого компьютера. Как и и другие ранними интернет-протоколами, расширения Telnet используют TSL и SASL для обеспечения начального уровня безопасности. Однако, поддерживают эти функции далеко не все расширения, а интереса к реализации более защищённых средств не было из-за появления SSH, достаточного для большинства целей.

Известно, что большое количество промышленных и научных устройств для коммуникации есть только Telnet. Некоторые имеют только стандартный порт RS-232 и используют серверные устройства для передачи данных между TCP/Telnet и RS-232. В таких случаях устройства не могут быть сконфигурированы под SSH и этот стандарт неприменим.

Telnet 5250

Эмулятор рабочей станции IBM 5250 или 3270 поддерживается через пользовательские клиенты Telnet - TN5250/TN3270. Клиентские и серверные части разработаны так, чтобы передать данные IBM 5250 потоком через Telnet с использованием шифрования SSL, как делает это SSH и не включая эмцляцию 5250. С OS/400, 992 порт является по умолчанию портом защищённого Telnet.

Вид данных в Telnet

Все байты кроме 0xff передаются по Telnet как есть. Поэтому клиент Telnet может использоваться для установки интерактивной чистой TCP-сессии, и обычно такая не использующая IAC(0xff или 255) считается функционально идентичной. Однако, на деле всё не так: существуют иные правила виртуального терминала NVT, такие как требование сопровождения символа возврата каретки пустым символом NULL, которые отличают протокол Telnet от чистой сессии TCP. С другой стороны сегодня множество систем обладают настоящим необработанным TCP, например netcat или socat на UNIX и PuTTY на Windiws, которые можно использовать чтобы вручную обмениваться данными с другими службами без специального клиентского ПО. Тем не менее, Telnet всё ещё используется в отладке некоторых сетевых служб, таких как SMTP, IRC, HTTP, FTP или серверов POP3 - Telnet посылает команды к серверам и исследует ответы, но из всех этих стандартов только FTP использует специфичный формат данных Telnet

Ещё одно отличие Telnet от необработанного сеанса TCP - Telnet по умолчанию не чисто восьмибитный. Восьмибитный режим может быть согласован, но октеты высокого набора битов могут быть искажены до согласования, и это очевидно не требуется в не-Telnet соединении. 8-битный режим предназначен для передачи двоичных данных, а не символов. Стандарт предполагает интерпретацию кодов 000-176 как ASCII, но не предполагает значения для октетов высокого набора битов. Была попытка представить переключаемую опцию поддержки кодировки символов (например, как у HTTP), но сейчас ничего не известно о её актуальной программной поддержке

Связанные RFC

Интернет-стандарты

  • RFC 854, Telnet Protocol Specification
  • RFC 855, Telnet Option Specifications
  • RFC 856, Telnet Binary Transmission
  • RFC 857, Telnet Echo Option
  • RFC 858, Telnet Suppress Go Ahead Option
  • RFC 859, Telnet Status Option
  • RFC 860, Telnet Timing Mark Option
  • RFC 861, Telnet Extended Options: List Option

Предполагаемые стандарты

  • RFC 885, Telnet end of record option
  • RFC 1073, Telnet Window Size Option
  • RFC 1079, Telnet terminal speed option
  • RFC 1091, Telnet terminal-type option
  • RFC 1096, Telnet X display location option
  • RFC 1123, Requirements for Internet Hosts - Application and Support
  • RFC 1184, Telnet Linemode Option
  • RFC 1372, Telnet Remote Flow Control Option
  • RFC 1572, Telnet Environment Option
  • RFC 2941, Telnet Authentication Option
  • RFC 2942, Telnet Authentication: Kerberos Version 5
  • RFC 2943, TELNET Authentication Using DSA
  • RFC 2944, Telnet Authentication: SRP
  • RFC 2946, Telnet Data Encryption Option
  • RFC 4248, The telnet URI Scheme

Информационные/экспериментальные

  • RFC 1143, The Q Method of Implementing TELNET Option Negotiation
  • RFC 1571, Telnet Environment Option Interoperability Issues

Остальные RFC

Telnet клиенты

  • PuTTY - свободный клиент для Windiws и Linux с открытым исходынм кодом, поддерживает SSH, Telnet, rlogin и чистый TCP
  • AbsoluteTelnet - клиент для Windows, поддерживает SSH и SFTP
  • RUMBA - эмулятор терминала
  • Line Mode Browser - командная строка браузера.
  • NCSA Telnet
  • TeraTerm
  • ZOC Terminal
  • SyncTERM BBS - поддерживает Telnet, SSHv2, rlogin, X/Y/ZMODEM, доступе на Windiws, *nix и Mac OS X.
  • NetRunner BBS клиент для BBS ANSI. Использует современный, основанный на SDL2 механизм эмуляции, поэтому обеспечивает очень точную и чёткую эмуляцию DOS. Доступен на Linux и Windows.
  • Rtelnet - клиентская версия SOCKS Telnet, обеспечивая подобную функциональность Telnet к тем узлам, которые находятся после брандмауэра и NAT.
  • Inetutils - включает клиент и сервер Telnet, установлен по умолчанию на многих GNU/Linux дистрибутивах.

Примечания

  1. Находится в %SystemRoot%\System32\telnet.exe

Ссылки