プロビジョニング例

プロビジョニング例の概要

この章では、電話機とプロビジョニング サーバーの間で設定プロファイルを転送するための手順の例を示します。

設定プロファイルの作成については、プロビジョニング形式を参照してください。

基本の再同期

このセクションでは、電話機の基本の再同期機能をデモンストレーションします。

TFTP 再同期

電話機は、設定プロファイルを取得するための複数のネットワーク プロトコルをサポートします。 最も基本的なプロファイル転送プロトコルは、TFTP(RFC1350)です。 TFTP は、プライベート LAN ネットワーク内のネットワーク デバイスのプロビジョニングに広く使用されています。 TFTP は、インターネット経由のリモート エンドポイントの導入には推奨されませんが、小規模な組織内での導入、社内での事前プロビジョニング、および開発とテストで使用するには便利です。 社内での事前プロビジョニングの詳細については、社内デバイスの事前プロビジョニングを参照してください。 次の手順では、TFTP サーバーからファイルをダウンロードした後、プロファイルを変更します。

手順


ステップ 1

LAN 環境内で、PC と電話機をハブ、スイッチ、または小型ルータに接続します。

ステップ 2

ATA の Phone 1 ポートにアナログ電話機をつなぎます。

ステップ 3

PC に、TFTP サーバーをインストールしてアクティブにします。

ステップ 4

例に示すように、テキスト エディタを使用して、GPP_A の値を 12345678 に設定する設定プロファイルを作成します。


<flat-profile>
  <GPP_A> 12345678
  </GPP_A>
</flat-profile>

ステップ 5

プロファイルを basic.txt の名前で TFTP サーバーのルート ディレクトリに保存します。

TFTP サーバーが正しく設定されていることを確認できます。電話機以外の TFTP クライアントを使用して basic.txt ファイルを要求します。 プロビジョニング サーバーとは異なるホストで実行されている TFTP クライアントを使用することをお勧めします。

ステップ 6

アナログ電話を使用して、ATA の IP アドレス(IVR メニュー **** 110 #)を取得します。

製造後に設定が変更されている場合は、IVR RESET オプション(**** 73738#)を使用して工場出荷時の状態へのリセットを実行します。

ステップ 7

PC の Web ブラウザを開きます。 たとえば、デバイスの IP アドレスが 192.168.1.100 の場合は、次のようになります。


http://192.168.1.100

ステップ 8

[音声(Voice)] > [プロビジョニング(Provisioning)]タブを選択し、汎用パラメータ GPP_A ~ GPP_P の値を確認します。 これらは空でなければなりません。

ステップ 9

Web ブラウザ ウィンドウで resync URL を開いて、テスト電話機を basic.txt 設定プロファイルと再同期します。

TFTP サーバーの IP アドレスが 192.168.1.200 の場合、コマンドは次の例のようになります。


http://192.168.1.100/admin/resync?tftp://192.168.1.200/basic.txt

電話機がこのコマンドを受け取ると、アドレス 192.168.1.100 のデバイスは、IP アドレス 192.168.1.200 にある TFTP サーバーに basic.txt ファイルを要求します。 次に、電話機はダウンロードしたファイルを解析して、GPP_A パラメータを値 12345678 で更新します。

ステップ 10

パラメータが正しく更新されたことを確認します。PC の Web ブラウザの設定ページを更新し、[音声(Voice)] > [プロビジョニング(Provisioning)] タブを選択します。

これで、GPP_A パラメータに値 12345678 が含まれます。


syslog を使用したメッセージの記録

電話機は、プロビジョニングに関連するメッセージも含めて、UDP を使用して syslog サーバーにロギングメッセージを送信するように設定できます。 このサーバーは Web サーバー管理で識別されます([管理者ログイン(Admin Login)] > [管理(Administration)] > [ログ(Log)] > [Debug ログ設定(Debug Log Settings)]、[IPv4 アドレス(IPv4 Address)] フィールド)。 デバイスに syslog サーバーの IP アドレスを設定し、残りの手順の間に生成されるメッセージを確認します。

情報を取得するには、電話機のウェブインターフェイスにアクセスして、情報 > デバッグ情報 > 制御ログ を選択し、メッセージをクリックします。

始める前に
手順

ステップ 1

syslog サーバーをローカル PC にインストールし、有効化します。

ステップ 2

プロファイルの Syslog_Server_IP パラメータに PC の IP アドレスをプログラムし、変更内容を送信します。

<Syslog_Server_IP>192.168.1.210</Syslog_Server_IP>

ステップ 3

[システム(System)]タブをクリックし、ローカルの syslog サーバーの値を Syslog_Server パラメータに入力します。

ステップ 4

TFTP 再同期の説明に従って再同期操作を繰り返します。

デバイスは、再同期中に 2 つの syslog メッセージを生成します。 最初のメッセージは、要求が進行中であることを示します。 2 番目のメッセージは、再同期の成功または失敗を示します。

ステップ 5

syslog サーバーが次のようなメッセージを受信したことを確認します。


ATA192-MPP 00:0e:08:ab:cd:ef –- Successful resync tftp://192.168.1.200/basic.txt

これらのメッセージの内容は、次のパラメータを使用して設定できます。

  • Log_Resync_Request_Msg

  • Log_Resync_Success_Msg

  • Log_Resync_Failure_Msg

これらのパラメータのいずれかを無効にすると、対応する syslog メッセージは生成されません。


デバイスの自動再同期

デバイスは、(エンドポイントに明示的な再同期要求を送信するのではなく)定期的にプロビジョニング サーバーと再同期することで、サーバー上で行われたすべてのプロファイル変更をエンドポイント デバイスに確実に伝達できます。

電話機をサーバーと定期的に再同期させるためには、設定プロファイルの URL を Profile_Rule パラメータを使用して定義し、再同期期間を Resync_Periodic パラメータを使用して定義します。

始める前に

電話管理のウェブページにアクセスします。 電話機 ウェブインターフェイスへのアクセスを参照してください。

手順

ステップ 1

[音声(Voice)] > [プロビジョニング(Provisioning)] を選択します。

ステップ 2

Profile_Rule パラメータを定義します。 この例では、TFTP サーバーの IP アドレスを 192.168.1.200 とします。

ステップ 3

[定期再同期(Resync Periodic)]フィールドに、30 秒など、テスト用の小さい値を入力します。

ステップ 4

[すべての変更の送信(Submit All Changes)]をクリックします。

新しいパラメータ設定で、電話機は URL で指定された設定ファイルに対して 1 分間に 2 回再同期を行います。

ステップ 5

syslog トレースで結果のメッセージを確認します(syslog を使用したメッセージの記録セクションを参照)。

ステップ 6

[リセット時の再同期(Resync On Reset)]フィールドが [はい(Yes)]に設定されます。


<Resync_On_Reset>Yes</Resync_On_Reset>

ステップ 7

電源を再投入して、電話機をプロビジョニング サーバーと強制的に再同期させます。

サーバーが応答していないなど、何らかの理由で再同期操作が失敗する場合、ユニットは([再同期エラー再試行遅延(Resync Error Retry Delay)]で設定された秒数)待機した後、再同期を再試行します。 [再同期エラー再試行遅延(Resync Error Retry Delay)]が 0 の場合、電話機は再同期が失敗した後に再同期を試行しません。

ステップ 8

(オプション)[再同期エラー再試行遅延(Resync Error Retry Delay)]フィールドの値を 30 などの小さい数に設定します。


<Resync_Error_Retry_Delay>30</Resync_Error_Retry_Delay>

ステップ 9

TFTP サーバーを無効にして、syslog 出力で結果を確認します。


固有のプロファイル、マクロ展開、および HTTP

各電話機の User_ID や Display_Name などのパラメータに個別の値を指定する必要がある導入では、サービス プロバイダーが、導入されるデバイスごとに固有のプロファイルを作成し、プロビジョニング サーバーでそれらのプロファイルをホストできます。 事前に決定されたプロファイルの命名規則に従って、各電話が次々に独自のプロファイルと再同期されるよう設定する必要があります。

組み込み変数のマクロ展開を使用して、プロファイルの URL シンタックスに、MAC アドレスやシリアル番号など、各電話機に固有の識別情報を含めることができます。 マクロ展開によって、各プロファイル内の複数の場所でこれらの値を指定する必要がなくなります。

電話機にルールが適用される前に、プロファイル ルールでマクロ展開が実行されます。 マクロ展開は、次のように値の数を制御します。
  • $MA は、ユニットの 12 桁の MAC アドレス(小文字の 16 進を使用して)に展開されます。 たとえば、000e08abcdef となります。

  • $SN はユニットのシリアル番号に展開されます。 たとえば、88012BA01234 となります。

すべての汎用パラメータ(GPP_A ~ GPP_P)を含む他の値はこの方法でマクロ展開されます。 このプロセスの例については、TFTP 再同期を参照してください。 マクロ展開は URL ファイル名に限定されず、プロファイル ルール パラメータの任意の部分にも適用できます。 これらのパラメータは、$A ~ $P として参照されます。 マクロ展開で使用可能な変数の一覧については、マクロ展開変数を参照してください。

この演習では、電話機に固有のプロファイルが TFTP サーバー上でプロビジョニングされます。

TFTP サーバー上の特定のIPフォン プロファイルのプロビジョニング

手順

ステップ 1

製品ラベルから電話機の MAC アドレスを取得します (MAC アドレスは、000e08aabbcc など、数字と小文字の 16 進数を使用する数値です)。

ステップ 2

basic.txt 設定ファイル(TFTP 再同期を参照)を ataxxxx.cfgxxxx を、電話機の MAC アドレスを示す macaddress に置き換える)という名前の新しいファイルにコピーします。

ステップ 3

TFTP サーバーの仮想ルート ディレクトリに新しいファイルを移動します。

ステップ 4

電話管理の Web ページにアクセスします。 電話機 ウェブインターフェイスへのアクセスを参照してください。

ステップ 5

[音声(Voice)] > [プロビジョニング(Provisioning)] を選択します。

ステップ 6

[プロファイルルール(Profile Rule)] フィールドに tftp://192.168.1.200/ata$MA.cfg を入力します。


<Profile_Rule>
  tftp://192.168.1.200/ata$MA.cfg
</Profile_Rule>

ステップ 7

[すべての変更の送信(Submit All Changes)]をクリックします。 これにより、リブートと再同期がすぐに行われます。

次に再同期が実行されると、電話機は $MA マクロ式をその MAC アドレスに展開して新しいファイルを取得します。


HTTP GET 再同期

HTTP は TCP 接続を確立し、TFTP は信頼性の低い UDP を使用しているため、HTTP は TFTP よりも信頼性の高い非同期メカニズムを提供します。 また、HTTP サーバーは、TFTP サーバーに比べてフィルタリングとロギングの機能が改善されています。

クライアント側では、HTTP を使用して再同期するためにサーバーに特別な設定は不要です。 GET メソッドで HTTP を使用するための Profile_Rule パラメータ シンタックスは、TFTP に使用するシンタックスに似ています。 標準規格の Web ブラウザが HTTP サーバーからプロファイルを取得できる場合、電話機も同じ動作を実行できる必要があります。

HTTP GET を使用した再同期
手順

ステップ 1

ローカル PC または他のアクセス可能なホストに HTTP サーバーをインストールします。

オープン ソースの Apache サーバーをインターネットからダウンロードできます。

ステップ 2

basic.txt 設定プロファイル(TFTP 再同期を参照)をインストールしたサーバーの仮想ルート ディレクトリにコピーします。

ステップ 3

適切なサーバーのインストールと basic.txt へのファイル アクセスを確認するには、Web ブラウザを使用してプロファイルにアクセスします。

ステップ 4

プロファイルが定期的にダウンロードできるようにするために、テスト用電話機の Profile_Rule を変更して TFTP サーバーの代わりに、HTTP サーバーを指すようにします。

たとえば、HTTP サーバーが 192.168.1.300 とした場合、次の値を入力します。

<Profile_Rule>
http://192.168.1.200/basic.txt
</Profile_Rule>

ステップ 5

[すべての変更の送信(Submit All Changes)]をクリックします。 これにより、リブートと再同期がすぐに行われます。

ステップ 6

電話機から送信する syslog メッセージを確認します。 定期的な再同期で、HTTP サーバーからプロファイルが取得されるようになります。

ステップ 7

HTTP サーバーのログで、テスト用電話機を識別する情報がユーザー エージェントのログにどのように表示されるのか確認します。

この情報には、製造者、製品名、現在のファームウェア バージョン、およびシリアル番号を含める必要があります。


Cisco XML を介したプロビジョニング

電話機ごとに(ここでは xxxx と表される)、Cisco XML の機能を介してプロビジョニングされます。

XML オブジェクトを SIP Notify パケットにより電話機に送信するか、HTTP Post を使用して電話機の CGI インターフェイス http://IPAddressPhone/CGI/Execute に送信できます。

CP-xxxx-3PCC では、Cisco XML 機能が拡張され、XML オブジェクトを介したプロビジョニングがサポートされます。


<CP-xxxx-3PCCExecute>
        <ExecuteItem URL=Resync:[profile-rule]/>
</CP-xxxx-3PCCExecute>

電話機は XML オブジェクトを受け取ると、プロビジョニング ファイルを [profile-rule] からダウンロードします。 このルールでは、マクロを使用して XML サービス アプリケーションの開発を容易にできます。

マクロ展開を使用した URL 解決

複数のプロファイルがあるサーバー上のサブディレクトリは、導入された多数のデバイスを管理するのに便利です。 プロファイルの URL には、次を含めることができます。

  • プロビジョニング サーバー名または明示的な IP アドレス。 プロファイルで、プロビジョニング サーバーが名前で識別される場合、電話機は DNS ルックアップを使用して名前を解決します。

  • サーバー名の後に標準シンタックス :port を使用して、URL で指定される非標準サーバー ポート。

  • 標準 URL 表記を使用して指定され、マクロ展開で管理される、プロファイルが保存されているサーバー仮想ルート ディレクトリのサブディレクトリ。

たとえば、次の Profile_Rule は、ポート 6900 の接続をリスニングしているホスト prov.telco.com で実行中の TFTP サーバーに対し、サーバー サブディレクトリ /cisco/config 内のプロファイル ファイル($PN.cfg)を要求します。


<Profile_Rule>
tftp://prov.telco.com:6900/cisco/config/$PN.cfg
</Profile_Rule>

各電話機のプロファイルは汎用パラメータで識別できます。その値は、マクロ展開を使用して共通のプロファイル ルール内で参照されます。

たとえば、GPP_B が Dj6Lmp23Q として定義されているとします。

Profile_Rule は次の値になります。


tftp://prov.telco.com/cisco/$B/$MA.cfg

デバイスが再同期されて、マクロが展開されると、000e08012345 の MAC アドレスを持つ電話機は、次の URL にデバイスの MAC アドレスを含む名前を持つプロファイルを要求します。


tftp://prov.telco.com/cisco/Dj6Lmp23Q/000e08012345.cfg

セキュア HTTPS 再同期

安全な通信プロセスを使用して再同期するために、電話機で以下の方法を使用できます。

  • 基本の HTTPS 再同期

  • クライアント証明書認証を使用した HTTPS

  • HTTPS クライアントのフィルタリングとダイナミック コンテンツ

基本の HTTPS 再同期

HTTPS では、リモート プロビジョニングの HTTP に SSLが追加され、以下が可能になります。

  • 電話機はプロビジョニング サーバーを認証できます。

  • プロビジョニング サーバーは電話機を認証できます。

  • 電話機とプロビジョニング サーバー間で交換される情報の機密性が確保されます。

SSL は、電話機とプロビジョニング サーバーに事前にインストールされた公開キーと秘密キーのペアを使用して、各接続に対する秘密(対称)キーを生成し、電話機とプロビジョニング サーバー間で交換します。

クライアント側では、HTTPS を使用して再同期を可能にするためにサーバーで特別な設定を行う必要はありません。 GET メソッドで HTTPS を使用するための Profile_Rule パラメータ シンタックスは、HTTP または TFTP に使用するシンタックスに似ています。 標準規格の Web ブラウザが HTTPS サーバーからプロファイルを取得できる場合、電話機も同じ動作を実行できる必要があります。

HTTPS サーバーのインストールに加えて、シスコが署名する SSL サーバー証明書は、プロビジョニング サーバーにインストールする必要があります。 デバイスは、サーバーがシスコが署名したサーバー証明書を提供していない限り、HTTPS を使用しているサーバーに再同期できません。 音声製品用の署名付き SSL 証明書を作成する手順は、https://supportforums.cisco.com/docs/DOC-9852を参照してください。

基本の HTTPS 再同期による認証

手順

ステップ 1

通常のホスト名変換を使って、ネットワーク DNS サーバーで IP アドレスが認識されているホストに HTTPS サーバーをインストールします。

オープン ソースの Apache サーバーは、オープン ソースの mod_ssl パッケージとともにインストールされる際、HTTPS サーバーとして動作するように設定できます。

ステップ 2

サーバー用のサーバー証明書署名要求を生成します。 この手順では、オープン ソース OpenSSL パッケージまたは同等なソフトウェアのインストールが必要になる場合があります。 OpenSSL を使用している場合、基本の CSR ファイルを生成するコマンドは次のとおりです。


openssl req –new –out provserver.csr

このコマンドは公開キーと秘密キーのペアを生成します。それらのキーは privkey.pem ファイルに保存されます。

ステップ 3

CSR ファイル(provserver.csr)を署名のためにシスコに提出します。

署名されたサーバー証明書は、Sipura CA クライアント ルート証明書 spacroot.cert とともに返送(provserver.cert)されます。

詳細については、https://supportforums.cisco.com/docs/DOC-9852を参照してください。

ステップ 4

署名されたサーバー証明書、秘密キーのペア ファイル、およびクライアント ルート証明書をサーバーの該当の場所に格納します。

Linux に Apache をインストールする場合、通常これらの場所は次のようになります。


# Server Certificate:
SSLCertificateFile /etc/httpd/conf/provserver.cert
# Server Private Key:
SSLCertificateKeyFile /etc/httpd/conf/pivkey.pem
# Certificate Authority:
SSLCACertificateFile /etc/httpd/conf/spacroot.cert

ステップ 5

サーバーを再起動します。

ステップ 6

basic.txt 設定ファイル(TFTP 再同期を参照)を HTTPS サーバーの仮想ルート ディレクトリにコピーします。

ステップ 7

ローカル PC から標準のブラウザを使用して HTTPS サーバーから basic.txt をダウンロードし、サーバーの適切な動作を確認します。

ステップ 8

サーバーが提供するサーバー証明書を確認します。

ブラウザがシスコをルート CA として受け入れるように事前に設定されていない限り、ブラウザはおそらく証明書を認識しません。しかしながら、電話機では証明書がこの方法で署名されるものと想定されます。

HTTPS サーバーへの参照を含むようにテスト デバイスの Profile_Rule を次の例のように変更します。


<Profile_Rule>
https://my.server.com/basic.txt
</Profile_Rule>

この例では、HTTPS サーバーの名前を my.server.com とします。

ステップ 9

[すべての変更の送信(Submit All Changes)]をクリックします。

ステップ 10

電話機から送信する syslog トレースを確認します。

syslog メッセージには、再同期で HTTPS サーバーからプロファイルが取得されることが示される必要があります。

ステップ 11

(任意) 電話機のサブネットでイーサネット プロトコル アナライザを使用して、パケットが暗号化されていることを確認します。

この演習では、クライアント証明書の検証は有効化されていません。 電話機とサーバー間の接続は暗号化されます。 ただし、ファイル名とディレクトリの場所を知っている場合、どのクライアントでもサーバーに接続してファイルを要求できるため、転送は安全ではありません。 安全な再同期を行うため、クライアント証明書認証を使用した HTTPSで説明されている演習に示すように、サーバーはクライアントを認証する必要もあります。


クライアント証明書認証を使用した HTTPS

工場出荷時のデフォルト設定では、サーバーはクライアントに SSL クライアント証明書を要求しません。 どのクライアントでもサーバーに接続してプロファイルを要求できるため、プロファイルの転送は安全ではありません。 設定を編集してクライアント認証を有効にすることができます。サーバーは接続要求を受け入れる前に電話機を認証するために、クライアント証明書が必要です。

この要件があるため、適切なクレデンシャルがないブラウザを使って再同期操作を個別にテストすることはできません。 テスト用電話機とサーバー間での HTTPS 接続内での SSL キー交換は ssldump ユーティリティで確認できます。 ユーティリティのトレースには、クライアントとサーバー間の相互通信が示されます。

クライアント証明書認証を使用した HTTPSを認証する

手順

ステップ 1

HTTPS サーバーでクライアント証明書認証を有効にします。

ステップ 2

Apache(v.2)では、サーバー設定ファイルに次を設定します。


SSLVerifyClient  require

また、基本の HTTPS 再同期の演習で示されているように、spacroot.cert が格納されていることを確認します。

ステップ 3

HTTPS サーバーを再起動し、電話機の syslog トレースを確認します。

サーバーと再同期するたびに対称認証が実行されるため、サーバー証明書とクライアント証明書の両方が検証されてから、プロファイルが転送されます。

ステップ 4

ssldump を使用して、電話機と HTTPS サーバー間の再同期接続をキャプチャします。

クライアント証明書の検証がサーバーで正しく有効化されている場合、ssldump トレースには、プロファイルを含む暗号化されたパケットの前に証明書が相互に交換されていることが示されます(最初にサーバーからクライアントへ、次にクライアントからサーバーへ)。

クライアント認証が有効な場合、有効なクライアント証明書と一致する MAC アドレスを持つ電話機のみが、プロビジョニング サーバーにプロファイルを要求できます。 サーバーは、通常のブラウザまたはその他の不正なデバイスからの要求を拒否します。


クライアントフィルタリングと動的コンテンツ用にHTTPSサーバーを設定する

HTTPS サーバーがクライアント証明書を要求するよう設定されている場合、証明書の情報によって再同期している電話機を識別し、それに適切な設定情報を提供します。

HTTPS サーバーは、証明書情報を、再同期要求の一部として呼び出される CGI スクリプト(またはコンパイルされた CGI プログラム)で利用可能にします。 例を示す目的で、この演習ではオープン ソースの Perl スクリプト言語を使用し、Apache(v.2)が HTTPS サーバーとして使用されているものとします。

手順


ステップ 1

HTTPS サーバーを実行しているホストに Perl をインストールします。

ステップ 2

次の Perl リフレクタ スクリプトを生成します。


#!/usr/bin/perl -wT
use strict;
print “Content-Type: text/plain\n\n”;
print “<flat-profile><GPP_D>”;

print “OU=$ENV{‘SSL_CLIENT_I_DN_OU’},\n”;
print “L=$ENV{‘SSL_CLIENT_I_DN_L’},\n”;
print “S=$ENV{‘SSL_CLIENT_I_DN_S’}\n”;
print “</GPP_D></flat-profile>”;

ステップ 3

このファイルを reflect.pl のファイル名で HTTPS サーバーの CGI スクリプトのディレクトリに、実行権限(Linux では chmod 755)で保存します。

ステップ 4

サーバー上の CGI スクリプトのアクセシビリティ(/cgi-bin/...)を確認します。

ステップ 5

次の例のように、テスト デバイスで Profile_Rule を変更し、リフレクタ スクリプトと再同期させます。


https://prov.server.com/cgi-bin/reflect.pl?

ステップ 6

[すべての変更の送信(Submit All Changes)]をクリックします。

ステップ 7

syslog トレースで、再同期が成功していることを確認します。

ステップ 8

電話管理の Web ページにアクセスします。 電話機 ウェブインターフェイスへのアクセスを参照してください。

ステップ 9

[音声(Voice)] > [プロビジョニング(Provisioning)] を選択します。

ステップ 10

GPP_D パラメータに、スクリプトでキャプチャされた情報が含まれているか確認します。

テスト デバイスが製造者からの一意の証明書を保持する場合、この情報には製品名、MAC アドレス、およびシリアル番号が含まれます。 ユニットがファームウェア リリース 2.0 より前に製造された場合、この情報には汎用文字列が含まれます。

同様のスクリプトによって、再同期しているデバイスに関する情報を判断してから、適切な設定パラメータ値を持つデバイスを提供できます。


HTTPS 証明書

電話機は、デバイスからプロビジョニング サーバーへの HTTPS 要求に基づく信頼性の高い安全なプロビジョニング戦略を提供します。 サーバー証明書とクライアント証明書の両方が、電話機からサーバー、およびサーバーから電話機の認証に使用されます。

Cisco が発行した証明に加えて、電話機は、頻繁に使用される SSL 証明書プロバイダーからもサーバー証明書を受け入れます。

電話機で HTTPS を使用するには、証明書署名要求(CSR)を生成して、シスコに提出する必要があります。 電話機は、プロビジョニング サーバーへのインストール用の証明書を生成します。 電話機は、プロビジョニング サーバーとの HTTPS 接続を確立しようとするときに、この証明書を受け入れます。

HTTPS 方式

HTTPS は、クライアントとサーバー間の通信を暗号化して、他のネットワーク デバイスからメッセージの内容を保護します。 クライアントとサーバー間の通信本文の暗号化方式は、対称キー暗号化に基づいています。 対称キー暗号化では、クライアントとサーバーが、公開キーまたは秘密キーの暗号化によって保護される安全なチャネルで単一の秘密キーを共有します。

秘密キーで暗号化されたメッセージは、同じキーを使用しないと復号化できません。 HTTPS は、幅広い対称暗号化アルゴリズムをサポートしています。 電話機には、128 ビットの RC4 に加えて、米国暗号化標準(AES)を使用した最大 256 ビットの対称暗号化が実装されています。

HTTPS では、安全なトランザクションで実行されるサーバーとクライアントの認証も提供しています。 この機能により、プロビジョニング サーバーと各クライアントは、ネットワーク上の他のデバイスによりスプーフィングされることはありません。 この機能は、リモート エンドポイントのプロビジョニングでは必須です。

サーバーとクライアントの認証は、公開キーを含む証明書を使って、公開キーまたは秘密キーの暗号化により実行されます。 公開キーで暗号化されたテキストは、対応する秘密キーでなければ復号化できません(その逆も同じです)。 電話機は、公開キーと秘密キーの暗号化で Rivest-Shamir-Adleman(RSA)アルゴリズムをサポートします。

SSL サーバー証明書

安全な各プロビジョニング サーバーには、シスコが直接署名したセキュア ソケット レイヤ(SSL)サーバー証明書が発行されます。 電話機で実行されるファームウェアは、シスコの証明書のみ有効な証明書として認識します。 クライアントは HTTPS を使用してサーバーに接続すると、シスコで署名されていないサーバー証明書を拒否します。

この方法により、電話機への不正アクセスや、プロビジョニング サーバーをスプーフィングする試みからサービス プロバイダーを保護します。 このような保護を行わないと、攻撃者は電話機を再プロビジョニングして構成情報を取得したり、別の VoIP サービスを使用する可能性があります。 有効なサーバー証明書に対応する秘密キーがない場合、攻撃者は電話機との通信を確立できません。

サーバー証明書の取得

手順

ステップ 1

シスコ サポートの証明書プロセス担当者にお問い合わせください。 特定のサポート担当者がいない場合は、要求を ciscosb-certadmin@cisco.com 宛てに送信してください。

ステップ 2

CSR(証明書署名要求)で使用される秘密キーを生成します。 このキーは秘密キーであるため、シスコ サポートに提供する必要はありません。 オープン ソース「openssl」を使用して、キーを生成します。 次に例を示します。

openssl genrsa -out <file.key> 1024

ステップ 3

組織と場所を識別するフィールドが含まれている CSR を生成します。 次に例を示します。

openssl req -new -key <file.key> -out <file.csr>

次の情報が必要です。

  • 件名フィールド:共通名(CN)を入力します。FQDN(完全修飾ドメイン名)シンタックスにする必要があります。 電話機は、SSL 認証ハンドシェイク中に、受信した証明書がそれを提出したマシンからのものであるか確認します。

  • サーバーのホスト名:provserv.domain.com など。

  • 電子メール アドレス:必要な場合にカスタマー サポートがユーザーに連絡を取れる電子メール アドレスを入力します。 この電子メール アドレスは、CSR に表示されます。

ステップ 4

CSR(zip ファイル形式)をシスコのサポート担当者または ciscosb-certadmin@cisco.com 宛てに送信してください。 証明書はシスコによって署名されます。 シスコは、システムにインストールする証明書を送信します。


クライアント証明書

電話機に対する直接攻撃に加え、攻撃者は標準規格の Web ブラウザまたは別の HTTPS クライアントからプロビジョニング サーバーにアクセスを試み、プロビジョニング サーバーから設定プロファイルを取得する場合があります。 この種の攻撃を防ぐためには、各個々のエンドポイントに関する識別情報を含む、シスコが署名した一意のクライアント証明書を電話機でも伝送します。 デバイスのクライアント証明書を認証できる認証局ルート証明書は、各サービス プロバイダに与えられます。 この認証パスにより、プロビジョニング サーバーは設定プロファイルの不正要求を拒否できます。

証明書の構造

サーバー証明書とクライアント証明書を組み合わせると、リモートの電話機とそのプロビジョニング サーバー間のセキュア通信が確保されます。 次の図は、シスコ クライアント、プロビジョニング サーバー、認証局における、証明書、公開キーと秘密キーのペア、および署名ルート認証局の関係と配置を示しています。

図の上半分は、個々のプロビジョニング サーバー証明書の署名に使用されるプロビジョニング サーバー ルート認証局を示しています。 該当するルート証明書はファームウェアにコンパイルされ、電話機は承認されたプロビジョニング サーバーを認証できます。

図 1. 認証局のフロー

カスタム認証局の設定

デジタル証明書は、ネットワーク上のネットワークデバイスとユーザーを認証するために使用できます。 また、ネットワーク ノード間の IPSec セッションのネゴシエートにも使用できます。

サード パーティは認証局の証明書を使用して、通信しようとしている 2 つ以上のノードを検証して認証します。 各ノードが公開鍵と秘密鍵を保持します。 公開キーでデータを暗号化します。 秘密キーでデータを復号します。 これらのノードは同じ発行元から証明書を取得しているため、互いの身元を確認できます。

デバイスは、サード パーティ認証局(CA)によって提供されるデジタル証明書を使用して IPSec 接続を認証できます。

電話機は、ファームウェアに組み込まれて事前にロードされる、次の一連のルート認証局をサポートしています。

  • Cisco Small Business CA 証明書

  • CyberTrust CA 証明書

  • Verisign CA 証明書

  • Sipura ルート CA 証明書

  • Linksys ルート CA 証明書

始める前に

電話管理のウェブページにアクセスします。 電話機 ウェブインターフェイスへのアクセスを参照してください。

手順

ステップ 1

[情報(Info)] > [ステータス(Status)] を選択します。

ステップ 2

[カスタムCA情報(Custom CA Info)]までスクロールし、次のフィールドを参照します。

  • [カスタムCAプロビジョニングステータス(Custom CA Provisioning Status)]:プロビジョニングのステータスを示します。

    • 最後のプロビジョニングが mm/dd/yyyy HH:MM:SS に成功した

    • 最後のプロビジョニングが mm/dd/yyyy HH:MM:SS に失敗した

  • [カスタムCA情報(Custom CA Info)]:カスタム CA に関する情報を示します。

    • [インストール済み(Installed)]:「CN 値」が表示されます。ここで、「CN 値」は最初の証明書の件名フィールドの CN パラメータの値です。

    • [未インストール(Not Installed)]:カスタムの CA 証明書がインストールされていない場合に表示されます。


プロファイル管理

このセクションでは、ダウンロードの準備として設定プロファイルの構成について説明します。 機能を説明するために、ローカル PC からの TFTP を再同期方法として使用しますが、HTTP または HTTPS も使用できます。

gzip によるオープン プロファイルの圧縮

プロファイルですべてのパラメータが個別に指定されている場合、XML 形式の設定プロファイルが非常に大きくなる場合があります。 プロビジョニング サーバーの負荷を減らすために、電話機は、gzip ユーティリティ(RFC 1951)がサポートするデフレート圧縮形式を使用して XML ファイルの圧縮をサポートします。


(注)  


圧縮および暗号化された XML プロファイルを電話機で認識できるように、暗号化の前に圧縮を実行する必要があります。

カスタマイズされたバックエンド プロビジョニング サーバー ソリューションに統合するために、オープン ソース zlib 圧縮ライブラリをスタンドアロン gzip ユーティリティの代わりに使用して、プロファイルの圧縮を実行できます。 ただし、電話機には有効な gzip ヘッダーを含むファイルが必要です。

手順


ステップ 1

ローカル PC に gzip をインストールします。

ステップ 2

コマンド ラインから gzip を呼び出して、basic.txt 設定プロファイル(TFTP 再同期を参照)を圧縮します。


gzip basic.txt

これにより、デフレートされたファイル basic.txt.gz が生成されます。

ステップ 3

TFTP サーバーの仮想ルート ディレクトリに basic.txt.gz ファイルを保存します。

ステップ 4

次の例に示すように、テスト デバイスで Profile_Rule を変更して、元の XML ファイルの代わりにデフレートされたファイルと再同期します。


tftp://192.168.1.200/basic.txt.gz

ステップ 5

Submit All Changes をクリックします。

ステップ 6

電話機から syslog トレースを確認します。

再同期するときに、電話機は新しいファイルをダウンロードしてパラメータの更新に使用します。


OpenSSL によるプロファイルの暗号化

圧縮または圧縮解除されたプロファイルを暗号化することができます(ただし、ファイルは暗号化する前に圧縮する必要があります)。 暗号化は、電話機とプロビジョニング サーバー間の通信に TFTP または HTTP を使用する場合など、プロファイル情報の機密性が特に重要な場合に役に立ちます。

電話機は、256 ビットの AES アルゴリズムを使用して対称キーの暗号化をサポートします。 この暗号化は、オープン ソースの OpenSSL パッケージを使用して実行できます。

手順


ステップ 1

ローカル PC に OpenSSL をインストールします。 ここで、AES を有効にするために OpenSSL アプリケーションの再コンパイルが必要な場合があります。

ステップ 2

basic.txt 設定ファイル(TFTP 再同期を参照)を使用して、暗号化されたファイルを次のコマンドで生成します。


>openssl enc –aes-256-cbc –k MyOwnSecret –in basic.txt –out basic.cfg

XML プロファイルは圧縮と暗号化の両方が可能なため、gzip によるオープン プロファイルの圧縮で作成した圧縮済み basic.txt.gz ファイルも使用できます。

ステップ 3

暗号化された basic.cfg ファイルを TFTP サーバーの仮想ルート ディレクトリに保存します。

ステップ 4

テスト デバイスで Profile_Rule を変更して、元の XML ファイルの代わりに暗号化されたファイルと再同期します。 暗号キーは、次の URL オプションで電話機に認識されます。


[--key MyOwnSecret ] tftp://192.168.1.200/basic.cfg

ステップ 5

[すべての変更の送信(Submit All Changes)]をクリックします。

ステップ 6

電話機から syslog トレースを確認します。

再同期するときに、電話機は新しいファイルをダウンロードしてパラメータの更新に使用します。


パーティション化されたプロファイルの作成

電話機では、再同期ごとに複数の個別のプロファイルがダウンロードされます。 この方法により、個別サーバーに関するさまざまな種類のプロファイル情報を管理し、アカウント固有の値とは異なる共通の設定パラメータ値をメンテナンスできます。

手順


ステップ 1

以前の演習とは異なる値をパラメータに指定する新しい XML プロファイル basic2.txt を作成します。 たとえば、basic.txt プロファイルに次を追加します。


<GPP_B>ABCD</GPP_B>

ステップ 2

TFTP サーバーの仮想ルート ディレクトリに basic2.txt プロファイルを保存します。

ステップ 3

以前の演習で使用した最初のプロファイル ルールはフォルダに残しますが、新しいファイルを指す 2 番目のプロファイル ルール(Profile_Rule_B)を設定します。


<Profile_Rule_B>tftp://192.168.1.200/basic2.txt
</Profile_Rule_B>

ステップ 4

[すべての変更の送信(Submit All Changes)]をクリックします。

電話は、再同期操作の時間になるたびに、1 番目と 2 番目のプロファイルの両方に、その順序で再同期します。

ステップ 5

syslog トレースを確認して、予想される動作を確認します。


パラメータ名エイリアスによるプロビジョニングの管理

ATA の XML プロファイルを生成する場合、ATA が認識する正規名とは異なる名前を特定の構成パラメータに割り当てると便利な場合があります。 たとえば、顧客アカウント データベースでは、顧客の電話番号と SIP 登録パスワードの XML 要素タグが、SIP 番号や SIP パスワードなどの名前で生成される場合があります。 これらの名前は、Line1 に適用する前に、正規名 (User_ID_1_ および Password_1_ ) にマップできます。

多くの場合、サービス プロバイダーが使用するバックエンド プロビジョニング ソリューションがこのマッピングを実行できます。 ただし、ATA 自体はパラメータ名を内部的に再マップできます。 これを行うには、エイリアス マップが定義され、汎用プロビジョニング パラメータの 1 つに保存されます。 次に、再同期を呼び出すプロファイル ルールは、エイリアス マップで指定されたとおりに非正規の XML 要素を再マップするように指示されます。

手順


ステップ 1

次の例に示す独自の customeraccount XML フォームを含む customer.XML という名前のプロファイルを生成します。

<customer-account>
<SIP-number> 17775551234</SIP-number>
<SIP-password> 512835907884</SIP-password>
</customer-account>

ステップ 2

プロファイルを TFTP サーバーの仮想ルート ディレクトリに保存します。

ステップ 3

デバイスの Web インターフェイスを開いて Voice > Provisioning に移動し、エイリアス マップを含むように GPP_A を編集します。 Web インターフェイスから新しい行を入力せず、代わりに各エイリアスを連続して入力してください。

/customer-account/SIP-number = /flat-profile/User_ID_1_ ;
/customer-account/SIP-password = /flat-profile/Password_1_ ;

ステップ 4

次のように、Profile_Rule を編集して新しい XML プロファイルを指すようにし、エイリアス マップを URL オプションとして指定します。

[--alias a ] tftp://192.168.1.200/customer.xml

ステップ 5

[すべての変更の送信(Submit All Changes)]をクリックします。

ATA が再同期すると、XML プロファイルを受信し、エイリアス マップで示されているように要素を再マップし、User_ID_1_ および Password_1_ パラメータを入力します。

ステップ 6

新しい構成を確認するには、[Line 1] タブを表示します。

(注)  

 

ATA は、限られた数のパラメータのエイリアス再マッピングをサポートしています。 構成内のすべてのパラメータの名前を変更するものではありません。