このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Telnetサーバーとクライアントパッケージのインストール(CentOS)

 Telnetは、リモートホストに対してテキストベースの通信を行うためのプロトコルです。Telnetは歴史的に広く使用されてきましたが、セキュリティの観点からSSHに取って代わられています。それでも特定の環境やレガシーシステムでは、Telnetが依然として利用されています。ここでは、CentOS 7でTelnetサーバーとクライアントをインストールし、設定する方法について解説します。

systemdとは

 systemdは、Linuxのシステムおよびサービスマネージャーとして広く採用されているツールです。systemdは、従来のSysVinitやUpstartに代わるもので、サービスの起動、停止、依存関係の管理を効率的に行います。Telnetサーバーのインストールにおいても、systemdが管理する.socketファイルと.serviceファイルを使用して、サービスの起動と接続待ち受けを設定します。

 systemdを採用しているシステムでは、xinetdの代わりに.socketファイルを使用して、クライアントからのリクエストを待ち受けます。リクエストがあれば、対応する.serviceファイルを呼び出してサービスを起動します。

telnet-serverパッケージ

 Telnetを使用するためには、telnet-serverパッケージをインストールする必要があります。telnet-serverパッケージは、Telnetプロトコルを使用してリモートホストにアクセスできるようにするためのソフトウェアです。CentOS 7では、yumコマンドを使用してこのパッケージをインストールします。

telnet-serverパッケージのインストール(CentOS 7の場合)

Telnetサーバーをインストールするには、以下のコマンドを実行します。

  • su -」コマンド
  • yum -y install telnet-server」コマンド
  • su -
    rootユーザーに切り替えます。Telnetサーバーのインストールにはroot権限が必要です。
  • yum -y install telnet-server
     CentOSのパッケージマネージャーであるyumを使用してtelnet-serverパッケージをインストールします。-yオプションを指定すると、すべてのプロンプトに自動的に「yes」と答えてインストールが進みます。
[user01@localhost ~]$ su -
パスワード:
最終ログイン: 2024/08/24 (土) 17:19:55 JST日時 :0
[root@localhost ~]# yum -y install telnet-server
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
依存性の解決をしています
(省略)
インストール:
  telnet-server.x86_64 1:0.17-66.el7                                            

完了しました!

 インストールが完了すると、/lib/systemd/systemディレクトリにtelnet.socketファイルとtelnet@.serviceファイルがインストールされます。これらのファイルは、Telnetサービスを起動するために使用されます。

/lib/systemd/system/telnet.socketファイルの内容

 telnet.socketファイルは、クライアントからの接続要求を待ち受けるための設定ファイルです。以下にその内容と設定項目を解説します。

telnet.socketファイルの内容

cat /lib/systemd/system/telnet.socket

[root@localhost ~]# cat /lib/systemd/system/telnet.socket
[Unit]
Description=Telnet Server Activation Socket
Documentation=man:telnetd(8)

[Socket]
ListenStream=23
Accept=true

[Install]
WantedBy=sockets.target
設定項目と説明
項目説明
Descriptionサービスの説明。Telnet Server Activation Socketと記述されます。
ListenStream待ち受けるポート番号を指定します。Telnetでは標準的にポート23を使用。
Accept接続ごとに新しいサービスインスタンスを起動する場合はtrue
WantedByこのソケットが起動されるターゲットを指定します。sockets.target
設定項目と説明

/lib/systemd/system/telnet@.serviceファイルの内容

 telnet@.serviceファイルは、Telnetサービスの起動を管理するための設定ファイルです。以下にその内容と設定項目の説明を示します。

telnet@.serviceファイルの例

cat /lib/systemd/system/telnet@.service

[root@localhost ~]# cat /lib/systemd/system/telnet@.service
[Unit]
Description=Telnet Server
After=local-fs.target

[Service]
ExecStart=-/usr/sbin/in.telnetd
StandardInput=socket
設定項目と説明
項目説明
Descriptionサービスの説明。Telnet Serverと記述されます。
ExecStartTelnetサービスを起動するためのコマンドを指定します。
StandardInputソケットからの入力を標準入力として使用する設定です。
設定項目と説明

telnetクライアントのインストール(CentOS 7の場合)

 CentOS 7でtelnetコマンドを使用するためには、telnetクライアントをインストールする必要があります。デフォルトではtelnetクライアントはインストールされていないため、telnet localhostのようなコマンドを実行しようとすると、「コマンドが見つかりませんでした…」というエラーメッセージが表示されます。

以下のコマンドを実行します。

  • su -」コマンド
  • yum install telnet -y」コマンド
[user01@localhost ~]$ su -
パスワード:
最終ログイン: 2024/08/26 (月) 18:01:41 JST日時 pts/0
[root@localhost ~]# yum install telnet -y
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
(省略)
Running transaction
  インストール中          : 1:telnet-0.17-66.el7.x86_64                     1/1 
  検証中                  : 1:telnet-0.17-66.el7.x86_64                     1/1 

インストール:
  telnet.x86_64 1:0.17-66.el7                                                   

完了しました!
  • su -
     telnetクライアントのインストールには管理者権限が必要です。rootユーザーに切り替えるか、、sudo権限を持つユーザーで作業を行います。
  • yum install telnet -y
     CentOS 7では、yumコマンドを使用してパッケージをインストールします。以下のコマンドでtelnetクライアントをインストールします。ここでのyumはCentOSのパッケージ管理ツールで、installはパッケージをインストールするためのサブコマンドです。-yオプションは、インストール中のすべての確認プロンプトに自動的に「yes」と答えるため、手動で確認する手間を省くことができます。

telnet接続と操作

Telnetサーバーのインストールが完了したら、以下のコマンドでサービスを起動します。

・「systemctl start telnet.socket」コマンドを実行します。

 このコマンドは、telnet.socketを起動し、クライアントからの接続を待ち受けるように設定します。その後、「telnet localhost」コマンドでTelnetサーバーに接続します。

[root@localhost ~]# systemctl start telnet.socket

・「telnet localhost」コマンドを実行します。

このコマンドにより、ローカルホストに接続し、Telnetセッションを開始できます。

[root@localhost ~]# telnet localhost
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-1160.119.1.el7.x86_64 on an x86_64
localhost login: user01
Password: 
Last login: Mon Aug 26 18:01:11 on :0
[user01@localhost ~]$ 

まとめ

 Telnetサーバーのインストールと設定は、古いプロトコルを利用する場合に必要となる手順です。systemdを使用して、効率的にTelnetサービスを管理し、必要な場合にのみサービスを起動できるように設定することが重要です。