デバイスにリモート アクセスしてテストする必要がありますか? Telnet はまさにあなたが必要としているものかもしれません。以前ほど普及していませんが、Telnet は今でも多くのシステム管理者にとって便利なツールです。
この記事では、Linux を使用して Telnet をインストールする方法、Linux を使用してリモート デバイスに接続する方法、接続をテストして正常に動作しているかどうかを確認する方法について説明します。
前提条件
このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものがあることを確認してください。
- Linux システム。このチュートリアルでは Ubuntu 20.04 を使用していますが、最新の Linux システムならどれでも動作するはずです。
- sudo 権限を持つアカウント。このチュートリアルでは root アカウントを使用しますが、セキュリティ上の理由から、sudo 権限を持つ root 以外のアカウントを使用する方が適切です。
- SMTP メール サーバー。任意の SMTP メール サーバーが動作するはずです。
Linux を使用して Telnet をインストールする
ほとんどの Linux ディストリビューションでは、Telnet クライアントはデフォルトではインストールされません。使用する前にインストールする必要があります。
Ubuntu Linux に Telnet クライアントをインストールするには、次の手順に従います。
1. ターミナル ウィンドウを開きます。
2. apt パッケージ リストを更新して、最新のパッケージ バージョンがあることを確認します。
root 以外のアカウントを使用する場合は、sudo コマンドを先頭に追加します。
apt update -y
3. 以下のコマンドを実行して、Telnet クライアントとデーモンをインストールします。このチュートリアルではデーモンは必要ありませんが、クライアントと同じパッケージに入っています。
apt install telnetd -y
4. grep で Telnet クライアントのバージョン番号を確認します。
dpkg -l | grep telnet
システムに telnet クライアントが存在する場合、次のような出力が表示されます。
5. 以下の grep コマンドを実行して、telnet コマンドがパス環境変数に含まれているかどうかを確認します。このコマンドは以下の出力を返し、telnet コマンドが使用可能であることを示します。
which telnet
ローカル ファイアウォールを開いて Telnet アクセスを許可する
デフォルトでは、Telnet クライアントはポート 23 を使用します。システムにファイアウォールが設定されている場合は、telnet トラフィックを許可するためにポート 23 を開く必要があります。
Ubuntu で UFW を使用してポート 23 を開くには、次の手順に従います。
1. ターミナル ウィンドウを開きます。
2. ファイアウォールのステータスをチェックして、アクティブであることを確認します。
ufw status
ファイアウォールがアクティブな場合、次のような出力が表示されます。ステータスがアクティブでない場合は、実行されていないファイアウォールでポートを許可する必要がないため、このセクションをスキップできます。
3. ポート 23 でトラフィックを許可するには、次のコマンドを入力します。このコマンドは、tcp トラフィック用にポート 23 を開きます。デフォルトでは、telnet は TCP ポートを使用して接続を確立します。
ufw allow 23/tcp
4. 次のコマンドを入力してファイアウォール ルールのリストを表示し、ポートが開いていることを確認します。出力からわかるように、ポート 23 の tcp トラフィックはどこからでも許可されるようになりました。
ufw status numbered
Telnet を使用して開いているポートを確認する
telnet クライアントをインストールしたので、テストを開始できます。このセクションでは、telnet を使用して、リモート システムでポートが開いているかどうかを確認します。
Telnet は、仮想端末接続を使用して双方向の対話型テキスト指向通信機能を提供します。リモート マシンに telnet する場合、ローカル マシンで telnet プログラムを実行し、リモート マシンの telnet デーモンに接続します。
デーモンを使用すると、コンソールに座っているかのように、リモート マシンにログインしてコマンドを実行できます。
注:情報交換がプレーン テキストで行われ、パスワードを含めて暗号化されていないため、Telnet は安全でないプロトコルです。ネットワーク トラフィックを傍受できる人は誰でも機密情報を取得できます。
このため、可能な限り telnet の代わりに SSH を使用することをお勧めします。
ただし、telnet にはまだいくつかの用途があります。たとえば、開いているポートをチェックしてネットワーク接続の問題をトラブルシューティングする場合などです。また、SSH をサポートしていないレガシー システムに接続するため。
1. リモート マシンに SSH で接続する前に、22 ポートが開いているかどうかを確認したいとします。以下のコマンドを実行して、リモート ホストのポート 22 に telnet で接続します。
telnet 147.182.182.104 25
ポート 22 が開いている場合、以下のスクリーンショットのような出力が表示されます。 Connected to 147.182.182.104 出力は、リモート マシンへの接続が正常に確立されたことを示します。
ポートが閉じている場合は、以下に示すように、Trying… メッセージに続いて接続タイムアウト エラーが表示されます。この出力は、ポートが閉じているか、リモート ホストでリッスンしているデーモンがないことを示しています。
2. telnet セッションを終了するには、Ctrl+] を押し、telnet> プロンプトで「quit」と入力して、Enter を押します。
3. ここで、リモート マシンに安全に SSH 接続します。 147.182.182.104 をリモート マシンの IP アドレスに置き換えます。
ssh [email protected]
プロンプトでパスワードを入力し、Enter キーを押します。これで、SSH を使用してリモート マシンにログインしました。
SMTP サーバーへのポート接続の確認
メール サーバーの問題の根本原因を見つけるのは難しい場合があります。メール配信プロセスには、多くの構成ファイルとコンポーネントが関係しています。メール サーバーの問題をトラブルシューティングするには、メール配信チェーンの各コンポーネントのステータスを確認する必要があります。
最も基本的な手順は、telnet を使用して各コンポーネントに接続し、正しく動作しているかどうかを確認することです。このセクションでは、Telnet を使用してポート 2525 経由で SMTP メール サーバーのステータスを確認する方法を学習します。
ほとんどの場合、SMTP サーバーの標準ポートは 25、465、587、および 2525 です。メール サーバーに接続するには、待機ポートを知る必要があります。この例ではポート 2525 を使用しています。メール サーバー管理者に問い合わせて、この情報を入手してください。
1. telnet を使用してメール サーバーに接続するには、ターミナルで次のコマンドを入力します。 smtp.example.com と 2525 を SMTP メール サーバーの正しい FQDN とポート番号に置き換えます。
telnet smtp.example.com 2525
次のような出力が表示されます。出力の最初の行には、メール サーバーの IP アドレスが表示されます (この例では 35.187…)。 2 行目は、サーバーへの接続が成功したことを示しています。最後の行は、サーバーからのステータス コードとメッセージです。
この場合、コード 220 は、サーバーがメールを受信する準備ができていることを示します。
2. 次に、サーバーにいくつかのコマンドを発行して、そのステータスを確認します。 EHLO と入力し、Enter キーを押します。
EHLO
EHLO は HELO と HELLO の略で、サーバーに対して SMTP クライアントを識別するコマンドです。このコマンドは、クライアントからサーバーへの会話を開きます。サーバーは、サポートしているコマンドのリストで応答します。
次のような出力が表示されます。サーバー応答の最初の行は、ステータス コード (250) とメッセージです。残りの行は、サーバーがサポートする SMTP コマンドのリストです。
メール サーバーの構成に応じて、サーバーがサポートする他の多くの利用可能な SMTP コマンドが表示されます。
3. 次に、「mail from:[email protected]」と入力し、Enter キーを押して送信者の電子メール アドレスを指定します。 [email protected] を実際のメール アドレスに置き換えてください。
mail from: [email protected]
サーバーはステータス コード 250 と OK メッセージで応答し、サーバーが正しく実行されていることを示します。
4. 次に、rcpt to:[email protected] と入力し、Enter キーを押して受信者の電子メール アドレスを指定します。 [email protected] を受信者の電子メール アドレスに置き換えます。このコマンドは、その受信者アドレスに電子メールを送信することを SMTP サーバーに伝えます。
rcpt to: [email protected]
サーバーはステータス コード 250 と OK メッセージで応答し、受信者の電子メール アドレスが有効であり、サーバーが正しく動作していることを示します。
5. 最後に、「quit」と入力して Enter キーを押し、telnet セッションを終了します。
quit
サーバーは、ステータス コード 221 と、サーバーが正しく実行されていることを示すさようならメッセージで応答します。
結論
この記事では、Linux に Telnet をインストールする方法を学びました。また、Telnet を使用して開いているポートを確認する方法、SMTP サーバーの状態を確認する方法、および SMTP サーバーとの簡単な会話を実行する方法も学習しました。これらのスキルは、サーバー接続のトラブルシューティングを行う際に役立ちます。
その性質上、本番サーバーで Telnet を実行しないでください。 Telnet はいわば古くからあり、現在ではセキュリティ リスクに相当します。 Telnet は、暗号化または認証を提供しません。 Telnet はテストとトラブルシューティングにのみ使用してください。
Telnet には、サーバーをリモートで管理するための SSH や netcat
など、より優れた安全な代替手段があります。 ネットワーク接続のテスト用。ただし、特定の状況では便利な場合があるため、Telnet を手元に置いておくことをお勧めします。