[index] CentreCOM AR550S コマンドリファレンス 2.9

# 運用・管理/Secure Shell

      - 基本設定
       - 暗号鍵の作成
       - SSHサーバーの起動
       - SSHユーザーの登録
        - パスワード認証の場合
        - RSA認証の場合
       - SSHクライアントからの接続
      - その他

Secure Shell（SSH）は、暗号技術を利用してネットワーク経由のログインなどを安全に行うためのプロトコルです。通信内容の暗号化により盗聴や改ざんを防ぐほか、サーバーホストやユーザーの認証機能によってなりすましによる攻撃を防御することもできます。本製品は、SSHv1のみに対応しています。
従来のTelnetでは、パスワードを含む通信内容が平文のままネットワーク上を流れてしまうため、セキュリティーを重視する環境では、TelnetでなくSSHを使ったほうがよいでしょう。
本製品のSSHモジュールは以下の機能をサポートしています。

- SSHサーバーとSSHクライアント
- 鍵長512〜2048ビットのRSA公開鍵。ルーター上で作成した鍵をファイルへ書き出すことや、ファイルから鍵を取り込むことも可能
- セッションの暗号化には共通鍵暗号アルゴリズムDESを使用
- 端末セッションだけでなく、コマンドの遠隔実行も可能

基本設定

ここでは、本製品をSSHサーバー（192.168.1.5）およびSSHクライアントとして動作させるための基本設定について説明します。

暗号鍵の作成

最初に、サーバー側で2つのRSA鍵ペア（ホスト鍵とサーバー鍵）を作成します。

1. セキュリティーモードで管理作業を行うことのできるSecurity Officerレベルのユーザーを作成します。ルーター上で作成した暗号鍵は、セキュリティーモードでないとルーター再起動によって消去されてしまいます。セキュリティーモードに移行するためには、Security Officerレベルのユーザーを登録しておく必要があります。

   `ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓`
2. ホスト鍵（Host Key）を作成します。この鍵はサーバー自身のRSA公開鍵ペアです。推奨鍵長は1024ビットです。SSHコネクションの開始時には、ホスト鍵ペアの公開鍵がクライアントに送られます。クライアントはこの鍵をチェックすることにより、接続相手が意図したサーバーであるかどうかを確認できます。

   `CREATE ENCO KEY=1 TYPE=RSA LENGTH=1024 DESCRIPTION="My host_key" ↓`
3. サーバー鍵（Server Key）を作成します。サーバー鍵はSSHコネクション開始時の鍵交換に用いられるRSA公開鍵ペアです。サーバーの設定により、一定の間隔で新しく作り直されます。サーバー鍵の長さは最小512バイトで、なおかつ、ホスト鍵より128ビット以上短くなくてはなりません。

   `CREATE ENCO KEY=2 TYPE=RSA LENGTH=768 DESCRIPTION="My server_key" ↓`

■ 鍵番号は0〜65535の範囲で自由に付けられます。以後、鍵は番号だけで識別することになるため、鍵を作成するときは、DESCRIPTIONパラメーターを使って、鍵の用途などコメントを付けておくとよいでしょう。このコメントはSHOW ENCO KEYコマンドで鍵一覧を表示するときに表示されます。
■ RSA鍵の作成には時間がかかります。上記コマンドを入力すると「RSA Key Generation process started.」と表示され、バックグラウンドで鍵の生成処理が始まります。鍵の作成中はCPU負荷が高くなり、コンソールからのキー入力に対する反応が鈍くなります。鍵の作成が終わると「RSA Key generation process completed.」と表示されます。
■ 作成した鍵の情報はSHOW ENCO KEYコマンドで確認できます。

`SHOW ENCO KEY ↓
SHOW ENCO KEY=1 ↓
`

■ セキュリティーモードに移行するには、ENABLE SYSTEM SECURITY_MODEコマンドを使います。ただし、移行後はSecurity Officerレベルでないと各種設定が行えなくなりますのでご注意ください。セキュリティーモードを必要とする構成の設定を行う場合は、最初にSecurity Officerレベルのユーザーを作成しておき、ノーマルモードのまま各種設定を行い、すべての設定が完了して初めてセキュリティーモードに移行するのが便利です。

`ENABLE SYSTEM SECURITY_MODE ↓`

SSHサーバーの起動

サーバー上でホスト鍵とサーバー鍵を作成したら、SSHサーバーを起動します。このとき、ホスト鍵とサーバー鍵の番号を指定する必要があります。
■ ホスト鍵「1」、サーバー鍵「2」を使ってSSHサーバーを稼働させます。

`ENABLE SSH SERVER HOSTKEY=1 SERVERKEY=2 ↓`

■ デフォルトでは、サーバー鍵の自動更新は行われません。自動更新を行うようにするには、EXPIRYTIMEパラメーターで更新間隔（時間）を指定します。EXPIRYTIMEパラメーターの省略時は0（更新しない）となります。次の例では、24時間（1日）ごとに鍵を更新するよう設定しています。

`ENABLE SSH SERVER HOSTKEY=1 SERVERKEY=2 EXPIRYTIME=24 ↓`

> Note - 鍵の生成は負荷の高い処理なので、自動更新を行う場合は深夜などトラフィック負荷の少ない時間帯になるよう更新間隔を調整するとよいでしょう。

> Note - SSHサーバーを起動すると、ルーター内蔵Telnetサーバーへのアクセスはできなくなります。

■ SSHサーバーの状態を確認するには、SHOW SSHコマンドを使います。

`SHOW SSH ↓`

SSHユーザーの登録

SSHサーバーを利用するには、SSHサーバー上でADD SSH USERコマンドを実行し、SSHユーザーを登録する必要があります。SSHサーバーが有効になっていても、SSHユーザーが登録されていないとサーバーにはアクセスできません。
SSHユーザーは、本製品のユーザー認証データベースに登録されていなくてもかまいませんが、その場合ログイン時の権限はUSERレベル（一般ユーザー権限）となります。SSHユーザーと同じ名前のユーザーがルーターのデータベースに登録されている場合は、ユーザーデータベースでの権限がSSHログインにも適用されます。
SSHユーザーの設定方法は、使用するログイン認証方式によって異なります。ログイン方式には、次の2種類があります。

- パスワード認証：ユーザー名とパスワードによる認証方式です。
- RSA認証：公開鍵による認証方式です。

1ユーザーに対し、認証方式は1つだけしか選べません。

#### パスワード認証の場合

パスワード認証は、クライアントがユーザー名とパスワードをサーバーに送り、これをサーバーが確認する方法です。SSHではパスワードを暗号化して送るため、ネットワーク上でパスワードを盗まれる可能性が低くなっています。
■ 一般ユーザーの登録

`ADD SSH USER=kuro PASSWORD=testpasswd1 ↓`

ユーザー認証データベースに登録されていない名前のSSHユーザーは、USERレベルとなります。また、ユーザー認証データベースに登録されている名前と同じであっても、登録されているユーザーの権限がUSERレベルなら、SSHユーザーもUSERレベルとなります。
■ Manager権限を持つユーザーの登録

`ADD USER=shiro PASSWORD=testpasswd2 PRIVILEGE=MANAGER ↓
ADD SSH USER=shiro PASSWORD=testpasswd2 ↓
`

> Note - ユーザー認証データベースに登録されているユーザー（ADD USERコマンドで登録したユーザー）と同じ名前のSSHユーザーを登録した場合、ユーザー権限はデータベースと同じになりますが、パスワードは別々に設定できます。ADD SSH USERコマンドのPASSWORDパラメーターで指定したパスワードは、SSHログイン時のパスワード認証でのみ使用されます。

■ SSHユーザーはSHOW SSH USERコマンドで確認します。

`SHOW SSH USER ↓
SHOW SSH USER=shiro ↓
`

#### RSA認証の場合

RSA認証は、SSHクライアントユーザーのRSA公開鍵ペアを利用して認証を行う方式です。秘密鍵を持っているのがSSHユーザーだけであるという前提に立って、サーバーがユーザーを認証します。
RSA認証を使用するときは、SSHクライアント側であらかじめユーザーの認証用公開鍵ペアを用意し、公開鍵をSSHサーバー上に登録しておく必要があります。
■ 本製品をSSHクライアントにするときは、クライアントとなるルーター上でCREATE ENCO KEYコマンドを実行し、認証鍵を作成します。

1. RSA鍵ペアを作成します。鍵長は512ビット以上にします。推奨最大値は1024ビットです。これ以上鍵長を長くしても、処理が遅くなるだけで安全性はそれほど向上しないようです。

   `CREATE ENCO KEY=100 TYPE=RSA LENGTH=1024 ↓`
2. 作成した鍵ペアの公開鍵をSSHサーバーに送るため、ファイルに書き出します。KEYパラメーターには書き出したい鍵の番号、FILEパラメーターには書き出し先のファイル名を指定します。ファイルの拡張子は.keyとします。また、FORMATパラメーターには書き出す際のフォーマットを指定します。SSHで使うときはSSHを指定します。

   `CREATE ENCO KEY=100 TYPE=RSA FILE=pote.key FORMAT=SSH ↓`

■ クライアントがPCなどの場合は、SSHパッケージに含まれるssh-keygenなどの鍵生成プログラムを使ってユーザーの公開鍵ペアを作ります。鍵生成プログラムの使い方については、プログラム付属のマニュアル等をご覧ください。ここで挙げているのはあくまでも一例です（ssh-keygenコマンドの例）。

    pote@clientpc:~> ssh-keygen -t rsa1 -C pote@clientpc
    Generating RSA keys:  Key generation complete.
    Enter file in which to save the key (/home/pote/.ssh/identity):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/pote/.ssh/identity.
    Your public key has been saved in /home/pote/.ssh/identity.pub.
    The key fingerprint is:
    e9:0e:68:2a:8a:a3:75:dd:f1:61:37:09:fc:f6:a3:b2 pote@clientpc

■ クライアント側で認証鍵を作成したら、鍵ペアのうちの公開鍵をSSHサーバー側に転送します。TFTP経由で転送するのがよいでしょう。
クライアント側

1. クライアントが本製品の場合は、UPLOADコマンドを使ってユーザーの公開鍵ファイルをTFTPサーバーにアップロードします。ここではTFTPサーバーのIPアドレスを192.168.10.5とします。

   `UPLOAD FILE=pote.key SERVER=192.168.10.5 ↓`
   クライアントがPCなどの場合は、TFTPサーバーを動かして自分自身がTFTPサーバーになるか、あるいは、TFTPクライアントを使って別のTFTPサーバーに公開鍵ファイルを転送してください。そのとき、ファイルの拡張子を.keyにしておいてください。

サーバー側

1. 次にSSHサーバー側でLOADコマンドを実行し、TFTPサーバーからユーザーの公開鍵ファイルをダウンロードします。

   `LOAD FILE=pote.key SERVER=192.168.10.5 DESTINATION=FLASH ↓`
2. 鍵ファイルは、ダウンロードしただけでは使えません。CREATE ENCO KEYコマンドでファイルから鍵を取り込む必要があります。

   `CREATE ENCO KEY=100 TYPE=RSA FILE=pote.key FORMAT=SSH ↓`

   > Note - CREATE ENCO KEYコマンドでFILEパラメーターを指定した場合、ファイルが存在するときは、そのファイルから情報を読み込んで鍵を作成します。ファイルが存在しないときは、KEYパラメーターで指定した既存の鍵情報をファイルに書き出します。

3. SSHユーザーを登録します。このとき、ユーザーの公開鍵番号をKEYパラメーターで指定します。
   一般ユーザーの登録

   `ADD SSH USER=bote KEYID=100 ↓`
   Manager権限を持つユーザーの登録

   `ADD USER=pote PASSWORD=testpasswd3 PRIVILEGE=MANAGER ↓
   ADD SSH USER=pote KEYID=100 ↓
   `

   > Note - RSA認証を使う場合、ADD USERコマンドのPASSWORDパラメーターで指定したパスワードは使用されません（コンソールからのログインやTelnetログインで使用されます）。

■ SSHユーザーはSHOW SSH USERコマンドで確認します。

`SHOW SSH USER ↓
SHOW SSH USER=pote ↓
`

SSHクライアントからの接続

■ クライアントが本製品の場合は、クライアント側で以下のコマンドを実行します。
パスワード認証の場合

`SSH 192.168.10.1 USER=shiro PASS=testpasswd2 ↓`

RSA認証の場合

`SSH 192.168.10.1 USER=pote KEYID=100 ↓`

> Note - 初めてSSHサーバーに接続したときは、必ず以下のメッセージが表示され接続に失敗します。

    Host key not recognised - saved as ssh.key
    SSH. Session closed.

これはエラーではなく、SSHサーバーからSSHクライアント宛てにホスト鍵が送られたことを知らせるメッセージです。これにより、サーバーのホスト鍵がクライアントのファイルシステム上に「ssh.key」という名前で保存されます。上記のメッセージが表示された場合は、SSHクライアント側で次のコマンドを実行し、SSHサーバーのホスト鍵を登録してください。

`CREATE ENCO KEY=10 TYPE=RSA FILE=ssh.key DESCRIPTION="SSH server's hostkey" FORMAT=SSH ↓`

一度このコマンドを実行した後は、上記コマンドでただちに接続できるようになります。
■ クライアントがPCなどの場合は、PC用のSSHクライアントソフトウェアを起動してサーバーに接続してください。通常、初回接続時にはホスト鍵の確認が行われます。ご使用のSSHクライアントのマニュアルをご覧になり、サーバー確認の手順を行ってください。

> Note - 本製品は暗号アルゴリズムとしてDESしかサポートしていません。うまく接続できないときは、クライアントの設定で使用する暗号アルゴリズムを確認してください。DESを使用するよう設定されていない場合は、設定を変更してください。

■ SSHセッションの状態はSHOW SSH SESSIONSコマンドで確認できます。

`SHOW SSH SESSIONS ↓`

その他

■ CREATE ENCO KEYコマンドで作成・登録した暗号鍵はセキュリティーシステムの「鍵」となる重要な情報であるため、CREATE CONFIGコマンドで作成する設定ファイルとは別に保存されます（鍵の管理はENCO（暗号・圧縮）モジュールの役割です）。ただし、セキュリティーモードでないと鍵情報が再起動によって削除されてしまうため、暗号鍵を使用する場合はSecurity Officerレベルのユーザーを作成して、セキュリティーモードに移行してください。
■ SSHサーバーにログインするには、ADD SSH USERコマンドでSSH用のユーザーを登録しておかなくてはなりません。SSHサーバーが有効になっていても、SSHユーザーが登録されていないと、いかなるユーザーもログインできません。SHOW SSH USERコマンドを実行してもユーザーが表示されないときは、SSHユーザーが登録されていません。「SSHユーザーの登録」を参考にして、SSHユーザーを登録してください。
■ SSHユーザーが5回連続してログインに失敗すると、該当ユーザーは自動的に無効状態（ログインできない状態）になります。無効状態のユーザーを再度有効にするには、サーバー上でENABLE SSH USERコマンドを実行する必要があります。

`ENABLE SSH USER=carelessuser ↓`

■ SSHユーザーの有効・無効はSHOW SSH USERコマンドで確認できます。

`SHOW SSH USER ↓
SHOW SSH USER=carelessuser ↓
`

■ SSHサーバーへの接続許可を特定のSSHクライアント（IPアドレス）だけに制限することもできます。これには、ADD SSH USERコマンド、SET SSH USERコマンドのIPADDRESS、MASKパラメーターを使います。クライアント制限はSSHユーザーごとに設定します。たとえば、ユーザーpoteに対し、IPアドレス192.168.10.100のホストからのみ接続を許可するよう設定するには、次のようにします。

`ADD SSH USER=pote PASSWORD=passpote IPADDRESS=192.168.10.100 ↓`

また、接続できるクライアントをサブネット192.168.10.0/24内に制限するには、次のようにします。

`ADD SSH USER=pote PASSWORD=passpote IPADDRESS=192.168.10.0 MASK=255.255.255.0 ↓`

■ 本製品から他のSSHサーバーに接続するには、SSHコマンドを使います。パスワード認証の場合は、次のようにします。

`SSH 192.168.10.5 USER=pote PASSWORD=passpote ↓`

RSA認証の場合は、CREATE ENCO KEYコマンドで自分の鍵を作成・登録した上で、次のように鍵番号を指定します。

`SSH 192.168.10.5 USER=pote KEYID=10 ↓`

■ ログインせずにサーバー上で単独のコマンドだけを実行させたい場合は、次のようにします。ただし、遠隔コマンド実行にはManagerレベル以上の権限が必要ですのでご注意ください。SSHユーザーにManagerレベル以上の権限を与える方法については、「SSHユーザーの登録」をご覧ください。

`SSH 192.168.10.5 USER=pote PASSWORD=passpote COMMAND="show firewall event=deny" ↓`

■ SSH使用時には、以下のSSH関連イベントがログに記録されます。

- SSHユーザーの追加、削除、設定変更
- SSHサーバーの有効化、無効化
- SSHコネクションの開始、終了、拒否

(C) 2005-2012 アライドテレシスホールディングス株式会社

PN: J613-M0710-03 Rev.H