Telnet と Secure Shell (SSH) は、デバイスに接続するための リモートアクセス手段です。ただし、Telnet はネットワーク上を平文で送信されるため、Telnet は安全ではありません。そのため、傍受された場合、その内容は簡単に読み取られてしまいます。SSHは、送信元と送信先間のすべてのトラフィックを暗号化するため、リモートアクセス方法として推奨されています。利用可能な場合は、常に SSH を使用すべきです。
SSHの設定
SSHは公開鍵と秘密鍵を使った暗号化方式を採用します。 鍵は、ホスト名とドメイン名を元に、crypto key generate rsa コマンドで作成します。
ホスト名の設定
これは通常のhostnameコマンドの設定です。ただし、Ciscoがデフォルトで使用しているホスト名(ルータであれば、Router)では、鍵を生成できません。
Router(config)# hostname R1 R1(config)#
ドメイン名の設定
ip domain-name コマンドを使用して、ドメイン名を設定します。
R1(config)# ip domain-name hirotanoblog.com
公開鍵の生成
公開鍵を生成します。今回、鍵長は2048ビットとします。ホスト名とドメイン名から成るFQDNを元に鍵が生成されます。
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と2がありますが、セキュリティの観点からバージョン2を推奨します。
R1(config)# ip ssh version 2
SSHの有効化
VTYでSSHを有効化するのですが、デフォルトでは、transport input allのため、TelnetもSSHも接続を受け付けます。SSHのみに接続を制限するには、transport input sshと設定します。また、ユーザ名、パスワードによる認証を有効化するため、login local を設定します。login localはログインの際にローカルに設定されたユーザ情報(usernameコマンド)を参照させるコマンドです。 SSHでは、ユーザ名が必須のため、login localが必要です。
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
SSH接続確認
端末側(以下、TeraTermの場合)でSSH接続を試みます。
フィンガープリントが出力された場合は、続行をクリックします。すると、ユーザ名、パスワードの入力画面が出力されます。usernameコマンドで設定したユーザ名とパスワードを入力し、OKをクリックします。
すると、ルータへSSHでログインができます。
SSH認証リトライ、タイムアウト設定
SSHログイン認証のリトライ数を5に変更します。デフォルトは3です。
R1(config)# ip ssh authentication-retries 5
SSHのタイムアウト値を100秒に変更します。デフォルトでは、120秒です。
R1(config)# ip ssh time-out 100
コメント