Telnet(TELNET [ 1 ]と表記されることもある)は、ローカルエリアネットワークまたはインターネット上のリモートシステムの仮想端末へのアクセスを提供するクライアント/サーバアプリケーションプロトコルです。[ 2 ]これは双方向8ビット通信用のプロトコルです。その主な目的は、端末デバイスと端末指向のプロセスを接続することでした。[ 1 ]
「Telnet」という名前は、2 つのものを指します。1 つは 2 つの当事者がどのように通信するかを規定するプロトコル、もう 1 つはプロトコルをサービスとして実装するソフトウェア アプリケーションです。[ 2 ]ユーザー データは、伝送制御プロトコル(TCP) 上の8 ビットバイト指向のデータ接続で、Telnet 制御情報とインバンドで混在します。Telnet はユーザー名やパスワードを含むすべての情報を平文で送信するため、ルーターのリモート管理などのセキュリティに敏感なアプリケーションには推奨されません。[ 2 ] [ 3 ]この目的での Telnet の使用は、 SSHに取って代わられ、大幅に減少しています。[ 4 ]暗号化を提供する Telnet の拡張機能がいくつか提案されています。[ 5 ]
Telnet プロトコルは、信頼性の高いコネクション指向トランスポート上で動作するクライアント/サーバー プロトコルです。多くの場合、Telnet クライアントはTCPを介してポート23 または 2323に接続し、そこで Telnet サーバー アプリケーションが待機しています。[ 1 ] [ 6 ] [ 7 ] Telnet プロトコルは、任意の端末をネットワーク仮想端末 (NVT) として抽象化します。クライアントは、サーバーにメッセージを送信する際に、NVT コードを使用して NVT をシミュレートする必要があります。
TelnetはUDP/IPよりも前に登場し、元々はネットワーク制御プロトコル(NCP)上で動作していました。[ 8 ] Telnetサービスは、シンプルな端末を持つユーザーがローカルのTelnetプログラム(クライアントプログラムとして知られています)を使用してリモートコンピュータ上でログオンセッションを実行し、そのリモートコンピュータ上でユーザーの通信ニーズがTelnetサーバープログラムによって処理されるという状況で最もよく理解できます。
Telnetサービスとは、Telnetプロトコルを介してサービスを提供するアプリケーションのことです。ほとんどのオペレーティングシステムは、クライアントにTelnetサービスを提供するためにインストールまたは有効化できるサービスを提供しています。[ 9 ]
公式仕様では、TELNETという名称が表記されていますが、これは頭字語や略語としては使用されていません。[ 1 ]
1972年の論文で、プロトコルの初期形態の1つについて議論する際に、Stephen Crockerらは「TELNET」を「電気通信ネットワーク」の略語として明示的に使用した。[ 10 ]
インターネット研究者のガース・O・ブルーンは、 2015年の著書『WHOIS Running the Internet: Protocol, Policy, and Privacy 』の中で、Telnetは元々「Teletype Over Network Protocol」の略だったと主張している。[ 11 ]
Telnetはもともと1969年にARPANET向けに開発されました。 [ 12 ]当初は正式な仕様のないアドホックプロトコルでしたが、 [ 13 ] 1970年代に多数のRFCを含む広範な作業を経て、 RFC 854とRFC 855で正式に形式化され、これらがインターネット標準8を構成しています。[ 12 ] [ 14 ]
それ以来、多くの追加のRFCがTelnet仕様を更新または拡張し、元の標準の問題点に対処し、新しい機能を追加しました。[ 12 ]これらの拡張の一部は、特に標準27から32(下記参照)としてインターネット標準としても採用されています。
Telnet は、パスワードやフィンガープリンティングなどの機密情報をパケットスニッフィングするなど、ネットワークベースのサイバー攻撃に対して脆弱です。[ 3 ] [ 15 ] [ 16 ] Telnet サービスは、バナーをパケットスニッフィングすることで、サーバーに関する情報 (ホスト名、IP アドレス、ブランドなど) を漏洩するために悪用される可能性があります。この情報は、Telnet サービスが認証なしで接続を受け入れるかどうかを判断するために検索できます。Telnet は、不適切な設定のため、マルウェアによって頻繁に悪用されます。 [ 7 ] Telnet は、特にUPnP、CoAP、MQTT、AMQP、およびXMPPと比較した場合、他の一般的なプロトコルよりも頻繁に攻撃者の標的になります。一般的な標的デバイスは、モノのインターネットデバイス、ルーター、およびモデムです。
SANS Institute は、以下の理由から、通常の状況下ではリモート ログインに Telnet を使用することを中止することを推奨しています。[ 17 ]
Telnet の拡張機能は、上記の懸念に対処するトランスポート層セキュリティ(TLS) セキュリティとシンプル認証およびセキュリティ層(SASL) 認証を提供します。 [ 5 ] ただし、ほとんどの Telnet 実装はこれらの拡張機能をサポートしておらず、バナー情報の解析などの他の脆弱性には対処していません。[ 16 ] SSHv2 がサポートされていない場合、または他のアプリケーション データを Telnet サーバーが存在するリモート ネットワークに安全にトンネルするために VPN が既に使用されている場合は、 VPN経由の Telnetが有効なオプションです。ただし、注意が必要です。LAN に追加の暗号化やVLANなど、他のデバイスによる盗聴や変更に対する追加のセキュリティ対策がない限り、 VPNは Telnet サーバー自体で終了するのが理想的です。これは、Telnet トラフィックが復号化された後、安全でない平文の形式で VPN サーバーから送信されるためです。VPN ソフトウェアは、証明書ベース/公開鍵相互認証を使用することが望ましい、監査が徹底されている信頼できるもの (例: OpenVPN、WireGuard、IPsec )である必要があります。
IBM 5250 または 3270 ワークステーションのエミュレーションは、カスタム Telnet クライアント、TN5250 / TN3270、およびIBM iシステムを介してサポートされます。Telnetを介してIBM 5250データ ストリームを渡すように設計されたクライアントおよびサーバーは、一般的にSSL暗号化をサポートしています。これは、SSH には 5250 エミュレーションが含まれていないためです。IBM i (OS/400 とも呼ばれる) では、ポート 992 が TelnetS (Telnet over SSL/TLS) のデフォルト ポートです。[ 18 ]
歴史的に、Telnet はリモート ホスト上のコマンドライン インターフェイスへのアクセスを提供していました。しかし、インターネットなどのオープン ネットワークで Telnet を使用すると深刻なセキュリティ上の懸念が生じるため、この目的での Telnet の使用はSSHに取って代わられ、大幅に減少しました。[ 4 ]リモート管理での Telnet の使用は、特にパブリックインターネット上で、セキュア シェル(SSH) プロトコルに取って代わられ、急速に減少しています。[ 2 ] [ 19 ] SSH は、パスワードなどの機密データが傍受されるのを防ぐ強力な暗号化と、リモート コンピュータが実際に主張しているコンピュータであることを保証するための公開鍵認証を追加して、Telnet の多くの機能を提供します。
Telnet プロトコルは、より新しい通信メカニズムをサポートしていない旧式の機器で主に使用されています。[ 20 ]例えば、多くの産業用および科学用機器では、通信オプションとして Telnet しか利用できません。標準のRS-232ポートのみを備え、シリアルサーバハードウェアアプライアンスを使用して TCP/Telnet データと RS-232 シリアルデータ間の変換を提供するものもあります。このような場合、インターフェースアプライアンスを SSH 用に構成できない限り (または SSH をサポートするものに交換できない限り)、SSH はオプションになりません。
Telnetのサポートは新しいアプリケーションでは非常に珍しいものになっているが、アマチュア無線家[ 21 ]やマルチユーザーダンジョン[ 22 ]は引き続きそれを使用している。
セキュリティ研究者らは、2021年時点でインターネット上の7,096,465の公開システムが引き続きTelnetを使用していると推定している。ただし、この数の推定値は、デフォルトのTCPポート23を超えてスキャンされるポートの数によって大きく異なっている。[ 7 ]
Telnetクライアントは、 SMTP、IRC、HTTPサーバーなどのネットワークサービスのデバッグに使用でき、サーバーにコマンドを発行して応答を調べることができます。この場合、Telnetクライアントが標準のTelnetサーバーポート以外のポートにTCP接続を確立すると、Telnetプロトコルは使用されず、代わりにTCP接続を介してデータを直接送受信できます。[ 23 ]
Telnetの技術的な詳細は、 RFC 854を含むさまざまな仕様によって定義されています。[ 1 ]
Telnetコマンドは少なくとも2バイトで構成されます。[ 1 ]最初のバイトはIACエスケープ文字(バイト255)で、その後に特定のコマンドのバイトコードが続きます。
0xff を除くすべてのデータオクテットは、そのまま Telnet で送信されます。(0xff、または 10 進数で 255 は、次のバイトが Telnet コマンドであることを示す IAC バイト (コマンドとして解釈) です。ストリームに 0xff を挿入するコマンドは 0xff なので、Telnet プロトコルでデータを送信する際には、0xff を二重にしてエスケープする必要があります。) [ 1 ]
Telnetにはさまざまなオプションがあり、Telnetを実装する端末はそれらをサポートする必要があります。
1977年の映画『スター・ウォーズ エピソードIV 新たなる希望』が、テルネット経由で配信されるASCIIアート映画として再現された。 [ 26 ]