IPsec

IPsecのやりとりの流れ IPsecまずは全体の流れをつかもう


セキュリティポリシー内には、IPsecを適用する場合の実際に利用するIPsecプロトコル(AH、ESP、IPComp)の具体的な内容やモード(トランスポート、トンネル)も指定する。


■暗号鍵はトンネルごとに異なる。
IPsecゲートウエイは複数のトンネルを区別するために,やりとりするパケット中にSPIという識別番号を付ける。
■同じゲートウエイとの間でも,その先が複数のネットワークに分かれていたりすると,トンネルが複数できる。


■IP セキュリティ モニタを使用すると、管理者は IP セキュリティ (IPSec) 通信が正常に保護されているかどうかを確認できます。このツールでは、AH (Authentication Header) や ESP (Encapsulating Security Payload ) のセキュリティ プロトコルを介していくつのパケットが送信されたか、あるいはコンピュータが最後に起動されて以来セキュリティのアソシエーションやキーがいくつ生成されたかを確認できます。


■IP セキュリティ モニタは、IP セキュリティが対象コンピュータ上で有効かどうかも示します。この情報はウィンドウの右下隅に表示されます。IP セキュリティ モニタ内の統計情報をリセットするには、[コンピュータの管理] スナップイン (Compmgmt.msc) にある [IP セキュリティ ポリシー エージェント] を再起動します。


■インターネット プロトコル セキュリティ (IPSec) 用の Netsh コマンドは、[IP セキュリティ ポリシーの管理] コンソールと [IP セキュリティ モニタ] コンソールによって提供されるコンソール ベースの管理機能および診断機能とまったく同じ機能を提供します。


■Netsh ipsec 静的モードのコマンド
netsh ipsec static のコマンドを使用すると、[IP セキュリティ ポリシーの管理] コンソールおよび [IP セキュリティ モニタ] コンソールで実行する場合と同じ管理タスクと監視タスクを実行できます。これらのコマンドでは、アクティブな IPSec ポリシーに直接影響を与えることなく、IPSec ポリシーの作成、変更、および割り当てを行うことができます。


■Netsh ipsec 動的モードのコマンド
netsh ipsec dynamic のコマンドを使用すると、IPSec のアクティブな状態を表示し、アクティブな IPSec ポリシーの構成を直接変更できます。これらのコマンドは、セキュリティ ポリシー データベース (SPD) を直接構成するものです。これらのコマンドを使用して IPSec ポリシーに加えた変更は、IPSec サービスが実行中の間のみ有効です。IPSec サービスが停止すると、動的ポリシー設定は破棄されます。これらのコマンドのほとんどはその結果が直ちに反映されますが、IPSec サービスを再起動するか、コンピュータを再起動しないと結果が反映されない構成コマンドもいくつかあります。これらのコマンドの詳細については、netsh ipsec dynamic set config コマンドの構文の説明を参照してください。


■Netsh の概要
netsh は、実行中のコンピュータのネットワーク構成を表示または修正するコマンド ライン スクリプト ユーティリティです。ローカルでもリモートでも使用できます。また、指定したコンピュータに対してコマンド グループをバッチ モードで実行できるスクリプト機能も提供しています。さらに netsh を使ってテキスト ファイルに構成スクリプトを保存することもでき、保管したり、他のサーバーを構成する際に利用できます。


IPsecはIPプロトコルそのものに機能を追加するような形で実装される。つまり、上位のプロトコルに依存せず、より汎用的に利用することが可能なのだ。


IPsecネットワーク層プロトコル


■IKEは、AHやESP、IPCompで使用するアルゴリズムや鍵などの情報を交換するためのプロトコルで、UDPポート500番を利用する、独立した通信をおこなうプロトコルである。


■この鍵交換は手動でおこなうのは非現実的なので、通常は自動鍵交換プロトコルが利用される。この鍵交換プロトコルフレームワークとして既定されているものがISAKMP(Internet Security Association and Key Management Protocol: アイサカンプ)で、IKEはその実現手段のひとつである。


■ 2種類の動作モードとは,トランスポート・モードとトンネル・モードだ。トランスポート・モードは,端末同士が1対1の関係で,やりとりするパケットのデータ部分だけに暗号を施したりする。


VPNで、実際にパケットをやり取りする前に、VPN装置間でコネクションを確立する必要があります。そのコネクションは「SA」と呼ばれるトンネルです。IPSec で通信行う場合、全てこの「SA」というトンネルを経由してパケットを送受信します。

 「SA」を生成するためにIPSecでは、IKE(インターネット鍵交換プロトコル)を使用してIPSec においてセッションとも言える「SA」を制御しています。

 IKEのコネクションは、安全性を高めるためにフェーズ1とフェーズ2の2つの段階を経て「SA」が構築されます。フェーズ1は、「SA」を生成するための下準備になります。


■IKEv1は Internet Key Exchange protocol version 1 の意味であり、UDPポート番号500上で通信される鍵交換プロトコルである。開発時には ISAKMP/Oakley と呼ばれた過去があり、これはISAKMP(Internet Security Association and Key Management Protocol)プロトコルの上でOakley鍵交換手順を実装したものという意味である。すなわち、IKEv1はISAKMPと必ずしも同じものではない。


■IKEv1はフェーズ1、フェーズ2と呼ばれる二段階の手順で鍵交換を行う。まずフェーズ1でIKEプロトコル同士の認証と暗号交換を行い(これをISAKMP SA交換とも呼ぶ)、フェーズ2でIPsecの適用条件と鍵情報の交換を行う(IPsec SA交換とも呼ぶ)。 フェーズ1にはMain Mode,Aggressive Modeと呼ばれる2つの手順がある。


■フェーズ2の通信はフェーズ1において成立した共有鍵を用いて暗号化される。フェーズ2の手順はQuick Modeと呼ばれ、これはISAKMPにはなくIKEv1で新たに定義されたものである。IKEv1の規格上ではNew Group Modeという手順も定義されているが、実際には殆ど使われていない。


SHA1MD5は、認証の際に、データ改ざんやなりすましが行われていないかどうかを、ハッシュ関数を使ってチェックを行う整合性アルゴリズムに対応しています。


■ターミナルサービスセッション通信でIPsecを使用しているコンピュータがターミナルサービス接続を失わないようにするには、IPSEC Servicesサービスを停止し、再起動する必要があります。コマンドプロンプトで、「net stop policyagent & net start policyagent」と1行でコマンドを入力し、実行します。


■「IPsec通信のIKEプロトコルを使用した処理に問題があるようです」という問題文から、メインモードまたはクイックモードにおける処理に問題があると考えられます。
IPsec関連の監査ログを有効にし、イベントビューアでログを確認することで、メインモードまたはクイックモードにおける失敗を効率的にトラブルシューティングできます。
監査イベントによって十分な情報が得られない場合は、IKEプロトコルに関連する通信の詳細なトレースを有効にできます。ただし、このログを理解するには、ISAKMPおよびIKE関連のRFC(RFC2408およびRFC2409)の専門知識が必要です。
Windows Server2003では、IPSEC Servicesサービスの実行中にIKEトレース情報のログを動的に有効または無効にできます。この作業には、netshコマンドを使います。


netsh ipsec dynamic set config ikelogging 1
netsh ipsec dynamic set config ikelogging 0

オプションが1の場合には有効に、0の場合には無効になります。0が既定です。


Windows 2000Windows XPでは、レジストリエディタを使用し、HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PolicyAgent\OakleyキーにEnablelogging(REG DWORD)を追加し、値として1を設定してから、IPSEC Servicesサービスを再起動することによって、IKEのデバッグログを有効にできます。このデバッグログファイルは、既定で%windir%Debug\oakley.logに書き込まれます。


IPsecで使用する認証方法は、kerberos、事前共有キー、証明書です。この中で、事前共有キーによる認証は、ほかのIPsecで使用できる認証方法に比べて脆弱な認証方法であるため、kerberosまたは証明書のほうが望ましいといえます。
しかし、問題文の環境ではワークグループを構成しているため、認証方法としてkerberosを使用できません。kerberosによる認証は、Windows XP Home EditionやWindows Server2003またはWindows2000Active Directoryドメインに参加していないWindows2000Windows XPWindows Server2003ではサポートされていません。


IPsec通信を行えるようにするためには、[IPセキュリティポリシーの管理]やグループポリシーを使用して、IPセキュリティポリシーを構成します。
次の3種類が既定のポリシーとして提供されています。
・[クライアント(応答のみ)]
サーバからセキュリティで保護された通信を要求された場合にはIPsec通信を行いますが、そうでない場合は、通信をセキュリティで保護しません。


・[サーバー(セキュリティが必要)]
通常、サーバはセキュリティで保護された通信を要求します。もう一方のコンピュータがIPsecをサポートしていない場合は、セキュリティで保護しない通信が許可されます。


・[セキュリティで保護されたサーバー(セキュリティが必要)]常にサーバはセキュリティで保護された通信を要求します。もう一方のコンピュータがIPsecをサポートしていない場合には、通信を許可しません。