Telnet と SSH(Secure Shell)は、どちらもネットワーク経由で機器にログインするためのリモートアクセスの手段です。ただし、Telnet はパスワードを含むすべての通信を平文で送るので、途中で傍受されると内容をそのまま読み取られてしまいます。SSH は端末と機器の間の通信をすべて暗号化するので、リモートアクセスには SSH を使うことが推奨されています。使える場合は、常に SSH を使うようにしましょう。
この記事では、Cisco ルーターで SSH を設定し、Tera Term から SSH でログインするまでの手順を確認します。
- SSH を使うために必要な設定(ホスト名、ドメイン名、RSA 鍵、VTY、ユーザー名)
- SSH のバージョンを 2 にする理由
- Tera Term から SSH でログインする手順
- 認証のリトライ回数とタイムアウトの設定
構成
端末(192.168.12.100)から、R1(192.168.12.1)に SSH で接続します。
SSH の設定
SSH では、R1 が持つ RSA の鍵(公開鍵と秘密鍵のペア)を使って、端末が接続先の R1 を確認し、通信を暗号化するための鍵(共通鍵)を安全に決めます。そのあとの通信は、この共通鍵で暗号化されます。R1 では、次の設定を順に行います。
ホスト名を設定する
通常の hostname コマンドでホスト名を設定します。RSA 鍵を作るにはホスト名とドメイン名が必要で、ルーターの初期設定のホスト名(Router)のままでは鍵を作れません。
Router(config)# hostname R1
R1(config)#
ドメイン名を設定する
ip domain-name コマンドで、ドメイン名を設定します。
R1(config)# ip domain-name hirotanoblog.com
RSA 鍵を作る
crypto key generate rsa コマンドで RSA の鍵ペアを作ります。今回は鍵の長さを 2048 ビットにします。鍵の名前は、ホスト名とドメイン名をつなげた FQDN(R1.hirotanoblog.com)になります。
R1(config)# crypto key generate rsa modulus 2048 The name for the keys will be: R1.hirotanoblog.com % The key modulus size is 2048 bits % Generating 2048 bit RSA keys, keys will be non-exportable... [OK] (elapsed time was 3 seconds) R1(config)# *Aug 29 02:57:17.311: %SSH-5-ENABLED: SSH 1.99 has been enabled
鍵ができると、SSH サーバーが有効になります。ログの「SSH 1.99」は、SSH バージョン 1 とバージョン 2 の両方の接続を受け付ける状態(互換モード)であることを表しています。
SSH のバージョンを 2 にする
SSH にはバージョン 1 とバージョン 2 がありますが、セキュリティの観点からバージョン 2 だけを使うように設定します。
R1(config)# ip ssh version 2
SSH バージョン 1 は推奨されていません。ip ssh version を設定しないと互換モードのままになり、バージョン 1 での接続も受け付けてしまうので、ip ssh version 2 を設定しておきます。また、Cisco は RSA 鍵の長さを 2048 ビット以上にすることを推奨しています。
VTY で SSH を有効にする
VTY(Telnet や SSH でログインするときの仮想端末)の設定です。
| コマンド | 意味 |
|---|---|
| transport input ssh | VTY で受け付ける接続を SSH だけにする。transport input all のように Telnet も許可されていると、Telnet でも接続できてしまう |
| login local | ログインするときに、ローカルに設定したユーザー情報(username コマンド)で認証する。SSH ではユーザー名が必要なので、login local(または AAA)で認証する |
R1(config)# line vty 0 4 R1(config-line)# login local R1(config-line)# transport input ssh
ユーザー名とパスワードを設定する
ログインするときに使うユーザー名とパスワードを、username コマンドで設定します。今回は、ユーザー名を admin、パスワードを CISCO にします。
R1(config)# username admin password CISCO
username ... password で設定したパスワードは、設定ファイルに平文(またはタイプ 7)で保存されます。タイプ 7 は簡単に元に戻せるので、平文と同じように扱う必要があります。実際の運用では、元に戻せないハッシュで保存する username admin secret (パスワード) を使うことをおすすめします。
SSH の接続確認
Tera Term で接続する
端末で Tera Term を起動し、Host に R1 の IP アドレス(192.168.12.1)を入力して、Service で SSH を選びます。
| TCP/IP | ◉ |
| 1Host | 192.168.12.1 |
| 2Service | ○ Telnet ◉ SSH ○ Other |
| TCP port# | 22 |
| SSH version | SSH2 ▾ |
| IP version | AUTO ▾ |
ユーザー名とパスワードを入力する
初めて接続するときは、R1 の鍵のフィンガープリントが表示されます。接続先が R1 であることを確かめて、[続行]をクリックします。ユーザー名とパスワードを聞かれるので、username コマンドで設定したユーザー名とパスワードを入力し、[OK]をクリックします。
| 1User name | admin |
| 2Passphrase | (伏せています) |
| Remember password in memory | ✓ |
| Forward agent |
ログインできたことを確かめる
SSH で R1 にログインできました。
1R1>
ログインした直後は、ユーザー EXEC モード(R1>)です。設定を変えるには enable で特権 EXEC モードに入ります。特権モードのパスワードについては、Ciscoセキュリティ対策:パスワードとTelnet設定の基本 で説明しています。
認証のリトライ回数とタイムアウト
SSH のログインで認証をやり直せる回数を、5 回に変更します。既定値は 3 回で、設定できるのは 5 回までです。
R1(config)# ip ssh authentication-retries 5
SSH のタイムアウトを 100 秒に変更します。既定値は 120 秒で、設定できるのは 120 秒までです。
R1(config)# ip ssh time-out 100
ip ssh time-out は、接続してからログインする(SSH のネゴシエーションが終わる)までの待ち時間です。ログインしたあと、操作しないまま放っておいたときに切断するまでの時間は、VTY の exec-timeout(既定値は 10 分)で決まります。
まとめ
| 設定 | コマンド |
|---|---|
| ホスト名・ドメイン名 | hostname R1、ip domain-name hirotanoblog.com |
| RSA 鍵 | crypto key generate rsa modulus 2048 |
| バージョン | ip ssh version 2 |
| VTY | login local、transport input ssh |
| ユーザー | username admin password CISCO(運用では secret を使う) |
| リトライ・タイムアウト | ip ssh authentication-retries 5、ip ssh time-out 100 |
コメント