Telnet(テルネット)とは
Telnet(Telecommunications Network)は、IPネットワーク上で、遠隔地にある
サーバーや
ルーターなどの機器を、
端末から操作するための
通信プロトコル、およびそのプロトコルを利用するソフトウェアです。RFC 854でその詳細が規定されています。
概要
Telnetクライアントは、Telnet
サーバーとの間にソケットを開き、単純なテキストベースでの通信を行います。通常、ポート番号23番を使用します。かつてはリモート
端末を操作することが主な目的でしたが、現在ではポート番号を変更し、様々なサービスのデバッグ用途に使われるケースが増えています。
通信の仕組み
Telnetの基本的な通信の流れは以下の通りです。
1. クライアントが
サーバーの23番ポートに接続を試みます。
2. 接続が確立されると、クライアントはキーボードから入力したコマンドやデータをテキスト形式で
サーバーに送信します。
3.
サーバーは受信したコマンドを実行し、その結果をテキスト形式でクライアントに返信します。
4. クライアントは受信したテキストを表示します。
この一連の流れを通じて、遠隔にある機器を操作することができます。
脆弱性
Telnetの大きな問題点は、認証を含む全ての通信が暗号化されず、平文のまま送信されることです。このため、
パスワードなどの機密情報が第三者に容易に盗み取られる危険性があります。このセキュリティ上の脆弱性から、近年では、通信を暗号化するSSH(
Secure Shell)などの代替プロトコルが広く利用されるようになっています。
UNIXは、当初から複数のユーザーが同時にシステムを利用することを前提に開発されていました。そのため、IPネットワークやTelnetが登場する以前から、
シリアルポートなどを介して複数の
端末を接続することができました。Telnetは、この
端末とホスト間の通信をIPネットワーク上で実現するためのプロトコルとして開発されました。
端末エミュレータとしての機能
一部のTelnetクライアントは、VT100などの
端末エミュレータとして動作し、テキストモードだけでなく、画面モードも実現します。さらに、Telnetプロトコルをバイナリモードで使用し、IBM 3270のデータストリームを転送することで、IBM 3270
端末をエミュレートするTN3270プロトコルも開発されました。
代表的なTelnetクライアント
以下に代表的なTelnetクライアントをいくつか挙げます。
Tera Term
Xshell
NCSA Telnet
PuTTY
TELNET関連のRFC
以下にTelnetに関連する主要なRFC(
Request for Comments)を記載します。
RFC 215 - NCP、ICP、and TELNET (1971年8月)
RFC 736 - TELNET SUPDUP Option (
1977年10月)
RFC 764 - TELNET PROTOCOL SPECIFICATIONS (1980年6月)
RFC 854 - TELNET PROTOCOL Specification (
1983年5月)
RFC 855 - TELNET OPTION SPECIFICATIONS (1983年5月)
RFC 884 - TELNET TERMINAL TYPE OPTION (
1983年12月)
RFC 1205 - 5250 Telnet Interface (1991年2月)
RFC 1372 - Telnet Remote Flow Control Option (
1992年10月)
RFC 1408 - Telnet Environment Option (1993年1月)
RFC 1412 - Telnet Authentication:SPX (
1993年2月)
RFC 1416 - Telnet Authentication Option (1993年2月)
RFC 2355 - TN3270 Enhancements (1998年6月)
* RFC 2946 - Telnet Data Encryption Option (2000年9月)
まとめ
Telnetは、ネットワークを介して遠隔の機器を操作するための基本的なプロトコルです。しかし、セキュリティ上のリスクがあるため、現在ではより安全なSSHなどのプロトコルが推奨されています。それでもなお、デバッグや特定の用途で利用されることがあり、その歴史的背景と仕組みを理解することは、ネットワーク技術を学ぶ上で重要です。