Telnetは、TCP / IPネットワーク用の端末エミュレーションプログラムであり、リモートシステムにログオンすることにより、インターネットまたはローカルネットワーク上の別のコンピューターにアクセスできます。 Telnetは、伝送制御プロトコルのポート23に接続するクライアントサーバープロトコルです。 Telnetを使用して、リモートシステムで開いているポートを確認することもできます。
このチュートリアルでは、Ubuntu20.04LTSサーバーにTelnetサーバーとクライアントをインストールして使用する方法を学習します。
警告: Telnetは暗号化されていないため、安全でないプロトコルです。このガイドは教育目的のみであり、システムでTelnetサーバーを使用することをお勧めしません。このガイドでは、この古いサーバー管理プロトコルについて詳しく知りたい場合、またはTelnetクライアントを使用してメールサーバーをテストしたい場合に、Telnetクライアントとサーバーをインストールして使用する方法を説明します。特にインターネット経由で使用する場合は、今日のサーバーでTelnet(サーバー)を使用することはお勧めしません。ネットワーク経由でサーバーを管理するには、Telnetの代わりにSSHを使用します。 Telnetクライアントの使用は別のものです。 Telnetクライアントは、たとえば次のように、メールサーバーまたはWebサーバーをテストするための便利なツールです。
- Ubuntu20.04サーバーを実行しているサーバー。
- sudo権限を持つroot以外のユーザー。
- サーバーに静的IPアドレス192.168.0.100を設定します。
デフォルトでは、TelnetサーバーパッケージはUbuntu20.04デフォルトリポジトリで利用できます。次のコマンドを実行するだけでインストールできます:
sudo apt install telnetd -y
インストールが完了すると、次のコマンドを使用してTelnetサービスのステータスを確認できます。
sudo systemctl status inetd
出力:
? inetd.service - Internet superserver Loaded: loaded (/lib/systemd/system/inetd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-04-29 10:24:05 UTC; 38s ago Docs: man:inetd(8) Main PID: 2883 (inetd) Tasks: 1 (limit: 1114) CGroup: /system.slice/inetd.service ??2883 /usr/sbin/inetd Apr 29 10:24:05 ubuntu2004 systemd[1]: Starting Internet superserver... Apr 29 10:24:05 ubuntu2004 systemd[1]: Started Internet superserver.
これで、Telnetサーバーがインストールされ、ポート23でリッスンしています。リモートシステムからTelnetサーバーに接続します。
次に、別のUbuntuシステムにログインして、次のコマンドを実行します。
telnet 192.168.0.100
ユーザー名とパスワードの入力を求められます。認証が成功すると、次の出力が表示されます。
Trying 192.168.0.100... Connected to 192.168.0.100. Escape character is '^]'. Ubuntu 20.04 LTS ubuntu2004 login: hitesh Password: Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-72-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Thu 29 Apr 2021 09:16:14 AM UTC System load: 0.83 Usage of /: 14.7% of 39.12GB Memory usage: 30% Swap usage: 0% Processes: 163 Users logged in: 0 IPv4 address for ens33: 192.168.0.100 IPv6 address for ens33: 2003:e1:bf4b:8b00:20c:29ff:fef5:ee3c * Pure upstream Kubernetes 1.21, smallest, simplest cluster ops! https://microk8s.io/ 8 updates can be installed immediately. 0 of these updates are security updates. To see these additional updates run: apt list --upgradable Last login: Wed Apr 28 08:50:37 2021 from 192.168.0.20
これで、Telnetを使用してTelnetサーバーで任意のコマンドを実行できます。
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.
完全なコマンドシーケンスは次のとおりです。
[email protected]:~# 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.
[email protected]:~#
このテスト手順は、メールサービス(ポート25)がインターネットサービスプロバイダーまたはデータセンターによってブロックされているかどうかを確認する場合に役立ちます。