Stage05でここまで学んだ「装置のハードニング」や「AAA」の考え方を、実際にルーターやスイッチに設定するとしたら、どんなコマンドをどんな順番で打つでしょうか?
Telnetのままだとパスワードが平文で流れてしまう、という弱点を思い出してください。SSHに乗り換えるには、暗号鍵の生成やホスト名・ドメイン名の設定など、いくつか前提条件があります。
この演習でできるようになること
- ルーターにホスト名・ドメイン名を設定し、
crypto key generate rsaでSSH用の鍵を生成できる - vtyラインをSSH専用にし、ローカルユーザー認証でログインできるようにできる
enable secretとログインバナーを設定し、装置の入口を守れる
使用トポロジ
PCが1台、ルーターが1台、その間をスイッチ経由で接続したシンプルな構成を使います。PC0はルーターの管理用ネットワークに接続し、SSHクライアントとして動作させます。ルーターにはGigabitEthernet0/0にIPアドレスを設定済みとします。
show ip ssh でVersion 2が有効になっている状態準備
- Packet Tracerで Router 2911 を1台、Switch 2960 を1台、PC-PT を1台配置します。
- PC0とスイッチ、スイッチとルーターをそれぞれストレートケーブルで接続します(異なる種類の機器同士なのでストレートです)。
- ルーターのコンソールポートに、設定用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が正常に実行でき、SSH鍵が生成されている- PC0から
ssh -l admin <ルーターIP>で接続でき、ユーザー名・パスワードでログインできる - Telnetでの接続を試すと拒否される(
transport input sshにより締め出されている) enable secretを設定した特権モードのパスワードが機能している- ログインバナーが接続時に表示される
つまずきポイント
- ホスト名・ドメイン名の設定忘れ:
crypto key generate rsaはホスト名がデフォルトのRouterのまま、あるいはドメイン名未設定だと実行できません。先にhostname・ip domain-nameを済ませておく必要があります。 login localの設定忘れ:transport input sshだけ設定してlogin localを忘れると、ユーザー名の入力を求められずログインできない、あるいはパスワード未設定のままだとログイン自体が失敗します。- SSHバージョンの思い込み:鍵長を短くしすぎると意図せずSSHv1相当の動作になることがあります。
ip ssh version 2を明示的に入れておくと確実です。
ルーターで crypto key generate rsa を実行しようとしたところ、コマンドが受け付けられませんでした。最も考えられる原因は何でしょうか?
答えを見る
ホスト名がデフォルトのままか、ip domain-name が未設定であることが最も考えられる原因です。SSH用の暗号鍵はホスト名とドメイン名を組み合わせて生成されるため、両方を先に設定しておく必要があります。
Telnetからの卒業、実機で体験できたね。hostname→ip domain-name→crypto key generate rsa→line vtyの流れ、そしてenable secretとバナー。装置の玄関をしっかり施錠する基本の型だよ。次はさらに一歩進んで、スイッチのポート単位で不正な接続を防ぐポートセキュリティを見ていくよ。