コンプライアンス

概要

政府や行政の法規制により、IT組織ごとに規定されたコンフィグ内容やコンプライアンス準拠が求められています。
Network Configuration Managerのコンプライアンス機能により、各企業で規定されている内容への準拠状況を確認することができます。


コンプライアンスチェックのしくみ

設定が必須または不要なコンフィグ内容を事前にルールとして定義します。定義した複数のルールをまとめてグループ化し、「コンプライアンスポリシー」として設定します。設定したコンプライアンスポリシーを各装置や装置グループに関連付けし、バックアップで取得したコンフィグをスキャンして、準拠状況をレポート化します。コンプライアンスチェックは手動またはスケジュール実行が可能です。


コンプライアンスチェックのメリット

コンプライアンスチェックにより、ネットワーク管理者にとって以下のようなメリットがあります。

  • ネットワーク内の装置とそのコンフィグが、組織で規定されたコンプライアンスポリシーに準拠しているか自動確認
  • 包括的で直感的なレポートにより、準拠状況を容易に把握
  • スケジュール設定を活用し、定期的なチェックを実現し、確認に要する工数を削減

コンプライアンスチェックの設定

コンプライアンスチェックを行うためには、コンプライアンスポリシーを作成する必要があります。これには3段階の設定が必要です。

  1. ルールの追加
  2. ルールグループの追加
  3. コンプライアンスポリシーの追加

デフォルトで、Cisco IOS Policy、HIPAA Policy、SOX Policyが設定されていますが、
これらは設定のサンプルとして追加されておりますので、あくまで参考としてご利用ください。


1.ルールの追加

コンフィグに存在すべき行や存在すべきではない行を定義します。ルールの例には、アクセスリストやSNMPコミュティ文字列の確認などがあげられます。

以下の手順でルールを追加します。

  1. [コンプライアンス]→[ルール]画面右上のプラスアイコンをクリック
    ※デフォルトで複数のルールが定義されています。
  2. 以下の中から条件レベルを選択し、条件となるコンフィグ内容を設定
    ・簡易条件
    ・高度な条件
    ・高度なカスタム条件
  3. ルール名や説明を入力し、違反の重要度(重大、やや重大、警告)を指定
  4. コンプライアンスチェックにより、ルールに違反するコンフィグが含まれていると判定された場合、修復用のコンフィグレットを即座に実行することができます。 その場合には、事前にコンフィグ修正用のコンフィグレットを設定し、[修復テンプレート]で設定してください。
  5. 上記を設定し、[保存]

以下、各条件レベルの説明です。

簡易条件 高度な条件 高度なカスタム条件
コンフィグファイルの中で、1行または複数行の有無を確認します。

例:コンフィグに次の行がすべて含まれているかどうかを確認

snmp-server community public RO

snmp-server community private RW

Network Configuration Managerは、コンフィグファイルで、指定した行の有無を1つずつチェックします。

正規表現を使用してより複雑な条件を指定します。

例:コンフィグにenable secretが設定されているかどうかを確認

enable secret 5 $1$3Jcu$sB3

上記の例では、enable secretに続く1桁の数字と後続文字列は、ケースごとに変化します。そのため、ここでは簡易条件ではなく、高度な条件を使う必要があります。

コンフィグのブロックを指定し、範囲的にコンプライアンスチェックを実行します。
シングルラインブロック(単一行ブロック)またはマルチラインブロック(複数行ブロック)から選択します。

例:descriptionがすべてのインターフェースブロックに記載されているか確認

interface FastEthernet0/0
 description branch office 1 connectivity
 ip address 192.168.118.32 255.255.255.0
 service-policy output Stream
!
interface FastEthernet0/1
 description branch office 2 connectivity
 ip address 192.168.118.32 255.255.255.0
 service-policy output Stream
!

コンフィグには、上記のようなブロックが多数あります。また、インターフェース名とdescriptionはブロックごとに異なります。そのため、このようなケースでは「高度なカスタム条件」を使用する必要があります。これは、各コンフィグブロックを個別にチェックするのに役立ちます。


簡易条件

コンフィグファイルの中で、1行または複数行の有無を確認します。

条件 説明
すべての行を含める 対象装置のコンフィグに、指定したすべての行が含まれていることを条件とします。指定した行が1つでも含まれていない場合「違反」と判定されます。
チェックは1行ごと実行し、すべての行がコンフィグに存在すれば条件に準拠しているものと判定します。
※行の順序は考慮されません。

条件:すべての行を含める
チェックするコンフィグの行:

snmp-server community public RO
snmp-server community private RW

指定した行を含まない 条件「すべての行を含める」と反対の意味です。
コンフィグに指定した行が1つでも含まれる場合に、「違反」と判定されます。
※行の順序は考慮されません。

条件:指定した行を含まない
チェックするコンフィグの行:

snmp-server community public RO
snmp-server community private RW

指定したセットを含む あるコンフィグ4行を指定した場合、4行すべてが指定の順序通りで設定されているかチェックします。
指定した行が含まれないまたは順序通りでない場合、ルール違反とみなされます。
※行の順序が考慮されます。

条件:指定したセットを含む
チェックするコンフィグの行:

snmp-server enable traps hsrp
snmp-server enable traps config
snmp-server enable traps entity

指定したセットを含まない 条件「指定したセットを含む」と反対の意味です。
指定した行を含んでいるまたは順序通りである場合、ルール違反とみなされます。
※行の順序が考慮されます。
条件:指定したセットを含まない

チェックするコンフィグの行:

snmp-server enable traps hsrp
snmp-server enable traps config
snmp-server enable traps entity


高度な条件

正規表現を使用し、より複雑な条件が指定できます。

条件 説明
次の値を含む 指定した行がコンフィグ内に含まれる場合に「準拠」と判定されます。

条件:次の値を含める

enable secret \d \S+

次の値を含まない 指定した行がコンフィグ内に含まれていない場合に「準拠」と判定されます。

条件:次の値を含まない

enable secret \d \S+


高度なカスタム条件

「高度な条件」設定の拡張で、特定のコンフィグのブロック(単一ブロック/複数ブロック)を設定し、その間に含まれるコンフィグを対象にチェックします。

シングルラインブロック(単一行ブロック)

単一行の開始ブロック、および追加ブロック条件を指定し、コンプライアンスチェックを行う条件を指定します。

以下の例では、「snmp-server host test community version 2」といったコンフィグ行をブロック開始として識別し、条件に指定したコンフィグが設定されているか(準拠しているか)チェックします。

条件 説明
コンフィグ条件:
コンフィグブロック開始
チェックを行うブロックの開始行を入力

ブロック開始:snmp-server

追加ブロック条件:
・次の値を含む
・次の値を含まない
上記のブロックに対してさらに条件を指定

次の値を含む:test
次の値を含む:version

条件:
・次の値を含む
・次の値を含まない
指定したブロック内でチェックする行を指定

次の値を含む:verion 3


上記の条件により、コンプライアンスチェックでは以下のような結果が表示されます。

マルチラインブロック(複数行ブロック)

コンフィグのブロック開始行と終了行を指定し、ブロック単位でコンプライアンスチェックを行います。

以下の例では、開始ブロックを「interface」、終了ブロックを「!」とし、インターフェース単位の設定で特定のコンフィグ内容が含まれるか(準拠しているか)チェックします。

条件 説明
コンフィグ条件:
・コンフィグブロック開始
・コンフィグブロック終了
・チェックを行うブロックの開始行を入力
・チェックを行うブロックの終了行を入力

条件: すべてのインターフェースの設定状況をチェック

ブロック開始:interface
ブロック終了:!

追加ブロック条件:
・次の値を含む
・次の値を含まない
上記のブロックに対してさらに条件を指定

特定のインターフェースを対象にチェックを行う場合

次の値を含む:FastEthernet0/0
次の値を含む:FastEthernet0/1

条件:
・次の値を含む
・次の値を含まない
指定したブロック内でチェックする行を指定

条件:特定のdescription行が含まれているかチェック

次の値を含む:offce 1


上記の条件により、コンプライアンスチェックでは以下のような結果が表示されます。


2.ルールグループの追加

手順1で作成した複数のルールをグループとしてまとめます。
以下の手順でルールグループを追加します。

  1. [コンプライアンス]→[ルールグループ]画面右上のプラスアイコンをクリック
  2. ルールグループ名、説明を任意に入力し、ルールグループとして作成対象のルールを選択し、保存

3.コンプライアンスポリシーの追加

追加したルールグループと、コンプライアンスチェック対象装置との紐づけを行います。
以下の手順でコンプライアンスポリシーを追加します。

  1. [コンプライアンス]→[ポリシー]画面右上のプラスアイコンをクリック
  2. ポリシー名、説明を任意に入力し、コンプライアンスチェックを実行するコンフィグタイプ(ランニングコンフィグ/スタートアップコンフィグ)を選択
  3. ポリシー違反基準として、以下のいずれかを選択
    • 重要度に関係なく1つでもルールに違反したとき
    • 重要度の高いルール(重大、やや重大)に違反したとき
  4. コンプライアンスチェックに使用するルールグループを選択して、[次へ]
  5. コンプライアンスチェックを実行する装置または装置グループを指定し、[保存]

コンプライアンスチェックの実行

作成したコンプライアンスポリシーは、[コンプライアンス]→[ポリシー]一覧に追加されます。

追コンプライアンスポリシーのウィジェットの[コンプライアンスチェックの実行]をクリックすると、関連付けられた装置に対してコンプライアンスチェックが行われます。

  • 対象装置が準拠している場合:緑のステータス
  • 対象装置が違反している場合:赤のステータス

ポリシー違反している場合、ウィジェット上のパーセンテージをクリックすることでポリシーに設定されているルールごとに詳細を確認できます。

コンプライアンスチェックを定期的に実行する場合には、スケジュール機能による実行が可能です。
詳細は、こちらのページをご参照ください。


アドホックテストの実行

実行予定のルール/ルールグループの有効性を確認するためのAdhocテストを実行できます。
即時的に結果が表示されます。

以下の手順で、アドホックテストを実行します。

  1. [コンプライアンス]→[ポリシー]画面を表示
  2. チェック対象のコンプライアンスポリシーウィジェットの[Adhocテスト]をクリック
  3. チェック対象のコンフィグタイプ(runningコンフィグ、startupコンフィグ)を選択し、対象の装置または装置グループを指定
  4. [テスト]をクリックし、テスト結果を確認します。