Main Page | See live article | Alphabetical index

Telnet

Telnet is a network protocol used on the Internet. IETF document STD 8 (aka RFC 854 and RFC 855) starts:

The purpose of the TELNET Protocol is to provide a fairly general, bi-directional, eight-bit byte oriented communications facility.

It is typically used to provide user oriented command line login sessions between hosts on the internet.

By extension, telnet is also the name of a program that a user can use to invoke a Telnet session to a remote host; the telnet program provides the client part of the protocol. Telnet clients have been available on most Unix systems for many years, and are available for virtually all types of computers.

"To telnet" is also used as a verb meaning to establish or use such a connexion, as in, "If you need to change your password you need to telnet to the server and run the passwd command".

Protocol details

Telnet is a client-server protocol, based on TCP, and clients generally connect to port 23 on the host providing the service (though like many protocols in use on the Internet which port to use is fairly easy to change). Partly because of the design of the protocol and partly because of the flexibility typically provided by telnet programs, it is also possible to use a Telnet program to establish an interactive TCP connection to some other service on an internet host. A classic use of this is telnetting to port 25 (where typically an SMTP server is to be found) to debug a mail server.

The Telnet protocol can be divided into a core and a set of extensions. The core protocol is described by IETF documents RFC 854 and RFC 855 which are also collected together in STD 8. STD 8 defines fairly basic operating characteristics of the protocol and a means of defining and implementing extensions. There are many extensions, some of which have been adopted as Internet Standards, some of which haven't. IETF STD document numbers from 27 through to 32 define various Telnet extensions (most of which are extremely common). Of the remaining extensions the most useful ones are probably those that are on the IETF standards track as proposed standards; details can be found in STD 1.

Security

There are three main problems with Telnet, making it a bad choice for modern systems from the point of view of security:

In environments where security is important, such as on the public Internet, telnet should not be used. Telnet sessions are unencrypted. This means that anybody who has access to any router, switch, or gateway located on the network between the two hosts where telnet is being used can intercept the telnet packets passing by and easily obtain login and password information (and whatever else is typed) with any of several common utilities like tcpdump and Ethereal.

These flaws have seen the usage of the Telnet protocol drop rapidly in favor of a more secure and functional protocol called SSH, released in 1998. SSH provides all functionality present in telnet, with the addition of strong encryption to prevent sensitive data such as passwords from being intercepted, and public key authentication, to ensure that the remote computer is actually who it claims to be.

Experts in Computer Security, such as SANS, and the members of the comp.os.linux.security newsgroup recommend that the use of Telnet for remote logins should be discontinued under all normal circumstances.

When telnet was being developed in the early 1980s, 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 of a concern as it became after the bandwidth explosion of the 1990s. With the exponential rise in the number of people with access to the Internet, and by extension, the number of people attempting to crack into other people's servers, telnet should generally not ever be used on networks with Internet connectivity.

Telnet clients are still occasionally used to manually "talk" to other services. It is sometimes used in debugging network services such as an SMTP server, by serving as a simple way to send commands to the server and examine the responses.