【NW 試験】Telnet/SSH アクセス試験のエビデンス取得を効率化する【CentOS 使用】

ネットワーク

ネットワーク機器への Telnet/SSH アクセス試験

ネットワーク構築案件の試験フェーズでは、試験項目の一つとしてネットワーク機器への Telnet/SSH 管理アクセス試験を行います。

これはクライアントから対象ネットワーク機器に対して Telnet または SSH アクセスを試みて正常にアクセスできることを確認します。

試験を実施する際にはエビデンスとなるログを取得する必要がありますが、Telnet/SSH アクセス試験ではどのようなエビデンスを取得することになるでしょうか。

一般的にネットワーク機器に Telnet/SSH アクセスをする際には Windows マシンで Tera Term を使用して行われます。よって、以下のエビデンスを取得する場合が多いと思います。

一般的なエビデンス
  1. クライアントの IP アドレスが分かるエビデンス
    • ipconfig のログ、またはそれを表示したコマンドプロンプトの画面キャプチャ
  2. Tera Term で Telnet または SSH アクセスを試みようとしている画面のキャプチャ
  3. Tera Term でログイン成功後のログ、またはその画面キャプチャ
画像: SSH エビデンスの例

テスト対象の接続先数が多い場合、各画面のキャプチャを取得したり、必要に応じてそれらを一つのファイルにまとめたりといったことをすると結構な手間になります。

CentOS の CLI ですべてのエビデンスを取得する

ここでお勧めしたいのが、CentOS の telnetssh コマンドを使用したアクセス試験及びエビデンスの取得です。

CentOS では CLI 上で IP 情報表示、telnet アクセス、及び ssh アクセスのすべてができるため、エビデンスをすべてテキストログとして取得することができます。画面キャプチャの取得をしなくて済む分エビデンス取得の工数を削減できます。

以下は CentOS を使用した Telnet/SSH アクセス試験をするための構成例です。

試験実施の流れは以下の通りです。

試験実施の流れ
  • クライアントから Tera Term で CentOS マシンに Telnet または SSH でログインする
  • 試験対象機器ごとに以下 1-3 を実施する
    1. クライアントの Tera Term でログ取得を開始する
    2. CentOS マシンの IP アドレス情報を表示する (ip anmcli d show など)
    3. CentOS マシンから試験対象機器に Telnet/SSH アクセスする

CentOS での telnet 及び ssh コマンドの使い方は以下の通りです。

telnet コマンドの使い方
  • telnet <接続先 IP アドレス>
    • コマンド実行後、ログインユーザとパスワードを入力します
[root@CentOS-Stream8 ~]# telnet 192.168.179.31
Trying 192.168.179.31...
Connected to 192.168.179.31.
Escape character is '^]'.

Kernel 4.18.0-365.el8.x86_64 on an x86_64
CentOS-Stream8 login: user01
Password:
Last login: Sun Nov 20 11:27:37 from localhost
[user01@CentOS-Stream8 ~]$
ssh コマンドの使い方
  • ssh -l <ログインユーザ名> <接続先 IP アドレス>
    • コマンド実行後、パスワードを入力します
    • 接続対象に初回ログイン時のみ接続続行するか確認されるため yes と入力して続行します
[root@CentOS-Stream8 ~]# ssh -l user01 192.168.179.31
The authenticity of host '192.168.179.31 (192.168.179.31)' can't be established.
ECDSA key fingerprint is SHA256:YHbM9YL7zLdklU5BTC6otRxhU+2DLRNrwpe4yDUBORE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.179.31' (ECDSA) to the list of known hosts.
user01@192.168.179.31's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sun Nov 20 11:29:48 2022 from CentOS-Stream8.lan
[user01@CentOS-Stream8 ~]$

Telnet/SSH アクセス試験のエビデンス取得例

以下のログを取得してエビデンスとします。

  1. CentOS マシンの IP アドレス情報を表示してそのログを取得
    • ここでは nmcli d show <デバイス名> コマンドを使用します
    • 対象のデバイス名は nmcli dip a コマンドなどで確認してください
  2. 試験対象機器に Telnet/SSH 接続してそのログを取得
    • telnet/ssh コマンドを使用します(アクセス対象 IP: 192.168.179.31)

以下のログが取得したエビデンスです。

[root@CentOS-Stream8 ~]# nmcli d show wlp2s0
GENERAL.DEVICE:                         wlp2s0
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         60:67:20:57:2C:6C
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     wlp2s0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         192.168.179.31/24
IP4.GATEWAY:                            192.168.179.1
IP4.ROUTE[1]:                           dst = 192.168.179.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.179.1, mt = 600
IP4.DNS[1]:                             192.168.179.1
IP4.DOMAIN[1]:                          lan
IP6.ADDRESS[1]:                         2001:268:c201:8b41:14ee:5e56:e106:f18b/64
IP6.ADDRESS[2]:                         fe80::f824:27bb:351f:e85a/64
IP6.GATEWAY:                            fe80::f46e:beff:fe02:ee3
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[2]:                           dst = 2001:268:c201:8b41::/64, nh = ::, mt = 600
IP6.ROUTE[3]:                           dst = ::/0, nh = fe80::f46e:beff:fe02:ee3, mt = 600
IP6.DNS[1]:                             fe80::f46e:beff:fe02:ee3
[root@CentOS-Stream8 ~]#
[root@CentOS-Stream8 ~]# telnet 192.168.179.31
Trying 192.168.179.31...
Connected to 192.168.179.31.
Escape character is '^]'.

Kernel 4.18.0-365.el8.x86_64 on an x86_64
CentOS-Stream8 login: user01
Password:
Last login: Sun Nov 20 11:31:39 from 192.168.179.31
[user01@CentOS-Stream8 ~]$
[user01@CentOS-Stream8 ~]$ exit
ログアウト
Connection closed by foreign host.
[root@CentOS-Stream8 ~]#
[root@CentOS-Stream8 ~]#
[root@CentOS-Stream8 ~]# ssh -l user01 192.168.179.31
user01@192.168.179.31's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sun Nov 20 11:41:23 2022 from CentOS-Stream8.lan
[user01@CentOS-Stream8 ~]$
[user01@CentOS-Stream8 ~]$
[user01@CentOS-Stream8 ~]$ exit
ログアウト
Connection to 192.168.179.31 closed.
[root@CentOS-Stream8 ~]#
[root@CentOS-Stream8 ~]#

【参考】CentOS Stream 8 への Telnet サーバの導入

Telnet/SSH クライアントから CentOS マシンに Telnet ログインできるようにするために、CentOS マシンに Telnet サーバを導入してサービス起動する手順を以下に記載します。

■必要パッケージのインストール

  • dnf -y install telnet-server

■Telnet サーバの自動起動設定・サービス起動

  • systemctl enable --now telnet.socket

以上で Telnet サーバの導入及び起動は完了です。

必要に応じてファイアウォールを停止してください。

■ファイアウォールの自動起動無効化停止(必要に応じて)

  • systemctl disable --now firewalld

【参考】CentOS は仮想マシンで OK

CentOS マシンを用意するために新たに PC を用意しなくても、既存の Windows マシン上に仮想マシンとして CentOS を構築すれば PC は 1 台で済みます。Telnet/SSH クライアントマシン上に構築するのが良いでしょう。

例えば Windows 上に VMware Workstation Player をインストールしてそれ上に CentOS を構築します。仮想マシンのアダプタタイプを「ブリッジ」にすれば仮想マシンを直接外部ネットワークに接続できます。

タイトルとURLをコピーしました