Telnet (сокращение от «телетайпная сеть») [1] [2] — протокол клиент-серверных приложений , который обеспечивает доступ к виртуальным терминалам удаленных систем в локальных сетях или в Интернете . [3] Это протокол двунаправленной 8-битной связи. Его основной целью было соединить терминальные устройства и терминально-ориентированные процессы. [4]
Telnet состоит из двух компонентов: (1) самого протокола, который определяет, как две стороны должны взаимодействовать, и (2) программного приложения, предоставляющего эту услугу. Пользовательские данные перемежаются внутриполосно с управляющей информацией Telnet в 8-битно- байтовом соединении для передачи данных по протоколу управления передачей (TCP). Telnet был разработан в 1969 году, начиная с RFC 15, расширен в RFC 855 и стандартизирован как Интернет-стандарт STD 8 Рабочей группы по проектированию Интернета (IETF) , один из первых Интернет-стандартов. [1] [2] Telnet передает всю информацию, включая имена пользователей и пароли, в виде открытого текста, поэтому его не рекомендуется использовать для приложений, чувствительных к безопасности, таких как удаленное управление маршрутизаторами. [3] [5] Использование Telnet для этой цели значительно уменьшилось в пользу SSH . [6] Были предложены некоторые расширения Telnet, обеспечивающие шифрование. [7]
Telnet состоит из двух компонентов: (1) самого протокола и (2) сервисного компонента. Протокол telnet — это протокол клиент-сервер , основанный на надежном транспорте , ориентированном на соединение . [3] Этот протокол используется для установления соединения с портом TCP (TCP) номер 23 или 2323, который прослушивает приложение сервера Telnet. [4] [8] [9] Протокол Telnet абстрагирует любой терминал как сетевой виртуальный терминал (NVT). Клиент должен имитировать NVT, используя коды NVT при обмене сообщениями с сервером.
Telnet появился раньше UDP/IP и первоначально работал на основе протокола управления сетью (NCP). [10] Службу telnet лучше всего понимать в контексте пользователя с простым терминалом, использующего локальную программу Telnet (известную как клиентская программа) для запуска сеанса входа в систему на удаленном компьютере, где потребности пользователя в связи обрабатываются с помощью Telnet. серверная программа.
Несмотря на то, что Telnet был специальным протоколом, не имеющим официального определения до 5 марта 1973 года, [11] название фактически относилось к протоколу Teletype Over Network , поскольку RFC 206 (NIC 7176) в Telnet проясняет связь: [12]
Протокол TELNET основан на понятии виртуального телетайпа и использует 7-битный набор символов ASCII . Таким образом, основная функция пользовательского TELNET заключается в предоставлении средств, с помощью которых его пользователи могут «нажимать» на все клавиши этого виртуального телетайпа. [13]
По сути, он использовал 8-битный канал для обмена 7-битными данными ASCII. Любой байт с установленным старшим битом был специальным символом Telnet. 5 марта 1973 года стандарт протокола Telnet был определен в Калифорнийском университете в Лос-Анджелесе [14] с публикацией двух документов NIC: Спецификация протокола Telnet, NIC 15372, и Спецификации опций Telnet, NIC 15373.
Многие расширения были созданы для Telnet из-за его архитектуры протокола с возможностью согласования опций. Некоторые из этих расширений были приняты в качестве стандартов Интернета , документы IETF от STD 27 до STD 32. Некоторые расширения получили широкое распространение, а другие являются предложенными стандартами в рамках стандартов IETF (см. ниже).
Служба Telnet — это приложение, предоставляющее услуги по протоколу Telnet. Большинство операционных систем предоставляют службу, которую можно установить или включить для предоставления клиентам услуг Telnet. [15]
Telnet уязвим для сетевых кибератак , таких как перехват пакетов конфиденциальной информации, включая пароли и снятие отпечатков пальцев . [5] [16] Службы Telnet также могут быть использованы для утечки информации о сервере (например, имен хостов, IP-адресов и торговой марки) путем перехвата пакетов баннера. Затем эту информацию можно найти, чтобы определить, принимает ли служба Telnet соединение без аутентификации . Telnet также часто используется вредоносными программами из-за неправильной настройки. [9] Фактически, Telnet становится целью злоумышленников чаще, чем другие распространенные протоколы, особенно по сравнению с UPnP , CoAP , MQTT , AMQP и XMPP . Обычно целевыми устройствами являются устройства Интернета вещей , маршрутизаторы и модемы.
Институт SANS рекомендует прекратить использование Telnet для удаленного входа в систему при обычных обстоятельствах по следующим причинам: [17]
Расширения Telnet обеспечивают безопасность транспортного уровня (TLS) и аутентификацию простого уровня аутентификации и безопасности (SASL), которые решают вышеуказанные проблемы. [7] Однако большинство реализаций Telnet не поддерживают эти расширения; и они не устраняют другие уязвимости, такие как анализ информации баннера. [16]
Эмуляция рабочих станций IBM 5250 или 3270 поддерживается через специальные клиенты telnet, TN5250 / TN3270 и системы IBM i . Клиенты и серверы, предназначенные для передачи потоков данных IBM 5250 через Telnet, обычно поддерживают шифрование SSL , поскольку SSH не включает эмуляцию 5250. В IBM i (также известном как OS/400) порт 992 является портом по умолчанию для защищенного Telnet. [18]
Исторически Telnet обеспечивал доступ к интерфейсу командной строки на удаленном хосте. Однако из-за серьезных проблем с безопасностью при использовании Telnet в открытой сети, такой как Интернет, его использование для этой цели значительно уменьшилось в пользу SSH . [19] Использование Telnet для удаленного управления быстро сократилось, особенно в общедоступном Интернете , в пользу протокола Secure Shell (SSH). [3] [20] SSH обеспечивает большую часть функций telnet с добавлением надежного шифрования для предотвращения перехвата конфиденциальных данных, таких как пароли, и аутентификации с открытым ключом , чтобы гарантировать, что удаленный компьютер действительно является тем, за кого себя выдает. .
Клиент Telnet может использоваться при отладке сетевых служб, таких как SMTP , IRC , HTTP , FTP или POP3 , для подачи команд серверу и проверки ответов. [15] . Например, клиентские приложения Telnet могут установить интерактивный сеанс TCP с портом, отличным от порта сервера Telnet. Однако связь с такими портами не использует протокол Telnet, поскольку эти службы просто используют прозрачное 8-битное TCP-соединение, поскольку большинство элементов протокола telnet были разработаны с учетом идеи доступа к интерфейсу командной строки , и ни одна из этих опций или механизмы используются в большинстве других подключений к Интернету.
Например, клиент telnet из командной строки может отправить HTTP-запрос к веб-серверу через TCP-порт 80 следующим образом: [21]
$ telnet www.example.com 80 GET /path/to/file.html Хост HTTP/1.1: www.example.com Соединение: закрыть
В наши дни старый протокол используется лишь в редких случаях для доступа к устаревшему оборудованию десятилетней давности, которое не поддерживает более современные протоколы. [22] Например, большое количество промышленных и научных устройств имеют в качестве опции связи только Telnet. Некоторые из них оснащены только стандартным портом RS-232 и используют аппаратное устройство последовательного сервера для обеспечения преобразования между данными TCP/Telnet и последовательными данными RS-232. В таких случаях SSH невозможен, если интерфейсное устройство не может быть настроено для SSH (или не заменено устройством, поддерживающим SSH).
Telnet обычно используется радиолюбителями для предоставления общественной информации. [23]
Хотя это и не рекомендуется, исследователи безопасности подсчитали, что 7 096 465 устройств, подключенных к Интернету, продолжают использовать Telnet, однако часто оценивают гораздо меньше, поскольку большинство оценок сканируют только TCP-порт 23. [9]
Технические детали Telnet определены различными спецификациями, включая RFC 854. [4]
Команды Telnet состоят как минимум из двух байтов. [4] Первый байт — это escape-символ IAC (обычно байт 255), за которым следует байт-код данной команды:
Все октеты данных , кроме 0xff, передаются через Telnet как есть. (0xff или 255 в десятичном формате — это байт IAC (интерпретировать как команду), который сигнализирует о том, что следующий байт — это команда telnet. Команда для вставки 0xff в поток — это 0xff, поэтому 0xff необходимо экранировать, удваивая его при отправке данных. по протоколу Telnet.) [4]
Telnet также имеет множество опций, которые должны поддерживать терминалы, реализующие Telnet.
«Звездные войны: Эпизод IV – Новая надежда» 1977 года воссоздан в виде художественного фильма с текстом , передаваемого через Telnet. [26]
{{cite web}}
: CS1 maint: others (link):10
была вызвана, но так и не определена (см. страницу справки ).:9
была вызвана, но так и не определена (см. страницу справки ).