Cisco Catalyst 初期設定②|SSHの有効化とセキュアアクセス設定【IOS XE 17.6.x】

ネットワーク技術

 

前回の記事では、Cisco Catalyst 9606Rの最初の一歩として「ホスト名・バナー・タイムゾーン」の設定を解説しました。今回はその次のステップとして、SSHの有効化とセキュアなリモートアクセス設定を解説します。

「SSHって名前は聞いたことあるけど、Telnetと何が違うの?」という人も多いと思います。この記事では、なぜSSHが必要なのかという理由から、実際の設定コマンドまでを順番に説明します。また、CCNAの取得を目指している方の参考になったら嬉しいです!(ちなみに私はCCNPを取得しています!)

 

前回の記事がまだの方はこちらも合わせて読んでいただけると幸いです。

Cisco Catalyst 初期設定①|ホスト名・バナー・タイムゾーンの設定方法【IOS XE 17.6.x】
ネットワーク機器を導入したら、まず最初にやるべき基本設定があります。それが「ホスト名」「ログインバナー」「タイムゾーン」の設定です。「まだ通信の設定もしていないのに、なんでこんなことから?」と思う人もいるかもしれません。でも、この3つは機器…

 

 

動作環境

  • 機器:Cisco Catalyst 9606R
  • OS:Cisco IOS XE 17.6.x(Bengaluru)
  • 前提:前回の記事でホスト名・ドメイン名が設定済みであること
  • 参照元:Cisco公式セキュリティコンフィギュレーションガイド(IOS XE Bengaluru 17.6.x)

 

 

SSHとTelnet、何が違うのか

Cisco機器へのリモートアクセス方法として、従来から使われてきたのがTelnetです。しかしTelnetには致命的な弱点があります。通信内容がすべて平文(暗号化なし)で流れるのです。

つまり、ネットワーク上で通信を傍受されると、ユーザー名・パスワード・入力したコマンドがすべてそのまま見えてしまいます。

一方、SSH(Secure Shell)は通信を暗号化してリモート接続を行うプロトコルです。パスワードやコマンドが暗号化されて送受信されるため、傍受されても内容を読むことができません。

比較項目TelnetSSH
通信の暗号化なし(平文)あり(暗号化)
ポート番号2322
セキュリティ低い高い
現在の推奨非推奨推奨

現在の運用環境ではTelnetではなくSSHを使うことが基本です。Telnetは特別な理由がない限り無効化することを推奨します。

 

 

SSHを設定する前の確認事項

公式ドキュメントによると、SSHを有効化するには以下の前提条件が必要です。

  • ホスト名が設定されていること(前回の記事で設定済み)
  • IPドメイン名が設定されていること(今回設定します)
  • RSAキーペアが生成されていること(RSAキーがSSHを自動的に有効化します)
  • ローカルユーザー認証が設定されていること

この4つがすべて揃ってはじめて、SSHによるリモートアクセスが可能になります。

 

 

SSHの設定手順

ステップ1:IPドメイン名の設定

RSAキーを生成するために、ホスト名とドメイン名が必要です。ホスト名は前回設定済みなので、今回はドメイン名を設定します。

C9606R-Core01# configure terminal
C9606R-Core01(config)# ip domain name showran.local
C9606R-Core01(config)#

ポイント:ドメイン名は自由に設定できます。社内であればexample.co.jpなど、実際の組織ドメインを使うのが一般的です。テスト環境ではshowran.localなどのローカルドメインでも問題ありません。

 

ステップ2:ローカルユーザーの作成

SSHでログインするためのユーザーアカウントを作成します。公式ドキュメントでも「ローカルアクセスまたはリモートアクセス用にユーザ認証を設定することは必須」と明記されています。

C9606R-Core01(config)# username admin privilege 15 secret StrongPassword123

コマンド解説:

パラメータ説明
username adminユーザー名(任意)
privilege 15特権レベル15(最高権限・enable不要)
secretパスワードをMD5で暗号化して保存(passwordより安全)
StrongPassword123設定するパスワード(実際は強力なものを使用)

注意: passwordコマンドではなく必ずsecretコマンドを使いましょう。secretはパスワードを暗号化して設定ファイルに保存するため、設定ファイルを見られてもパスワードが読み取られません。(passwordでも暗号化されるコマンドはありますが、一旦置いておきます)

 

 

ステップ3:RSAキーペアの生成

RSAキーペアを生成することで、SSHが自動的に有効になります。公式ドキュメントでは最小1024ビット、推奨2048ビット以上と記載されています。

C9606R-Core01(config)# crypto key generate rsa modulus 2048
The name for the keys will be: C9606R-Core01.shoran.local
% The key modulus size is 2048 bits
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 3 seconds)

ポイント:

  • キー名は「ホスト名.ドメイン名」の形式で自動生成されます(ここではC9606R-Core01.shoran.local
  • モジュラスサイズは2048ビット以上を推奨します。ビット数が大きいほどセキュリティが高まりますが、生成に時間がかかります
  • このコマンドを実行した時点でSSHが自動的に有効化されます

 

ステップ4:SSHバージョン2の指定

Cisco IOS XEはSSHv1とSSHv2の両方をサポートしていますが、SSHv1には既知の脆弱性があります。SSHv2のみを使用するように設定します。

C9606R-Core01(config)# ip ssh version 2

これだけで、SSHv1での接続を拒否し、SSHv2のみを受け付けるようになります。

 

ステップ5:VTY回線へのSSH適用

VTY(Virtual Terminal Line)は、リモートアクセス用の仮想端末回線です。SSHのみを許可するように設定します。

C9606R-Core01(config)# line vty 0 15
C9606R-Core01(config-line)# transport input ssh
C9606R-Core01(config-line)# login local
C9606R-Core01(config-line)# exec-timeout 10 0
C9606R-Core01(config-line)# exit

コマンド解説:

コマンド説明
line vty 0 15VTY回線0〜15番を設定対象にする(最大16セッション)
transport input sshSSH接続のみを許可(Telnetを拒否)
login localローカルユーザーDB(usernameコマンドで作成したもの)で認証
exec-timeout 10 010分間操作がなければ自動切断(セキュリティ対策)

重要:transport input telnettransport input allにすると、TelnetとSSHの両方が許可されてしまいます。セキュリティのため、必ずtransport input sshに限定してください。

 

ステップ6:enableパスワードの設定

特権EXECモード(enable)のパスワードを設定します。privilege 15のユーザーはenable不要ですが、セキュリティの多重化として設定しておくことを推奨します。

C9606R-Core01(config)# enable secret StrongEnablePassword456

enable passwordではなく、必ずenable secretを使いましょう。secretはパスワードを暗号化して保存します。

 

ステップ7:設定の確認

SSH設定が正しく完了しているか確認します。

C9606R-Core01# show ip ssh

出力例:

SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3
Minimum expected Diffie Hellman key size : 1024 bits
IOS Keys in SECSH format(ssh-rsa, base64 encoded): C9606R-Core01.shoran.local

SSH Enabled - version 2.0と表示されていれば、SSHv2が正しく有効化されています。

SSHの接続状況を確認するには:

C9606R-Core01# show ssh

出力例(接続中のセッションがある場合):

Connection Version Mode Encryption  Hmac      State          Username
0          2.0     IN   aes256-ctr  hmac-sha2 Session started admin

 

ステップ8:Telnetの無効化(推奨)

SSHが正常に動作することを確認したら、TelnetをVTY回線から完全に無効化します。transport input sshを設定した時点でTelnetは拒否されていますが、念のため確認しておきましょう。

C9606R-Core01# show running-config | section line vty
line vty 0 15
 exec-timeout 10 0
 login local
 transport input ssh

transport input sshのみの表示であれば、Telnetは無効になっています。

 

ステップ9:設定の保存

C9606R-Core01# write memory
Building configuration...
[OK]

 

 

設定コマンドのまとめ

今回設定したコマンドを一覧にまとめます。

! IPドメイン名の設定
ip domain name shoran.local

! ローカルユーザーの作成
username admin privilege 15 secret StrongPassword123

! RSAキーペアの生成(SSHが自動的に有効化される)
crypto key generate rsa modulus 2048

! SSHv2のみを許可
ip ssh version 2

! VTY回線の設定
line vty 0 15
 transport input ssh
 login local
 exec-timeout 10 0
 exit

! enableパスワードの設定
enable secret StrongEnablePassword456

! 設定の保存
write memory

 

 

よくあるトラブルと対処法

RSAキー生成時に「No host name specified」と表示される

ホスト名が設定されていないと表示されます。前回の記事を参照して、まずhostnameコマンドでホスト名を設定してください。

 

RSAキー生成時に「No domain specified」と表示される

ドメイン名が設定されていません。ip domain nameコマンドでドメイン名を設定してから、再度crypto key generate rsaを実行してください。

 

SSHで接続できない

以下を確認してください。

  • show ip sshでSSHがEnabledになっているか
  • show running-config | section line vtyでtransport input sshが設定されているか
  • 接続先のIPアドレスが正しいか(管理用インターフェイスへのルーティングが通っているか)

 

 

まとめ

今回のポイントをまとめます。

  • TelnetはパスワードやコマンドがすべてGR文で流れるため、現在の運用では非推奨
  • SSHは通信を暗号化するため、セキュアなリモートアクセスが可能
  • SSHの有効化には「ホスト名・ドメイン名・RSAキーペア・ローカル認証」の4つが必要
  • RSAキーペアは2048ビット以上を推奨
  • VTY回線はtransport input sshでSSHのみに限定する
  • secretコマンドでパスワードを暗号化して保存する

初期設定の1本目(ホスト名・バナー・タイムゾーン)と今回のSSH設定を完了すれば、機器への安全なリモートアクセス環境が整います。次回はVLANの作成と割り当て設定を解説します。

Cisco Catalyst 初期設定③|VLANの作成とポートへの割り当て設定【IOS XE 17.6.x】
ネットワーク設計で最もよく使われる技術のひとつが「VLAN」です。「名前は聞いたことあるけど、何のために使うのかよくわからない」という人も多いのではないでしょうか。このシリーズでは、Cisco Catalyst 9606RのIOS XE 1…

 

 

シリーズ関連記事

コメント

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