テルネットとは - 最初の遠隔ターミナル接続プロトコル
1969年に登場したテルネットは、ネットワーク越しのコンピュータのコマンドライン(ターミナル)に接続し、まるで目の前で操作しているかのように扱えるプロトコルです。テルネット(Telnet)はインターネットの前身であるARPANETの時代から使われてきた非常に古いプロトコルで、ユーザーが入力したキー操作をそのままネットワーク越しのサーバーに送り、その結果の画面を送り返してもらう仕組みで遠隔ターミナル接続を実現します。今日広く使われているSSHの概念上の祖先といえる存在です。
デフォルトの23番ポートと動作の仕組み
テルネットは基本的にTCP 23番ポートを使用し、クライアントとサーバーが接続されると、以降のすべての入出力がその接続を通じてやり取りされます。テルネットクライアントがサーバーの23番ポートにTCP接続を確立すると、以後ユーザーがキーボードで入力する内容はすべてリアルタイムでサーバーに送信され、サーバーの応答(画面出力)がそのままクライアントに返されます。ログイン手順やコマンドの実行結果など、すべてがこの一本のテキストストリームを通じてやり取りされます。
なぜSSHに置き換わったのか - 平文送信のセキュリティ問題
テルネットはログインパスワードを含むすべてのデータを暗号化せず平文でやり取りするため、通信経路の途中でそのまま盗み見られる可能性があります。テルネットが設計された時代はネットワーク盗聴への配慮がほとんどなかったため、ユーザーIDやパスワードまで含むすべてのデータが暗号化なしで送信されます。同じネットワーク上の攻撃者がパケットキャプチャツールだけでログイン情報をそのまま盗み見られることが知られるようになり、1990年代後半からは通信全体を暗号化するSSH(セキュアシェル)が遠隔接続の標準として定着しました。
それでも今も使われる理由 - ポート接続テストツールとして
セキュアな接続用としては引退しましたが、特定のポートが開いているかを素早く確認する簡易診断ツールとしては今も広く使われています。実際のログイン用途でテルネットを使うことはほとんどなくなりましたが、「telnet サーバーアドレス ポート番号」というコマンドで、そのポートへのTCP接続が成功するかだけを素早く確認する用途では今も広く使われています。接続に成功すればそのポートは開いておりファイアウォールにも塞がれていないという意味になり、接続が拒否されたり応答がなかったりする場合はポートが閉じているか経路のどこかが塞がれているサインと解釈できます。
Windowsでtelnetコマンドを有効にする方法
最近のWindowsではテルネットクライアントが標準では無効になっており、「Windowsの機能の有効化または無効化」から自分で有効にしないとコマンドが使えません。コントロールパネルの「プログラムと機能」から「Windowsの機能の有効化または無効化」を開き、一覧から「Telnet Client」にチェックを入れてOKを押すとインストールが始まります。インストールが完了すれば、コマンドプロンプトやPowerShellですぐにtelnetコマンドを使えます。MacやLinuxはほとんどの場合telnetコマンドが標準で含まれているか、パッケージ管理ツールで簡単にインストールできます。
実務でtelnetを使ってポートの開閉を確認する例
メールサーバーの25番ポートやWebサーバーの80番ポートのように、特定のサービスが正常に開いているかを素早く確認する際によく活用されます。例えば「telnet mail.example.com 25」と入力して接続に成功し、サーバーの挨拶メッセージ(バナー)が表示されれば、そのメールサーバーのSMTPポートが正常に開いていることを意味します。反対に「接続できません」というメッセージが出た場合は、ファイアウォールが塞いでいるかサービス自体が停止している可能性を確認する必要があります。ただしあくまで接続確認用にとどめ、実際のログインやデータ送信には絶対に使わないようにしましょう。