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

Ubuntu24.04LTSへのTelnetのインストール

Telnetとは

 Telnetは、リモートのコンピュータに接続し、コマンドラインベースの操作を行うための古いプロトコルです。Telnetでは、クライアントとサーバ間の通信が暗号化されないため、セキュリティの観点から近年では推奨されませんが、依然として内部ネットワークや限定的な環境で使用されることがあります。

Ubuntu 24.04 LTSにおけるTelnetのインストール手順

1.Telnetパッケージのインストール

・「sudo apt install telnetd」コマンドを実行します。

 このコマンドにより、Telnetデーモン(telnetd)がインストールされます。途中、パスワードを入力し、続行しますかの問いには「y」と入力します。

user01@ubuntu:~$ sudo apt install telnetd
[sudo] user01 のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:
  inetutils-inetd inetutils-telnetd tcpd
以下のパッケージが新たにインストールされます:
  inetutils-inetd inetutils-telnetd tcpd telnetd
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 14 個。
134 kB のアーカイブを取得する必要があります。
この操作後に追加で 503 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
(省略)
2.inetdの起動確認

Telnetサービスはinetdによって管理されるため、inetdが動作しているか確認します。

・「systemctl status inetd」コマンドを実行します。

 「Active: inactive(dead)」 の状態でinetdが動作していないことが分ります。確認ができたら「q」キーを押します。

user01@ubuntu:~$ systemctl status inetd
○ inetutils-inetd.service - GNU Network Utilities internet superserver
     Loaded: loaded (/usr/lib/systemd/system/inetutils-inetd.service; enabled; preset: enabled)
     Active: inactive (dead) (Result: exec-condition) since Sun 2024-09-22 02:38:36 JST; 58s ago
  Condition: start condition unmet at Sun 2024-09-22 02:38:36 JST; 58s ago
       Docs: man:inetutils-inetd(8)
(省略)
3./etc/inetd.confの設定確認

Telnetを有効にするために、設定ファイル/etc/inetd.confを確認します。

・「cat /etc/inetd.conf」コマンドを実行します。

 inetdが受け付けるサービスを設定するのが /etc/inetd.conf になる。24行目が telnet を待ち受けの設定となります。telnetを待ち受けるには、該当行をコメントを削除します。具体的には「#<off>#」の部分を削除すれば inetdでのtelnetを待ち受けるようになります。

user01@ubuntu:~$ cat /etc/inetd.conf 
# /etc/inetd.conf: see inetd(8) for further informations.
#
# Internet superserver configuration database.
#
#
# Lines starting with "#:LABEL:" or "#<off>#" should not
# be changed unless you know what you are doing!
#
# If you want to disable an entry so it is not touched during
# package updates just comment it out with a single '#' character.
#
# Packages should modify this file by using update-inetd(8).
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#discard		stream	tcp6	nowait	root	internal
#discard		dgram	udp6	wait	root	internal
#daytime		stream	tcp6	nowait	root	internal
#time		stream	tcp6	nowait	root	internal

#:STANDARD: These are standard services.
#<off># telnet	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/telnetd

#:BSD: Shell, login, exec and talk are BSD protocols.
(省略)
4.設定ファイルの編集

設定ファイルでTelnetを有効化するために、該当行を編集します。

・「sudo nano /etc/inetd.conf」コマンドを実行します。

 nanoエディタで編集します。「#<off>#」の部分を削除して、「Ctrl」+「s」で保存し、「Ctrl」+「x」で終了します。

# /etc/inetd.conf: see inetd(8) for further informations.
#
# Internet superserver configuration database.
#
#
# Lines starting with "#:LABEL:" or "#<off>#" should not
# be changed unless you know what you are doing!
#
# If you want to disable an entry so it is not touched during
# package updates just comment it out with a single '#' character.
#
# Packages should modify this file by using update-inetd(8).
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#discard		stream	tcp6	nowait	root	internal
#discard		dgram	udp6	wait	root	internal
#daytime		stream	tcp6	nowait	root	internal
#time		stream	tcp6	nowait	root	internal

#:STANDARD: These are standard services.
telnet	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/telnetd

#:BSD: Shell, login, exec and talk are BSD protocols.
(省略)
5.inetdの再起動

設定変更後、inetdを再起動して反映させます。

・「sudo systemctl restart inetd」コマンドを実行します。

user01@ubuntu:~$ sudo systemctl restart inetd

再起動したら、inetdが動作しているか確認します。

・「systemctl status inetd」コマンドを実行します。

 「Active: active」 の状態でinetdが動作していないことが分ります。確認ができたら「q」キーを押します。

user01@ubuntu:~$ sudo systemctl status inetd
● inetutils-inetd.service - GNU Network Utilities internet superserver
     Loaded: loaded (/usr/lib/systemd/system/inetutils-inetd.service; enabled; >
     Active: active (running) since Sun 2024-09-22 13:50:53 JST; 53s ago
       Docs: man:inetutils-inetd(8)
(省略)
6.IPアドレスの確認

Telnetで接続するためのIPアドレスを確認します。

・「ip addr show」コマンドを実行します。

user01@ubuntu:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:b3:38:11 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 86264sec preferred_lft 86264sec
    inet6 fd00::c932:393e:f690:2a08/64 scope global temporary dynamic 
       valid_lft 86265sec preferred_lft 14265sec
    inet6 fd00::a00:27ff:feb3:3811/64 scope global dynamic mngtmpaddr 
       valid_lft 86265sec preferred_lft 14265sec
    inet6 fe80::a00:27ff:feb3:3811/64 scope link 
       valid_lft forever preferred_lft forever
(省略)
7.Telnetでの接続確認

Telnetを使用してサーバーに接続します。

【構文】
telnet [IPアドレス]

・「telnet 10.0.2.15」コマンドを実行します。ユーザー名を入力し、パスワードを入力してログインします。

user01@ubuntu:~$ telnet 10.0.2.15
Trying 10.0.2.15...
Connected to 10.0.2.15.
Escape character is '^]'.

Linux 6.8.0-45-generic (ubuntu) (pts/1)

ubuntu login: user01
パスワード: 
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-45-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applicationsが無効化されています。
(省略)
8.Telnetセッションの終了

セッションを終了するには、以下のコマンドを使用します。

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

user01@ubuntu:~$ exit
ログアウト
Connection closed by foreign host

 これで、Ubuntu 24.04 LTSでのTelnetインストールと設定が完了し、リモートでの接続が可能となります。