Telnet
Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control information in an 8-bit byte oriented data connection over the Transmission Control Protocol.
Telnet was developed in 1969 beginning with RFC 15, extended in RFC 855, and standardized as Internet Engineering Task Force Internet Standard STD 8, one of the first Internet standards. The name stands for "teletype network".
Historically, Telnet provided access to a command-line interface on a remote host. However, because of serious security concerns when using Telnet over an open network such as the Internet, its use for this purpose has waned significantly in favor of SSH.
The term telnet is also used to refer to the software that implements the client part of the protocol. Telnet client applications are available for virtually all computer platforms. Telnet is also used as a verb. To telnet means to establish a connection using the Telnet protocol, either with a command line client or with a graphical interface. For example, a common directive might be: "To change your password, telnet into the server, log in and run the passwd command." In most cases, a user would be telnetting into a Unix-like server system or a network device.
History and standards
Telnet is a client-server protocol, based on a reliable connection-oriented transport. Typically, this protocol is used to establish a connection to Transmission Control Protocol port number 23, where a Telnet server application is listening. Telnet, however, predates TCP/IP and was originally run over Network Control Program protocols.Even though Telnet was an ad hoc protocol with no official definition until March 5, 1973, the name actually referred to Teletype Over Network Protocol as the RFC 206 on Telnet makes the connection clear:
Essentially, it used an 8-bit channel to exchange 7-bit ASCII data. Any byte with the high bit set was a special Telnet character. On March 5, 1973, a Telnet protocol standard was defined at UCLA with the publication of two NIC documents: Telnet Protocol Specification, NIC 15372, and Telnet Option Specifications, NIC 15373.
Many extensions were made for Telnet because of its negotiable options protocol architecture. Some of these extensions have been adopted as Internet standards, IETF documents STD 27 through STD 32. Some extensions have been widely implemented and others are proposed standards on the IETF standards track
Telnet is best understood in the context of a user with a simple terminal using the local Telnet program to run a logon session on a remote computer where the user's communications needs are handled by a Telnet server program.
Security
When Telnet was initially developed in 1969, most users of networked computers were in the computer departments of academic institutions, or at large private and government research facilities. In this environment, security was not nearly as much a concern as it became after the bandwidth explosion of the 1990s. The rise in the number of people with access to the Internet, and by extension the number of people attempting to hack other people's servers, made encrypted alternatives necessary.Experts in computer security, such as SANS Institute, recommend that the use of Telnet for remote logins should be discontinued under all normal circumstances, for the following reasons:
- Telnet, by default, does not encrypt any data sent over the connection, and so it is often feasible to eavesdrop on the communications and use the password later for malicious purposes; anybody who has access to a router, switch, hub or gateway located on the network between the two hosts where Telnet is being used can intercept the packets passing by and obtain login, password and whatever else is typed with a packet analyzer.
- Most implementations of Telnet have no authentication that would ensure communication is carried out between the two desired hosts and not intercepted in the middle.
- Several vulnerabilities have been discovered over the years in commonly used Telnet daemons.
It is of note that there are a large number of industrial and scientific devices which have only Telnet available as a communication option. Some are built with only a standard RS-232 port and use a serial server hardware appliance to provide the translation between the TCP/Telnet data and the RS-232 serial data. In such cases, SSH is not an option unless the interface appliance can be configured for SSH.
Telnet is still used by hobbyists, especially among Amateur radio operators. The Winlink protocol supports packet radio via a Telnet connection.
Telnet 5250
IBM 5250 or 3270 workstation emulation is supported via custom telnet clients, TN5250/TN3270, and IBM servers. Clients and servers designed to pass IBM 5250 data streams over Telnet generally do support SSL encryption, as SSH does not include 5250 emulation. Under OS/400, port 992 is the default port for secured telnet.Telnet data
All data octets except 0xff are transmitted over Telnet as is.Some use Telnet client applications to establish an interactive TCP session to a port other than the Telnet server port. Connections to such ports do not use IAC and all octets are sent to the server without interpretation. For example, a user could make an HTTP request by hand by using a command line version of the telnet client to a web server on TCP port 80 as follows:
$ telnet www.example.com 80
GET /path/to/file.html HTTP/1.1
Host: www.example.com
Connection: close
However such services are implemented through network virtual terminal rules and Telnet does not handle some of the other NVT requirements, such as the requirement for a bare carriage return character to be followed by a NUL character.
There are other TCP terminal clients, such as netcat or socat on UNIX and PuTTY on Windows, which handle such requirements. Nevertheless, Telnet may still be used in debugging network services such as SMTP, IRC, HTTP, FTP or POP3, to issue commands to a server and examine the responses.
Another difference between Telnet and other TCP terminal clients is that Telnet is not 8-bit clean by default. 8-bit mode may be negotiated, but octets with the high bit set may be garbled until this mode is requested, as 7 bit is the default mode. The 8-bit mode is intended to transmit binary data, not ASCII characters. The standard suggests the interpretation of codes 0000–0176 as ASCII, but does not offer any meaning for high-bit-set data octets. There was an attempt to introduce a switchable character encoding support like HTTP has, but nothing is known about its actual software support.
Related RFCs
Internet Standards
- 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
Proposed Standards
- 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
Informational/experimental
- RFC 1143, The Q Method of Implementing TELNET Option Negotiation
- RFC 1571, Telnet Environment Option Interoperability Issues
Other RFCs
- RFC 1041, Telnet 3270 Regime Option
- RFC 1205, 5250 Telnet Interface
- RFC 2217, Telnet Com Port Control Option
- RFC 4777, IBM's iSeries Telnet Enhancements
Telnet clients
- PuTTY and plink command line are a free, open-source SSH, Telnet, rlogin, and raw TCP client for Windows, Linux, and Unix.
- AbsoluteTelnet is a telnet client for Windows. It also supports SSH and SFTP,
- RUMBA
- Line Mode Browser, a command line web browser
- NCSA Telnet
- TeraTerm
- SecureCRT from Van Dyke Software
- ZOC Terminal
- SyncTERM BBS terminal program supporting Telnet, SSHv2, RLogin, Serial, Windows, *nix, and Mac OS X platforms, X/Y/ZMODEM and various BBS terminal emulations
- Rtelnet is a SOCKS client version of Telnet, providing similar functionality of telnet to those hosts which are behind firewall and NAT.
- Inetutils includes a telnet client and server and is installed by default on many GNU/Linux distributions.
- telnet.exe command line utility included in default installation of many version of Microsoft Windows OS.