セキュリティ : Cisco NAC アプライアンス(Clean Access)

Windows GPO のスクリプトと Cisco NAC 相互運用性

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、PC の起動時、およびドメインへのユーザのログイン時の Windows GPO の設定例について説明します。 Windows GPO は、PC の起動時やドメインへのユーザ ログオン時にさまざまなスクリプトを実行するように設定できます。 スクリプトは、企業で環境変数を設定したり、リモート ドライブをマップしたりするためなどによく使用されます。

Cisco NAC は、ユーザが初めて Windows マシンに接続してログオンするときにネットワークへのアクセスを制御します。

スクリプトは、スタートアップ/シャットダウン スクリプトとログオン/ログオフ スクリプトに分類できます。

Windows では、スタートアップ/シャットダウン スクリプトがマシン コンテキストで実行されます。 これは、PC のブートアップまたはシャットダウン中にスクリプトが実行されるときの特定のロール(通常は非認証ロール)用にスクリプトが必要とするネットワーク リソースを Cisco NAC アプライアンスが開いている場合にのみ機能します。

ログオン/ログオフ スクリプトは、ユーザ コンテキストで実行されます。つまり、ログオン スクリプトはユーザが Windows GINA 経由でログインした後で実行されます。 その時点で、ユーザ認証またはマシン ポスチャ アセスメントが完了しておらず、ネットワーク アクセスが許可されていなければ、ログオン スクリプトが実行できないまたは実行を完了できない可能性があります。 これらのスクリプトは、OOB ログオン イベント後に NAC エージェントによって開始される IP アドレスの更新によって中断される場合もあります。

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

GPO スクリプトに関する一般的な推奨事項

GPO スクリプトに関する一般的な推奨事項を以下に示します。

  1. デバッグ時はスクリプトを表示モードで実行します。 これにより、ログオン スクリプトが実際に実行される様子を画面上で確認できます。

    この GPO ポリシーは、[Domain Policy] > [User Configuration] > [Administrative Templates] > [System] > [Scripts] で設定できます。

    windows_gpo_cisco_nac1.gif

  2. コンピュータがスタートアップ時とログオン時にネットワークが使用可能になるまで待機するように設定されていることを確認します。

    この GPO ポリシーは、[Domain Policy] > [Computer Configuration] > [Administrative Templates] > [System] > [Logon] で設定できます。

    /image/gif/paws/108539/windows_gpo_cisco_nac2.gif

NAC セットアップに関する一般的な推奨事項

GPO と一緒に使用する場合の NAC セットアップに関する一般的な推奨事項を以下に示します。

  1. 必要なトラフィックが非認証ロールで CAS 上を流れることができるようにすることで、ネットワーク経由での Windows ドメインへのログオンと、実行のためのログオン スクリプトの AD からクライアント マシンへのコピーが可能になるようにします。

    Ports are TCP : 88,123,135,137,139,389,445,1025,1026,3268
    Ports are UDP : 88,123,135,137,139,389,445,1025,1026,3268
    Allow Fragmented packets and ICMP to all domain controllers. 

    windows_gpo_cisco_nac4.gif

    特定のドメインに複数の DC が存在する場合、Windows は、PING 検出プロセスを使用して、最も近い DC を検索します。 ICMP に 2 つの DC が許可されていない場合は、クライアントのログインに時間がかかる可能性があります。これは、クライアントが最初の検出に失敗した場合にランダムな DC を選択するためです。

  2. Windows AD 環境では、可能な限り、認証方式としてAD SSO を使用してください。 そうすれば、ユーザ ログオン プロセスが自動化および高速化されるだけでなく、ユーザ エクスペリエンス全体が向上します。

設定

いくつかのシナリオと推奨されている NAC 設定を以下に示します。

シナリオ 1

Windows ログオン スクリプトが AD コントローラから起動され、非同期的に実行される。

非同期のスクリプト実行は Win2003 AD のデフォルト動作です。 Windows ログオン スクリプトが非同期的に動作する場合は、スクリプトの呼び出し後に、コントロールが Windows ログオン プロセスに戻されます。 スクリプトの実行が終わるまで待機しません。 そのため、スタートアップ プログラムと NAC エージェントを正常にロードすることができます。

ログオン スクリプトでネットワーク アクセスが必要な場合は、それが可能になるまで時間がかかる可能性があります。これは、ネットワーク アクセスが NAC アプライアンスによって制御され、NAC への正常なユーザ ログオン後にアクセスが許可されるためです。 実際のログオン スクリプトを実行する前に、ログオン スクリプトをチェックしてネットワークの可用性を確認してください。以下に例を示します。

:CHECK
@echo off
echo Please wait....
ping -n 1 -l 1 10.10.10.10 
if errorlevel 1 goto CHECK
@echo on

# Now the actual Logon script:

net use L: \\fileserver\share

ネットワーク トポロジに合わせてスクリプトを変更します。

この回避策はシンプルなため、ログオン スクリプトが非同期的に動作しており、帯域外 NAC 展開などの結果として IP アドレスが変更されない限り、正常に機能します。

スクリプトが同期的に動作している場合は、この回避策が機能しません。これは、ログオン スクリプトの実行が完了するまで NAC エージェントはメモリにロードされませんが、ログオン スクリプトはネットワーク リソースが使用可能になるまで実行を完了しないためです。ネットワーク リソースは NAC エージェントがクライアント PC を認証してからでなければ使用可能になりません。

このスクリーン ショットは、上記理由でクライアント PC が永久ループ状態になることを示しています。

windows_gpo_cisco_nac3.gif

このシナリオは、スクリプトがダウンロードに時間がかかる低速の WAN リンク上で非同期的に動作しており、NAC が IP 更新を設定可能な OOB トポロジに展開されている状況でも失敗する可能性があります。 スクリプトの実行中に IP が更新されると、スクリプトの実行が中断する可能性があります。 このような場合は、IP 更新プロセスとスクリプト実行が競合しないようにスクリプトを同期的に実行することを強くお勧めします。 このシナリオはこのような状況を再現しています。

シナリオ 2

Windows ログオン スクリプトが AD コントローラから同期的に実行される。

同期スクリプトは、IP 更新が実行される NAC OOB 展開に推奨されています。

この基本的な概念は、元のログオン スクリプトの機能を 2 つのスクリプトに分割することです。

ログオン スクリプトとして実行されるスクリプト 1 は、NAC エージェントが認証され、ネットワーク アクセスが許可されてから実行される 2 つ目のスクリプトをローカル マシンにコピーするだけです。

2 つ目のスクリプトは、ユーザのスタートアップ フォルダに配置することによって、Windows のスタートアップ プログラムから自動的に呼び出すことができます。以下に例を示します。

スクリプト 1:

AD から実行されたログオン スクリプトが、後で実行される "mount.bat" という名前の実際のスクリプトをユーザのスタートアップ フォルダにコピーします。

echo Please wait....
sleep 20
copy \\1.1.1.11\SHARE\mount.bat 
   "c:\Documents and Settings\All users\Start Menu\Programs\Startup\mount.bat"

ネットワーク トポロジに合わせてスクリプトを変更してください。

必要なトラフィックが非認証ロールで CAS 上を流れることができるようにすることで、ネットワーク経由での Windows ドメインへのログオンと、実行のためのログオン スクリプトの AD からクライアント マシンへのコピーが可能になるようにします。

スクリプト 2:

実際のアクションが実行される 2 つ目のスクリプトは、システムからローカルに起動され、セキュリティ上の理由から実行後に削除されます。

ipconfig
:CHECK
@echo off
echo Please wait....
sleep 10
Ping -n 1 -l 1 10.10.10.10
if errorlevel 1 goto CHECK
@echo on
# Now the actual Logon script:

net use L: \\fileserver\share 
del c:\Documents and Settings\All users\Start Menu\Programs\Startup\mount.bat"

windows_gpo_cisco_nac5.gif

このスクリーン ショットは、バックグラウンドで実行される 2 つ目のスクリプトがユーザのスタートアップ フォルダから起動され、NAC エージェントが認証後に IP 更新を実行する様子を表しています。 2 つ目のスクリプトは、エージェントが認証と IP 更新プロセスを完了するまでループして待機し、その後でドライブをマップします。

トラブルシューティング

トラブルシューティングは個別に実行する必要がありますが、最初にクライアント PC が接続されているスイッチ ポート上でパケットをキャプチャすることをお勧めします。 これにより、ネットワーク上のイベントやアクティビティに対する知見が得られます。


関連情報


Document ID: 108539