STAGE 05 / セキュリティの基本

PT演習 5-1:SSH化とデバイスの基本セキュリティ

考えてみよう

Stage05でここまで学んだ「装置のハードニング」や「AAA」の考え方を、実際にルーターやスイッチに設定するとしたら、どんなコマンドをどんな順番で打つでしょうか?

Telnetのままだとパスワードが平文で流れてしまう、という弱点を思い出してください。SSHに乗り換えるには、暗号鍵の生成やホスト名・ドメイン名の設定など、いくつか前提条件があります。

この演習でできるようになること

使用トポロジ

PCが1台、ルーターが1台、その間をスイッチ経由で接続したシンプルな構成を使います。PC0はルーターの管理用ネットワークに接続し、SSHクライアントとして動作させます。ルーターにはGigabitEthernet0/0にIPアドレスを設定済みとします。

PC0からルーターにSSHでログインし、`show ip ssh` でVersion 2が有効になっている状態
PC0からルーターにSSHでログインし、show ip ssh でVersion 2が有効になっている状態

準備

  1. Packet Tracerで Router 2911 を1台、Switch 2960 を1台、PC-PT を1台配置します。
  2. PC0とスイッチ、スイッチとルーターをそれぞれストレートケーブルで接続します(異なる種類の機器同士なのでストレートです)。
  3. ルーターのコンソールポートに、設定用PCのRS232ポートをコンソールケーブル(ロールオーバー)で接続してもよいですが、今回はPC0のIP設定が済んだ後、SSH経由での操作も試します。

手順

まずルーターにホスト名とドメイン名を設定し、SSHに必要な暗号鍵を生成します。

Router> enable
Router# configure terminal
Router(config)# hostname R1
R1(config)# ip domain-name ccna-lab.local
R1(config)# crypto key generate rsa

crypto key generate rsa を実行すると鍵の長さを聞かれるので、1024以上(推奨2048)を入力します。ホスト名とドメイン名が未設定だと、このコマンド自体が実行できない点に注意してください。

続いてローカルユーザーを作成し、vtyラインをSSH専用に切り替えます。

R1(config)# username admin secret Cisco123!
R1(config)# line vty 0 4
R1(config-line)# transport input ssh
R1(config-line)# login local
R1(config-line)# exit

transport input ssh でTelnetを締め出し、SSHのみ許可します。login local で、直接パスワードではなく先ほど作成したユーザーデータベースを使って認証させます。

最後に特権モードのパスワードと、ログインバナーを設定します。

R1(config)# enable secret ClassC1sco!
R1(config)# banner motd #Authorized Access Only. Unauthorized access is prohibited.#
R1(config)# exit

enable secret は暗号化されて保存されるパスワードで、enable password より優先されます。banner motd はログイン前に表示するメッセージで、区切り文字(ここでは#)で本文を挟みます。

確認

PC0のデスクトップから「Command Prompt」を開き、SSHでルーターに接続します。

PC> ssh -l admin 192.168.1.1
Password:

R1#

ユーザー名とパスワードを求められ、ログインに成功すると特権EXECモードのプロンプトに切り替わります(enable は別途必要な場合があります)。SSHの設定状況はルーター側で次のコマンドから確認できます。

R1# show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3

version 2.0 と表示されていれば、脆弱なバージョン1ではなくバージョン2で動作しています。

合格チェックリスト

つまずきポイント

確認問題

ルーターで crypto key generate rsa を実行しようとしたところ、コマンドが受け付けられませんでした。最も考えられる原因は何でしょうか?

答えを見る

ホスト名がデフォルトのままか、ip domain-name が未設定であることが最も考えられる原因です。SSH用の暗号鍵はホスト名とドメイン名を組み合わせて生成されるため、両方を先に設定しておく必要があります。

ゆみちゃん
ゆみ

Telnetからの卒業、実機で体験できたね。hostname→ip domain-name→crypto key generate rsa→line vtyの流れ、そしてenable secretとバナー。装置の玄関をしっかり施錠する基本の型だよ。次はさらに一歩進んで、スイッチのポート単位で不正な接続を防ぐポートセキュリティを見ていくよ。