手動 SA
手動セキュリティ アソシエーション (SA) IPsec ポリシー シナリオでは、IPsec SA を直接指定してネットワーク トラフィックをセキュリティで保護することで、呼び出し元は組み込みの IPsec キーリング モジュール (IKE および AuthIP) をバイパスできます。
考えられる手動 SA シナリオの例として、「IPsec トランスポート モードを使用して ICMP を除く IP アドレス 1.1.1.1.1 & 2.2.2 間のすべてのユニキャスト データ トラフィックをセキュリティで保護する IPsec SA ペアを追加する」があります。
Note
IP アドレスが適切に設定されている両方のマシンで、次の手順を実行する必要があります。
この例をプログラムで実装するには、次の WFP 構成を使用します。
次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast FWPM_CONDITION_IP_LOCAL_ADDRESS 適切なローカル アドレス (1.1.1.1 または 2.2.2.2)。 FWPM_CONDITION_IP_REMOTE_ADDRESS 適切なリモート アドレス (1.1.1.1 または 2.2.2.2)。 action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6} 次のプロパティを持つフィルターを追加して、IPsec から ICMP トラフィックを除外します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されています。 action.type FWP_ACTION_PERMIT weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS 次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS 適切なローカル アドレス (1.1.1.1 または 2.2.2.2)。 フィルター条件のFWPM_CONDITION_IP_REMOTE_ADDRESS 適切なリモート アドレス (1.1.1.1 または 2.2.2.2)。 action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6} 次のプロパティを持つフィルターを追加して、IPsec から ICMP トラフィックを除外します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast フィルター条件のFWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されています。 action.type FWP_ACTION_PERMIT weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS - IPsecSaContextCreate0 を呼び出します。outboundTraffic パラメーターには IP アドレスが 1.1.1.1 & 2.2.2、ipsecFilterId が送信トランスポート層の IPsec 吹き出しフィルターの LUID として追加されています。
- IPsecSaContextCreate0 から返されたコンテキスト ID を含む id パラメーターと、IP アドレスを含む getSpi パラメーターを 1.1.1.1 2.2.2.2&、ipsecFilterId を受信トランスポート層 IPsec コールアウト フィルターの LUID として、IPsecSaContextGetSpi0 を呼び出します。 返される SPI 値は、ローカル コンピューターでは受信 SA SPI として、対応するリモート コンピューターでは送信 SA SPI として使用されます。 どちらのマシンも、SPI 値を交換するために帯域外の手段を使用する必要があります。
- IPsecSaContextAddInbound0 を呼び出します。id パラメーターには、IPsecSaContextCreate0 から返されたコンテキスト ID と、受信 SA バンドルのプロパティ (受信 SA SPI、変換の種類、アルゴリズムの種類、キーなど) を記述する inboundBundle パラメーターが含まれます。
- IPsecSaContextAddOutbound0 を呼び出します。id パラメーターには、IPsecSaContextCreate0 から返されたコンテキスト ID と、送信 SA バンドルのプロパティ (送信 SA SPI、変換の種類、アルゴリズムの種類、キーなど) を記述する outboundBundle パラメーターが含まれます。
FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} では、パケットごとの受信フィルター規則を設定します
FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} でパケットごとの送信フィルター規則を設定する
受信と送信のセキュリティ関連付けを設定する