Telnetは、コマンドラインインターフェイスを介してリモートシステムに接続するために使用されるネットワークプロトコルです。ルーター、スイッチ、サーバーなどのリモートデバイスを構成するために使用できます。Telnetを使用して、リモートシステムのTCPポートが開いているかどうかをテストすることもできます。
注:サーバーとクライアント間のTelnetセッションは暗号化されていないため、Telnetは安全なプロトコルではありません。 TCPポートへの接続をテストするために使用できます。ただし、リモートシステムに接続するには、SSHを使用することをお勧めします。
ここLinuxAPTでは、サーバー管理サービスの一部として、お客様が関連するTelnet構成クエリを実行するのを定期的に支援しています。
これに関連して、Ubuntu20.04LTSにTelnetサーバーとクライアントをインストールする方法を検討します。
ここでは、2台のUbuntu20.04LTSマシンを使用します。 1台のUbuntuマシンに、Telnetサーバーをインストールします。別のUbuntuマシンに、Telnetクライアントをインストールします。次に、Telnetクライアントを使用してTelnetサーバーに接続します。
UbuntuにTelnetサーバーをインストールするにはどうすればよいですか?
Ubuntuのデフォルトリポジトリには、Telnetサーバーパッケージが含まれています。したがって、aptコマンドで簡単にインストールできます。 1台のUbuntuマシンで、ターミナルで以下のコマンドを実行してTelnetサーバーをインストールします。
$ sudo apt install telnetd xinetd
上記のインストールコマンドを実行した後、ターミナルはy/nオプションでプロンプトを表示する場合があります。手順を続行するには、yを押してからEnterを押します。次に、TelnetサーバーとxinetdをUbuntuシステムにインストールします。
インストール後、xinetdサービスが自動的に開始されます。サービスのステータスは次のように表示できます。
$ sudo systemctl status xinetd.service
サービスが自動的に開始されない場合は、以下のコマンドを実行して手動で開始できます。
$ sudo systemctl start xinetd.service
次に、以下のコマンドを使用して/etc/xinetd.d/telnetファイルを作成します。
$ sudo nano /etc/xinetd.d/telnet
以下の行をファイルに追加します:
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
次に、ファイルを保存して閉じ、次のようにxinetd.serviceを再起動します。
$ sudo systemctl restart xinetd.service
Telnetサーバーは、着信接続をリッスンするためにポート23を使用します。したがって、ファイアウォールでこのポートを開く必要があります。これを行うには、以下のコマンドを実行します。
$ sudo ufw allow 23
特定のIPまたはサブネットからのみポート23への着信接続を許可するには、代わりに次のコマンドを実行します。
$ sudo ufw allow from <ip or subnet> to any port 23
UbuntuにTelnetクライアントをインストールするにはどうすればよいですか?
TelnetクライアントはUbuntuリポジトリでも利用できます。 2番目のUbuntuマシンで、ターミナルで以下のコマンドを実行して、Telnetクライアントをインストールします。
$ sudo apt install telnet
上記のインストールコマンドを実行した後、ターミナルはy/nオプションでプロンプトを表示する場合があります。
手順を続行するには、yを押してからEnterを押します。次に、UbuntuシステムにTelnetクライアントがインストールされます。
リモートシステムからTelnetサーバーに接続する方法は?
これで、別のマシン(Telnetクライアントがインストールされている場所)からTelnetサーバーに接続できます。クライアントマシンで、次のコマンド構文を使用してTelnetサーバーに接続します。
$ telnet <server-ip>
ここで、
telnetを使用して開いているポートをテストする方法は?
Telnetを使用して、リモートシステムで開いているポートをテストすることもできます。
たとえば、リモートシステム(IP 192.168.0.100)のポート80をテストするには、次のコマンドを実行します。
$ telnet 192.168.0.100 80
ポート80が開いている場合は、次の出力が表示されます。
Trying 192.168.0.100...
Connected to 192.168.0.100.
Escape character is '^]'.
ポート80がブロックされているか、Telnetサービスが実行されていない場合。次の出力が表示されます。
Trying 192.168.0.100...
telnet: Unable to connect to remote host: Connection refused
Telnetコマンドを使用してメールサーバーをテストする方法は?
Telnetコマンドは、メールサーバーのテストにも非常に役立ちます。 Telnetを使用してメールサーバーに接続します:
telnet 192.168.0.100 25
接続が成功すると、次のような他のサーバーからの応答が表示されます。
Trying 192.168.0.100...
Connected to 192.168.0.100.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Debian/GNU)
これで、ehloコマンドに続けて送信者ドメイン名を使用して、サーバーに応答できます。例:
ehlo mydomain.tld
メールサーバーは、サポートするメソッドを表示します:
250-server1.example.com
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
接続を終了するには、コマンドquit:
を入力します。quit
結果は次のようになります:
221 2.0.0 Bye
Connection closed by foreign host.
完全なコマンドシーケンスは次のとおりです。
user@server1:~# telnet 192.168.0.100 25
Trying 192.168.0.100...
Connected to 192.168.0.100.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Debian/GNU)
ehlo mydomain.tld
250-server1.example.com
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
Connection closed by foreign host.
user@server1:~#
このテスト手順は、メールサービス(ポート25)がインターネットサービスプロバイダーまたはデータセンターによってブロックされているかどうかを確認する場合に役立ちます。
Ubuntu LinuxマシンからTelnetサーバーとクライアントをアンインストールする方法は?
何らかの理由でUbuntuマシンからTelnetサーバーとクライアントをアンインストールする場合は、以下の説明に従って実行できます。
Telnetサーバーをアンインストールするには、次のコマンドを実行します。
$ sudo apt remove telnetd xinetd
Telnetクライアントをアンインストールするには、次のコマンドを実行します。
$ sudo apt remove telnet
上記のコマンドを実行した後、ターミナルはy/nオプションでプロンプトを表示する場合があります。手順を続行するには、yを押してからEnterを押します。
その後、Ubuntuシステムからアプリケーションが削除されます。