Telnetとは?仕組み・セキュリティリスク・SSHとの違いをわかりやすく解説|サイバーセキュリティ.com

Telnetとは?仕組み・セキュリティリスク・SSHとの違いをわかりやすく解説



「Telnet」という言葉を耳にしたことはあるでしょうか。古いサーバー管理の教科書やネットワーク機器の設定マニュアルに登場するこのプロトコルは、1969年にインターネットの前身であるARPANETで生まれた、リモートアクセス技術の先駆けです。

Telnetとは、ネットワークを通じて遠隔地のコンピューターやサーバーにコマンドラインから接続・操作するための通信プロトコルです。インターネット黎明期には標準的なリモート操作手段として広く使われましたが、現在は深刻なセキュリティ上の欠陥から、ほとんどの環境でSSHへの移行が完了しています。

しかし、Telnetは「過去の遺物」ではありません。IoT機器や古いネットワーク機器にはTelnetが有効なまま放置されているケースがあり、実際にサイバー攻撃の踏み台として今も悪用されています。本記事では、Telnetの仕組みから現在のセキュリティリスクまでを最新情報を交えて解説します。

Telnetとは?

Telnet(テルネット)とは、TCP/IPネットワーク上で別のコンピューターに遠隔接続し、コマンドラインからリモート操作するためのアプリケーション層プロトコルです。「Tele(遠距離)」と「Network(ネットワーク)」を組み合わせた造語で、「TELecommunication NETwork」の略とも言われます。

Telnetを使うと、物理的に離れた場所にあるサーバーやネットワーク機器に対して、まるでその場で操作しているようにコマンドを入力・実行できます。接続する側を「Telnetクライアント」、接続される側を「Telnetサーバー」と呼びます。

Telnetは1983年にRFC 854として標準化されたプロトコルで、デフォルトでTCPポート23番を使用します。テキストベースの通信プロトコルであるため、設定が単純で動作が軽量という特徴があります。ただし、通信内容がすべて暗号化されない「平文(プレーンテキスト)」で送受信されるため、現在はセキュリティ上の理由から使用が推奨されていません。

Telnetの歴史と標準化

Telnetの歴史は、インターネットの歴史そのものと重なります。

1969年:誕生

Telnetは1969年、米国防総省のARPANETプロジェクトの中で開発されました。当時は大型コンピューター(メインフレーム)を複数のユーザーが共有する時代で、遠隔地からコンピューターを操作するニーズが生まれたことが背景にあります。

1983年:RFC 854として標準化

1983年にRFC 854(Request for Comments 854)として正式に標準化されました。以降、UNIXサーバーの管理・ネットワーク機器の設定・学術研究機関のシステム接続など、幅広い分野で標準的なリモートアクセス手段として使われてきました。

1990年代後半:SSHへの移行が始まる

1995年にSSH(Secure Shell)が登場し、暗号化通信によるセキュアなリモートアクセスが可能になりました。インターネットの商業利用が拡大し、盗聴・なりすましのリスクが現実的になるにつれて、Telnetからの移行が急速に進みました。

2000年代以降:レガシー環境のみに残存

現在、セキュリティが重視される一般的な環境でTelnetが使われることはほぼありません。ただし、古い製造ラインの制御システム・旧式のネットワーク機器・IoT機器などにはTelnetが有効なまま残っているケースがあり、これが現代のセキュリティリスクとなっています。

Telnetの仕組みと動作フロー

Telnetがどのように動作するかを、接続から切断までの流れで確認しましょう。

接続の確立

クライアント(操作する側のPC)がTCPポート23番を使ってTelnetサーバーに接続要求を送り、TCPコネクションが確立されます。

認証

サーバーからログインプロンプト(ユーザー名・パスワードの入力画面)が表示されます。クライアントはユーザー名とパスワードを入力して認証を行います。このとき、ユーザー名とパスワードは暗号化されずに平文でネットワーク上に流れます。

コマンドの送受信

認証が完了すると、クライアントのキーボード入力がそのままサーバーに送信されます。サーバーはコマンドを実行し、結果をテキストとしてクライアントに返します。クライアントの画面にはサーバーからの出力が表示されます。

切断

`exit` または `logout` コマンドを入力するか、接続を強制終了することでセッションを終了します。

Telnetはすべての通信をテキスト(平文)で行うため、構造がシンプルでデバッグしやすいという特徴があります。このテキストベースの特性を利用して、HTTP・SMTP・FTPなど他のテキストプロトコルのサーバーにTelnetで手動接続し、動作確認やデバッグに使うことができます。たとえば `telnet example.com 80` でWebサーバーに接続し、HTTPリクエストを手動で送って応答を確認する方法は、ネットワーク学習の教材としても活用されてきました。

Telnetのポート番号(TCP 23)

TelnetはデフォルトでTCPポート23番を使用します。TCPポートは通信の「窓口」の番号で、Telnetサーバーはポート23番で接続を待ち受けます。

ポート23番はIANA(Internet Assigned Numbers Authority)によってTelnet用として予約・登録された「Well-Known Port(既知ポート)」のひとつです。この番号は世界共通で使われるため、ネットワーク機器のファイアウォール設定でポート23番を閉じることが、Telnet経由の不正アクセスを防ぐ基本的な対策となっています。

ポート番号の比較
Telnet:TCPポート23番(平文通信)
SSH:TCPポート22番(暗号化通信)
HTTP:TCPポート80番
HTTPS:TCPポート443番
FTP:TCPポート20番・21番

Telnetの主な用途

現在のTelnetの用途は限られていますが、以下のシーンで使われることがあります。

ネットワーク機器の設定(レガシー環境)

古いルーター・スイッチ・ファイアウォールにはTelnetでの設定インターフェースが搭載されているものがあります。ただし、現在のCiscoなどの主要メーカーはSSHによる管理アクセスを推奨しており、Telnetの使用は非推奨とされています。

ポート接続確認・デバッグ

特定のポートが開いているかを確認するために使われます。たとえば `telnet example.com 80` でポート80番に接続を試み、接続が確立すれば「そのポートは開いている」と確認できます。ただし、Windowsの新しいバージョンではPowerShellの `Test-NetConnection` コマンドでも同様の確認が可能です。

テキストプロトコルのデバッグ

SMTP(メール送信)・HTTP(Web)・FTP(ファイル転送)などのテキストベースのプロトコルを手動でテストする際に使われます。ネットワークエンジニアの学習・トラブルシューティング目的での利用です。

クローズドネットワーク内の旧システム接続

外部インターネットに接続していない閉じたネットワーク内のレガシーシステム(工場の制御システムなど)には、今もTelnetが使われているケースがあります。

TelnetとSSHの違い

現在、Telnetの代替として広く使われているのがSSH(Secure Shell)です。SSHは1995年にTelnetのセキュリティ問題を解決するために開発されたリモートアクセスプロトコルで、すべての通信を暗号化します。

項目 Telnet SSH
通信の暗号化 ❌ 平文(暗号化なし) ✅ 暗号化(AESなど)
デフォルトポート TCP 23番 TCP 22番
認証方式 パスワード認証のみ パスワード認証・公開鍵認証
盗聴への耐性 ❌ なし(傍受で内容が丸見え) ✅ 高い(暗号化で保護)
セッションハイジャック ❌ 対策なし ✅ 対策あり
ファイル転送 ❌ 非対応 ✅ SFTP/SCPで対応
ポートフォワーディング ❌ 非対応 ✅ 対応
現在の使用推奨度 ❌ 非推奨・廃止済み ✅ 標準・推奨

この比較からも明らかなように、現在のリモートアクセスにTelnetを選択する理由はほとんどありません。SSHが使用可能な環境であれば、必ずSSHを選択してください。

Telnetのセキュリティリスク

Telnetが現代の環境で推奨されない理由は、根本的なセキュリティ上の欠陥にあります。主なリスクを確認しましょう。

平文通信による盗聴リスク

Telnetの最大の問題は、すべての通信データが暗号化されずに平文でネットワーク上を流れることです。ユーザー名・パスワード・実行したコマンド・サーバーからの応答——これらすべてが、ネットワークを流れるパケットを傍受(スニッフィング)するだけで第三者に丸見えになります。

特に共用ネットワーク(公衆Wi-Fiなど)や、攻撃者が同一ネットワーク内に侵入している状況では、Telnetでのログインは資格情報の完全な漏えいを意味します。

なりすまし・中間者攻撃(MITM攻撃)

Telnetには通信相手を認証する仕組みがないため、「中間者攻撃(Man-in-the-Middle Attack)」に無防備です。攻撃者が通信経路に割り込み、クライアントとサーバーの間でデータを改ざんしたり、偽のサーバーになりすましたりしても、Telnetはそれを検知できません。

セッションハイジャック

確立済みのTelnetセッションに攻撃者が割り込み、セッションを乗っ取る「セッションハイジャック」のリスクがあります。認証後のセッションを奪われることで、攻撃者は正規ユーザーの権限でサーバーを操作できてしまいます。

IoT機器のデフォルト設定による大規模感染

多くのIoT機器(ルーター・IPカメラ・NASなど)はTelnetを有効にした状態で出荷されており、デフォルトのユーザー名・パスワードが変更されないまま使われているケースが多くあります。攻撃者はインターネット上のポート23番を自動スキャンし、デフォルト認証情報でログイン可能な機器を大量に探し出して悪用します。

IPA(情報処理推進機構)の警告
IPAは継続的に「インターネットに公開されたTelnet対応機器への注意」を呼びかけています。特にTelnetが有効なまま放置されたルーターやIPカメラは、マルウェア感染・DDoS攻撃の踏み台・不正アクセスの足がかりとして悪用されており、日本国内でも被害が報告されています。ネットワーク機器のTelnet機能は無効化し、必要な場合はSSHに切り替えることが推奨されています。

WindowsでTelnetを使う方法

Telnetクライアントは現在のWindowsではデフォルト無効になっています。学習目的や接続確認のために使う場合の手順です。

Telnetクライアントを有効にする(Windows 10/11)

  1. スタートメニュー → 「Windowsの機能の有効化または無効化」を検索して開く
  2. 一覧から「Telnetクライアント」にチェックを入れてOKをクリック
  3. インストール完了後、コマンドプロンプトまたはPowerShellを開く

基本的な接続コマンド

コマンドプロンプト(cmd)またはPowerShellで以下を入力します。

telnet [ホスト名またはIPアドレス] [ポート番号]

ポート番号を省略するとデフォルトの23番に接続します。

telnet example.com (ポート23番に接続)

telnet example.com 80 (ポート80番への接続確認)

ポート確認の代替手段(推奨)

現在のWindowsでは、ポートの開閉確認にはPowerShellの以下のコマンドが推奨されます。Telnetクライアントを有効にする必要がなく、より安全です。

Test-NetConnection -ComputerName example.com -Port 80

macOS・Linuxではターミナルでtelnetコマンドをそのまま使用できます(インストール不要)。

Telnetは学習・動作確認目的以外での使用は推奨されません。特に本番環境のサーバー管理・ネットワーク機器の設定にTelnetを使用するのは、セキュリティリスクの観点から避けてください。ポートの接続確認はPowerShellの Test-NetConnection や nmap などのツールで代替できます。

Telnetが今も残る環境とリスク

Telnetの使用が事実上廃止された現在でも、以下の環境ではTelnetが有効なまま残っているケースがあります。

古いネットワーク機器

2000年代以前に導入されたルーター・スイッチ・ファイアウォールの一部にはSSHが搭載されておらず、Telnetのみで管理インターフェースが提供されているものがあります。機器の更新ができない場合は、管理用ネットワークを外部から完全に隔離することが最低限の対策です。

産業制御システム・OTシステム

工場の生産ラインを制御するPLC(プログラマブルロジックコントローラー)やSCADAシステムには、Telnetベースの管理インターフェースを持つ機器があります。これらは長期間稼働を前提とした設計で更新が困難なため、セキュリティリスクを抱えたまま運用されているケースがあります。

IoT機器

家庭用ルーター・IPカメラ・スマートテレビ・NASなどのIoT機器には、メーカーがデバッグやサポート目的でTelnetを有効にしたまま出荷しているものがあります。ユーザーがこの設定に気づかないまま使い続けることで、インターネット上から不正アクセスされるリスクがあります。

被害事例

被害事例①:MiraiボットネットによるIoT機器の大規模感染・DDoS攻撃(2016年)

2016年、「Mirai(ミライ)」と呼ばれるマルウェアがTelnetを悪用したIoT機器への感染を急速に拡大させ、史上最大級のDDoS攻撃を引き起こしました。MiraiはインターネットのポートTCP 23番を大規模にスキャンし、Telnetが有効なIoT機器に対してデフォルトのユーザー名・パスワード(「admin/admin」「root/root」など約60種類)で自動ログインを試みました。

感染に成功した機器はボットネット(攻撃に悪用される機器のネットワーク)に組み込まれ、最終的に世界中の数十万台ものルーター・IPカメラ・DVRが乗っ取られました。このボットネットを使ったDDoS攻撃は、米国の大手DNSプロバイダー「Dyn」を標的に毎秒1.2テラビットの攻撃を実施し、Twitter・Netflix・Airbnbなど主要Webサービスへのアクセスを大規模に遮断しました。

Telnetのデフォルト認証情報を変更しなかったことが感染の根本原因であり、IoT機器のセキュリティ管理の重要性を世界に示した象徴的な事件です。

被害事例②:Telnet開放のネットワーク機器を踏み台にした不正アクセス(継続発生)

IPA(情報処理推進機構)およびJPCERT/CCは、Telnetポート(TCP 23番)が開放されたままのルーターや産業用機器が不正アクセス・マルウェア感染の踏み台として継続的に悪用されていることを警告しています。

攻撃者はShodanなどのツールを使ってインターネット上のTelnet対応機器を検索し、デフォルト認証情報や既知の脆弱性を使って不正ログインします。侵入した機器は、さらに別の組織への攻撃・暗号資産の不正マイニング・フィッシングサイトの中継などに悪用されます。

特に日本国内では、小規模事業者や家庭向けルーターへの侵害が増加傾向にあり、機器のファームウェア更新とTelnet機能の無効化が繰り返し呼びかけられています。

よくある質問(FAQ)

Q. TelnetとSSHは何が違いますか?

A. 最大の違いは「通信の暗号化」です。Telnetはすべての通信(ユーザー名・パスワード・コマンド)を暗号化せずに平文で送受信するため、通信を傍受されると内容が丸見えになります。

SSHはすべての通信を暗号化し、公開鍵認証や多要素認証にも対応しているため、現在のリモートアクセスの標準です。リモート接続が必要な場合は、理由なくTelnetを選択する必要はなく、SSHを使用してください。

Q. Telnetはなぜまだ存在するのですか?

A. 主に以下の理由で完全には消えていません。①古いネットワーク機器や産業制御システムにSSHが搭載されておらず、更新が困難なケースがある、②閉じたネットワーク環境(外部インターネットに繋がらないLAN)では盗聴リスクが低く、シンプルなTelnetが使われ続けている、③ネットワーク学習・デバッグ目的でのテキストプロトコル確認に使われている——の3点です。ただし、いずれの場合も可能な限りSSHへの移行が推奨されます。

Q. Telnetのポートを閉じればセキュリティは問題ありませんか?

A. ファイアウォールでポート23番を閉じることは重要な対策ですが、それだけでは不十分です。機器のTelnet機能そのものを無効化(サービスを停止)することが確実な対策です。ファイアウォール設定はバイパスされることがあるため、多層防御の観点から「機能の無効化」と「ポートの遮断」を併用することを推奨します。

Q. Windowsにデフォルトでついているtelnetコマンドはありますか?

A. Windows Vista以降、TelnetクライアントはデフォルトでOFF(無効)になっています。使用する場合は「Windowsの機能の有効化または無効化」から手動でインストールする必要があります。

macOS・Linuxでは通常、標準でtelnetコマンドが使用できます(macOSはinetutilsのtelnet、またはbrewでインストール可能)。ポートの接続確認が目的であれば、PowerShellの `Test-NetConnection` コマンドでTelnetを使わずに確認できます。

Q. 自社のルーターにTelnetが有効かどうか、どうやって確認できますか?

A. 以下の方法で確認できます。①ルーターの管理画面にアクセスし、「Telnet」「リモートアクセス」「管理」などの設定項目を確認する、②外部からのTelnet接続確認はShodanなどのツールでIPアドレスを検索すると、ポート23番が開放されているかわかります(ただしShodanの使用は自社のIPのみに限定してください)、③コマンドプロンプトで `telnet [ルーターのIPアドレス]` を試して接続されるかを確認する——の3つです。Telnetが有効な場合は速やかに無効化してください。

Q. IoT機器のTelnetリスクはどう対処すればよいですか?

A. 以下の手順で対処してください。①機器の管理画面でTelnet機能を無効化する、②デフォルトのパスワードを推測困難な強力なパスワードに変更する、③メーカーから提供されている最新のファームウェアに更新する、④ルーターやファイアウォールでポート23番(Telnet)への外部からのアクセスを遮断する——の4点が基本対策です。特に家庭用ルーターやIPカメラは長期間設定を変更しないまま使われるケースが多く、Miraiのような自動スキャン型マルウェアの標的になりやすいため注意が必要です。

まとめ

Telnetは1969年に生まれ、1983年にRFC 854として標準化された、リモートアクセスプロトコルの先駆けです。TCPポート23番を使い、遠隔地のサーバーやネットワーク機器にコマンドラインから接続して操作できる仕組みは、インターネット黎明期には革新的な技術でした。

しかし、Telnetには通信を暗号化する機能がなく、ユーザー名・パスワード・送受信データがすべて平文でネットワーク上に流れます。この根本的な欠陥により、盗聴・中間者攻撃・セッションハイジャックに無防備であることが明らかとなり、1995年にSSHが登場して以降、リモートアクセスの主流はSSHへと移行しました。

現在、Telnetが残る最大のリスクは、IoT機器や古いネットワーク機器にTelnetが有効なまま放置されているケースです。2016年のMiraiボットネット事件は、Telnetのデフォルト認証情報を悪用した数十万台のIoT機器感染が引き起こした史上最大級のDDoS攻撃として、Telnetのリスクを世界に知らしめました。IPAとJPCERT/CCは現在もTelnet開放機器への注意を継続的に呼びかけています。

Telnetに関して今すぐ取るべき対策は3つです。ネットワーク機器・IoT機器のTelnet機能を無効化すること、ファイアウォールでポート23番を閉じること、そしてリモートアクセスが必要な場合はSSHを使用することです。Telnetを「古いだけで無害」と考えず、現代のサイバー攻撃が狙う現実のリスクとして適切に管理してください。

SNSでもご購読できます。