テルネット

Telnet(「telecommunications network」の略)[1]は、ローカルエリアネットワークまたはインターネット上のリモートシステム仮想端末へのアクセスを提供するクライアント/サーバー アプリケーションプロトコルです[2]これは双方向8ビット通信用のプロトコルです。その主な目的は、端末デバイスと端末指向のプロセスを接続することでした。[3]

Telnet は 2 つのコンポーネントから構成されます。(1) 2 者が通信する方法を指定するプロトコル自体と、(2) サービスを提供するソフトウェア アプリケーションです。ユーザー データは、伝送制御プロトコル(TCP) 上の8 ビットバイト指向データ接続で Telnet 制御情報とともに帯域内に散在しています。Telnet は 1969 年にRFC  15から秘密技術として開発され、 RFC  855 で拡張され、インターネット標準の最初の 1 つであるインターネット技術タスク フォース(IETF) インターネット標準STD 8として標準化されました。[4] [5] Telnet はユーザー名とパスワードを含むすべての情報をプレーン テキストで送信するため、ルーターのリモート管理などのセキュリティが重要なアプリケーションには推奨されません[2] [6]この目的での Telnet の使用はSSHに取って代わられ、大幅に減少しました[7]暗号化を提供する Telnet の拡張機能がいくつか提案されています。[8]

コンポーネント

Telnetは、(1)プロトコル自体と(2)サービスコンポーネントの2つのコンポーネントで構成されています。Telnetプロトコルは 、信頼性の高い接続指向トランスポートに基づくクライアントサーバープロトコルです。[2]このプロトコルは、 Telnetサーバーアプリケーションがリッスンしている伝送制御プロトコル(TCP)ポート番号23または2323 への接続を確立するために使用されます。 [3] [9] [10] Telnetプロトコルは、任意の端末をネットワーク仮想端末(NVT)として抽象化します。クライアントは、サーバーにメッセージを送信するときに、NVTコードを使用してNVTをシミュレートする必要があります。

TelnetはUDP/IPより古く、もともとネットワーク制御プロトコル(NCP)上で動作していました。[11] Telnetサービスは、単純な端末を持つユーザーがローカルのTelnetプログラム(クライアントプログラムと呼ばれる)を使用してリモートコンピュータでログオンセッションを実行し、ユーザーの通信ニーズがTelnetサーバープログラムによって処理されるという状況で最もよく理解されます。

Telnet プロトコル

歴史

Telnetは1973年3月5日まで公式な定義のないアドホックプロトコルであったが、[12]その名前は実際にはTeletype Over Network Protocolを指しており、 Telnetに関するRFC  206(NIC 7176)がその関連性を明確に示している。[13]

TELNETプロトコルは、7ビットASCII文字セットを採用した仮想テレタイプの概念に基づいています。ユーザーTELNETの主な機能は、ユーザーがその仮想テレタイプのすべてのキーを「押す」ことができる手段を提供することです。[14]

本質的には、8 ビット チャネルを使用して 7 ビットの ASCII データを交換します。上位ビットが設定されているバイトは、特別な Telnet 文字です。1973 年 3 月 5 日、Telnet プロトコル標準がUCLA [15]で定義され、2 つの NIC ドキュメント (Telnet プロトコル仕様、NIC 15372、および Telnet オプション仕様、NIC 15373) が公開されました。

拡張機能

Telnet にはネゴシエート可能なオプション プロトコル アーキテクチャがあるため、多くの拡張機能が加えられました。これらの拡張機能の一部はインターネット標準として採用されており、IETF ドキュメント STD 27 から STD 32 まであります。一部の拡張機能は広く実装されており、その他は IETF 標準化トラックで提案されている標準です (以下を参照)。

Telnet サービス

Telnetサービスは、Telnetプロトコルを介してサービスを提供するアプリケーションです。ほとんどのオペレーティングシステムは、クライアントにTelnetサービスを提供するためにインストールまたは有効化できるサービスを提供しています。[16]

セキュリティの脆弱性

Telnetは、パスワードやフィンガープリンティングなどの機密情報をパケットスニッフィングするなど、ネットワークベースのサイバー攻撃に対して脆弱です。[6] [17] Telnetサービスは、バナーをパケットスニッフィングすることで、サーバーに関する情報(ホスト名、IPアドレス、ブランドなど)を漏洩するために悪用される可能性もあります。 この情報を検索して、Telnetサービスが認証なしで接続を受け入れるかどうかを判断できます。 Telnetは、不適切に構成されているため、マルウェアに悪用されることも頻繁にあります。 [10]実際、Telnetは、特にUPnPCoAPMQTTAMQPXMPPと比較すると、他の一般的なプロトコルよりも頻繁に攻撃者の標的になっています[要出典] 。 標的となる一般的なデバイスは、 IoTデバイス、ルーター、モデム です。

SANS研究所は、以下の理由により、通常の状況下ではリモートログインにTelnetを使用することを中止することを推奨している。[18]

Telnetの拡張機能は、上記の懸念に対処するトランスポート層セキュリティ(TLS)セキュリティとシンプル認証およびセキュリティ層(SASL)認証を提供します。 [8] しかし、ほとんどのTelnet実装はこれらの拡張機能をサポートしておらず、バナー情報の解析などの他の脆弱性にも対処していません。[17]

IBM 5250 または 3270 ワークステーション エミュレーションは、カスタム Telnet クライアント、TN5250 / TN3270、およびIBM iシステムを介してサポートされます。Telnet経由でIBM 5250データ ストリームを渡すように設計されたクライアントとサーバーは、SSH には 5250 エミュレーションが含まれていないため、通常SSL暗号化をサポートします。IBM i (OS/400 とも呼ばれる) では、ポート 992 がセキュリティ保護された Telnet のデフォルト ポートです。[19]

用途

help コマンドの出力と # プロンプトが表示された黒い画面のスクリーンショット。
ルータからMicrosoft Telnetクライアントで実行されるBusyBox 。

歴史的用途

歴史的に、Telnet はリモート ホストのコマンド ライン インターフェイスへのアクセスを提供していました。しかし、インターネットなどのオープン ネットワーク上で Telnet を使用する場合のセキュリティ上の重大な懸念から、この目的での使用は大幅に減少し、 SSHが使用されるようになりました。[20]リモート管理での Telnet の使用は、特にパブリックインターネット上では急速に減少し、 Secure Shell (SSH) プロトコルが使用されるようになりました。 [2] [21] SSH は、パスワードなどの機密データが傍受されるのを防ぐ強力な暗号化と、リモート コンピューターが実際にそのコンピューターであることを確認するため の公開鍵認証を追加して、Telnet の機能の多くを提供します。

現代の用途

Telnetクライアントは、 SMTPIRCHTTPFTPPOP3などのネットワークサービスのデバッグに使用して、サーバーにコマンドを発行し、応答を調べることができます。[16]たとえば、Telnetクライアントアプリケーションは、Telnetサーバーポート以外のポートに対話型TCPセッションを確立できます。ただし、このようなポートとの通信にはTelnetプロトコルは関係ありません。これらのサービスは透過的な8ビットTCP接続を使用するだけであり、Telnetプロトコルのほとんどの要素はコマンドラインインターフェイスにアクセスするというアイデアに基づいて設計されており、これらのオプションやメカニズムは他のほとんどのインターネットサービス接続では採用されていないためです。

例えば、コマンドラインのtelnetクライアントは次のようにTCPポート80上のWebサーバーにHTTPリクエストを送信することができます。[22]

$ telnet  www.example.com 80 GET /path/to/file.html HTTP/1.1ホスト: www.example.com接続: close 



古いプロトコルは、最近では、より新しいプロトコルをサポートしていない数十年前のレガシー機器にアクセスする場合にのみまれに使用されます。[ 23]たとえば、多くの産業用および科学用デバイスでは、通信オプションとして Telnet しか利用できません。標準のRS-232ポートのみで構築され、シリアル サーバー ハードウェア アプライアンスを使用して TCP/Telnet データと RS-232 シリアル データ間の変換を行うものもあります。このような場合、インターフェイス アプライアンスを SSH 用に構成できないかぎり (または SSH をサポートするアプライアンスに交換しない限り)、SSH はオプションではありません。

Telnetは、アマチュア無線家が公共情報を提供するためによく使用されます。 [24]

セキュリティ研究者は、推奨されていないにもかかわらず、2021年時点でインターネット上の7,096,465の無防備なシステムがTelnetを使用し続けていると推定しています。ただし、この数の推定値は、デフォルトのTCPポート23を超えてスキャンされたポートの数に応じて大幅に異なります。[10]

技術的な詳細

Telnetの技術的な詳細は、 RFC  854を含むさまざまな仕様によって定義されています。[3]

USASCII制御コード

名前 バイトコード 説明 注記
NULL 0
改行 10
キャリッジリターン 13
ベル 7
バックスペース 8
水平タブ 9
垂直タブ 11
フォームフィード 12
出典: J.ポステルとレイノルズ(1983)[3]

Telnetコマンド

Telnetコマンドは少なくとも2バイトで構成されます。[3]最初のバイトはIACエスケープ文字(通常はバイト255)で、その後に特定のコマンドのバイトコードが続きます。

名前 バイトコード 説明 注記
SE(サブネゴシエーション終了) 240 プロトコルメカニズムのサブサービスのネゴシエーション(またはデータブロック)の終了
NOP(操作なし) 241 何もしないデータパケット
データマーク 242
壊す 243
割り込みプロセス 244 相手方に現在のプロセスを終了するよう要求する
出力を中止 245 相手に出力の送信を停止するよう要求する
そこにいる? 246
文字を消去 247
線を消す 248
どうぞ 249
SB(サブネゴシエーション開始) 250 プロトコルメカニズムのサブサービスのネゴシエーションを開始する
意思 251 相手にプロトコルメカニズムを使用することを通知する
しません 252 相手にプロトコルメカニズムを使用しないことを通知する
する 253 相手にプロトコルメカニズムを使用するよう指示する
してはいけないこと 254 相手にプロトコルメカニズムを使用しないように指示する
国際交流協会 255 シーケンス初期化子/エスケープ文字
出典: J.ポステルとレイノルズ(1983)[3]

コマンドとして解釈

0xff を除くすべてのデータオクテットは、そのまま Telnet 経由で送信されます。(0xff (10 進数で 255) は、次のバイトが Telnet コマンドであることを示す IAC バイト (Interpret As Command) です。ストリームに 0xff を挿入するコマンドは 0xff であるため、Telnet プロトコル経由でデータを送信するときは、0xff を 2 倍にしてエスケープする必要があります。) [3]

Telnet オプション

Telnet には、Telnet を実装する端末がサポートする必要があるさまざまなオプションもあります。

Telnet オプション
コード 名前 スペック 注記
0 バイナリ伝送 RFC  856 8ビットモード(バイナリオプションとも呼ばれる)は、ASCII文字ではなくバイナリデータを送信することを目的としています。標準では、コード0000〜0176をASCIIとして解釈することを提案していますが、高ビットセットのデータオクテットには意味がありません。HTTPのような切り替え可能な文字エンコーディングサポートを導入する試みがありましたが、[25]実際のソフトウェアサポートについては何もわかっていません。
1 エコー RFC  857
2 再接続 1973年のNIC15391
3 先に進むのを抑制する RFC  858 オリジナルの Telnet プロトコルの「Go Ahead」コマンド コード (249) は、相手側がメッセージの返信を開始できることを相手側に通知するために使用されます。これは、「半二重」通信で使用されていました。一部の端末はメッセージを送信したり受信したりできましたが、同時にはできませんでした。
4 おおよそのメッセージサイズのネゴシエーション 1973年のNIC15393
5 状態 RFC  859
6 タイミングマーク RFC  860
7 リモートコントロールトランスおよびエコー  RFC726 の翻訳
8 出力ライン幅 1978年8月のNIC 20196
9 出力ページサイズ 1978年8月のNIC 20197
10 出力復帰処理 RFC  652
11 水平タブストップを出力する  RFC653 の翻訳
12 出力水平タブ配置 RFC  654
13 出力フォームフィード処理 RFC  655
14 垂直タブストップを出力する RFC  656
15 出力垂直タブ配置 RFC  657
16 出力改行処理 RFC  658
17 拡張ASCII RFC  698
18 ログアウト  RFC727 の翻訳
19 バイトマクロ  RFC735 の翻訳
20 データ入力端末
21 スープダップ
22 SUPDUP出力 RFC  749
23 位置情報を送信 RFC  779
24 端末タイプ RFC  1091
25 記録終了 RFC  885
26 TACACS ユーザー識別  RFC927 の翻訳
27 出力マーキング  RFC933 の翻訳
28 ターミナル所在地番号  RFC946 の翻訳
29 Telnet 32​​70 体制  RFC1041 の翻訳
30 X.3 パッド  RFC1053 の翻訳
31 ウィンドウサイズについて交渉する RFC  1073
32 終端速度 RFC  1079
33 リモートフロー制御 RFC  1372
34 ラインモード RFC  1184
35 X 表示位置  RFC1096 の翻訳
36 環境オプション RFC  1408
37 認証オプション RFC  2941
38 暗号化オプション RFC  2946
39 新しい環境オプション RFC  1572
40 TN3270E RFC  2355 IBM 3270を参照
41 認証
42 文字セット RFC  2066
43 Telnet リモート シリアル ポート (RSP)
44 COMポート制御オプション RFC  2217
45 Telnet ローカルエコーの抑制
46 Telnet 開始 TLS
47 カーミット RFC  2840 カーミット (プロトコル)を参照
48 URLを送信
49 フォワード_X
50-137 未割り当て
138 TELOPT プラグマ ログオン
139 TELOPT SSPI ログオン
140 TELOPT プラグマ ハートビート
141-254 未割り当て
255 拡張オプションリスト RFC  861
出典:インターネット割り当て番号局(nd)[26]

Telnet クライアント

1977年の『スターウォーズ エピソード4/新たなる希望』が、Telnetを通じて配信されるテキストアートムービーとして再現されました [27]

参照

参考文献

  1. ^ Crocker, Stephen D.; Heafner, John F.; Metcalfe, Robert M.; Postel, Jonathan B. (1971)。「ARPA コンピュータ ネットワークの機能指向プロトコル」。197111 月 16 ~ 18 日開催の秋季合同コンピュータ カンファレンス - AFIPS '71 (秋季) の議事録。Association for Computing Machinery。pp. 271 ~ 279。doi :10.1145 / 1478873.1478908。ISBN 9781450379090
  2. ^ abcd Valenčić, D.; Mateljan, V. (2019). 「NETCONF プロトコルの実装」。2019第 42 回情報通信技術、エレクトロニクス、マイクロエレクトロニクスに関する国際会議 (MIPRO) 。pp . 421–430。doi :10.23919 / MIPRO.2019.8756925。ISBN 978-953-233-098-4. S2CID  195883872。
  3. ^ abcdefg Postel, J.; Reynolds, JK (1983). 「Telnet プロトコル仕様」.ネットワークワーキンググループ. doi : 10.17487/RFC0854 . ISSN  2070-1721. RFC 854.
  4. ^ ウェン、アンドリュー (2011)。ドットダッシュからドットコムへ: 現代の電気通信は電信からインターネットへどのように進化したか。シュプリンガー。p. 132。ISBN 9781441967596
  5. ^ マイネル、クリストフ、サック、ハラルド (2013)。インターネットワーキング: 技術的基礎と応用。X.media.publishing。p. 57。ISBN 978-3642353918
  6. ^ ab Daş, Resul; Karabade, Abubakar; Tuna, Gurkan (2015). 「一般的なネットワーク攻撃の種類と防御メカニズム」2015 第 23 回信号処理および通信アプリケーション会議 (SIU) 。pp . 2658–2661。doi :10.1109/ SIU.2015.7130435。ISBN 978-1-4673-7386-9. S2CID  11256038。
  7. ^ Todorov, Dobromir (2007). ユーザー識別と認証の仕組み: アイデンティティ管理の基礎. ボカラトン: Auerbach Publications. ISBN 978-1-4200-5220-6. OCLC  263353270.
  8. ^ ab Mahmood, HB (2003). 「Telnet のトランスポート層セキュリティ プロトコル」.第 9 回アジア太平洋通信会議 (IEEE Cat. No.03EX732) . 第 3 巻. pp. 1033–1037 第 3 巻. doi :10.1109/APCC.2003.1274255. ISBN 0-7803-8114-9. S2CID  56798078。
  9. ^ 「サービス名とトランスポートプロトコルポート番号レジストリ」www.iana.org . 2023年1月12日閲覧
  10. ^ abcd Srinivasa, Shreyas; Pedersen, Jens Myrup; Vasilomanolakis, Emmanouil (2021-11-02). 「Open for hire」. Proceedings of the 21st ACM Internet Measurement Conference . IMC '21. ニューヨーク、ニューヨーク、米国: Association for Computing Machinery. pp. 195–215. doi :10.1145/3487552.3487833. ISBN 978-1-4503-9129-0. S2CID  240357287。
  11. ^ Postel, J. (1981). 「NCP/TCP 移行計画」.ネットワークワーキンググループ. doi : 10.17487/RFC0801 . ISSN  2070-1721. RFC 801.
  12. ^ Telnetプロトコル。1972年4月3日。doi : 10.17487 / RFC0318。RFC 318
  13. ^ Bruen, Garth O. (2015). WHOIS インターネットの実行: プロトコル、ポリシー、プライバシー(第 1 版). Wiley. p. 25. ISBN 9781118679555
  14. ^ J. White (1971 年 8 月 9 日)。ユーザー TELNET - 初期実装の説明。Computer Research Lab、UCSB。doi : 10.17487 / RFC0206。RFC 206
  15. ^ TELNETプロトコル仕様。1973年5月1日。doi : 10.17487 / RFC0495。RFC 495
  16. ^ ab Shimonski, Robert J.; Eaton, Wally; Khan, Umer; Gordienko, Yuri (2002-01-01)、Shimonski, Robert J.; Eaton, Wally; Khan, Umer; Gordienko, Yuri (編)、「第 11 章 - Sniffer Pro によるセキュリティ侵害の検出と実行」、Sniffer Pro ネットワーク最適化およびトラブルシューティング ハンドブック、Burlington: Syngress、pp. 513–565、doi :10.1016/B978-193183657-9/50015-0、ISBN 978-1-931836-57-9、 2023-01-12取得
  17. ^ abcd Samtani, Sagar; Yu, Shuo; Zhu, Hongyi; Patton, Mark; Chen, Hsinchun (2016). 「パッシブおよびアクティブ脆弱性評価手法を使用した SCADA 脆弱性の特定」。2016 IEEE情報セキュリティ情報科学会議 (ISI)。pp. 25–30。doi :10.1109/ ISI.2016.7745438。ISBN 978-1-5090-3865-7. S2CID  11741873。
  18. ^ Kirk, Jeremy (2007-02-12). 「Solaris のゼロデイ脆弱性によりリモート攻撃が可能に」Network World . 2023-01-12閲覧。
  19. ^ 「IBM i アクセスおよび関連機能に必要な TCP/IP ポート」。IBM サポート。2016 年 9 月 18 日のオリジナルからアーカイブ。2016年 9 月 7 日に取得
  20. ^ Todorov, Dobromir (2007). ユーザー識別と認証の仕組み: アイデンティティ管理の基礎. ボカラトン: Auerbach Publications. ISBN 978-1-4200-5220-6. OCLC  263353270.
  21. ^ Poulsen, Kevin (2007年4月2日). 「Telnet、35歳で死去…RIP」. Wired . p. 24. 2016年12月21日時点のオリジナルよりアーカイブ。 2017年6月14日閲覧
  22. ^ 「SysAdmin MD」www.sysadmin.md . 2023年1月12日閲覧
  23. ^ Ylonen, Tatu. 「SSHプロトコルの歴史」。SSHホームページ。SSH Communications Security, Inc. 2018年7月25日時点のオリジナルよりアーカイブ2017年6月14日閲覧。
  24. ^ 「Telnet | PDF | ネットワーク標準 | インターネット標準」。Scribd 2023年1月12日閲覧
  25. ^ TELNET CHARSET オプション。doi : 10.17487 / RFC2066。RFC 2066
  26. ^ 「Telnet オプション」www.iana.org . 2023 年 1 月 12 日閲覧
  27. ^ 「Telnet の失われた世界」The New Stack 2019 年 3 月 10 日。20226 月 5 日閲覧

さらに読む

インターネット標準

  • RFC  854、Telnet プロトコル仕様
  • RFC  855、Telnet オプション仕様
  • RFC  856、Telnet バイナリ転送
  • RFC  857、Telnet エコー オプション
  • RFC  858、Telnet の Go Ahead オプションの抑制
  • RFC  859、Telnet ステータス オプション
  • RFC  860、Telnet タイミング マーク オプション
  • RFC  861、Telnet 拡張オプション: リスト オプション

提案された標準

  • RFC  885、Telnet レコード終了オプション
  • RFC  1073、Telnet ウィンドウ サイズ オプション
  • RFC  1079、Telnet 端末速度オプション
  • RFC  1091、Telnet 端末タイプ オプション
  • RFC  1096、Telnet X 表示場所オプション
  • RFC  1123、インターネット ホストの要件 - アプリケーションとサポート
  • RFC  1184、Telnet ラインモード オプション
  • RFC  1372、Telnet リモート フロー制御オプション
  • RFC  1572、Telnet 環境オプション
  • RFC  2941、Telnet 認証オプション
  • RFC  2942、Telnet 認証: Kerberos バージョン 5
  • RFC  2943、DSA を使用した TELNET 認証
  • RFC  2944、Telnet 認証: SRP
  • RFC  2946、Telnet データ暗号化オプション
  • RFC  4248、telnet URI スキーム

情報/実験

  • RFC  1143、TELNET オプションネゴシエーションを実装する Q メソッド
  • RFC  1571、Telnet 環境オプションの相互運用性の問題
  • RFC  2066、TELNET CHARSET オプション

その他のRFC

  • Telnet オプション - iana.org で割り当てられたオプション番号の公式リスト
  • シーケンス図として記述された Telnet の相互作用
  • Telnet プロトコルの説明 (NVT 参照付き)
  • Microsoft TechNet:Telnet コマンド
  • TELNET: すべての(アプリケーション)プロトコルの母
  • 「telnet.org - telnet に関する情報」。telnet.org 。2020年 1 月 7 日閲覧TelnetアドレスのリストとTelnetクライアントのリストが含まれています
「https://en.wikipedia.org/w/index.php?title=Telnet&oldid=1251383171」から取得