次の方法で共有


リモート ID の認可

リモート ID 承認 IPsec ポリシー シナリオでは、受信接続は、Windows セキュリティ記述子 (SD) アクセス制御リスト (ACL) で指定されているリモート セキュリティ プリンシパルの特定のセットから送信される必要があります。 リモート ID (IPsec によって決定される) が許可されている ID のセットと一致しない場合、接続は削除されます。 このポリシーは、トランスポート モード ポリシー オプションの 1 つと組み合わせて指定する必要があります。

AuthIP が有効になっている場合は、2 つのセキュリティ記述子を指定できます。1 つは AuthIP メイン モードに対応し、もう 1 つは AuthIP 拡張モードに対応します。

考えられるネゴシエーション探索トランスポート モード シナリオの例として、TCP ローカル ポート 5555 に対応するすべてのユニキャスト トラフィックについて、"ICMP を除くすべてのユニキャスト データ トラフィックをセキュリティで保護し、ネゴシエーション検出を有効にし、セキュリティ記述子 SD1 (IKE/AuthIP メイン モードに対応) とセキュリティ記述子 SD2 (AuthIP 拡張モードに対応) に従って許可されるリモート ID への受信アクセスを制限する」があります。

この例をプログラムで実装するには、次の WFP 構成を使用します。

FWPM_LAYER_IKEEXT_V{4|6} MM ネゴシエーション ポリシーのセットアップ時

  1. 次の MM ポリシー プロバイダー コンテキストのいずれかまたは両方を追加します。

    • IKE の場合、種類が FWPM_IPSEC_IKE_MM_CONTEXTのポリシー プロバイダー コンテキスト。
    • AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_MM_CONTEXTのポリシー プロバイダー コンテキスト。

    Note

    共通キーモジュールがネゴシエートされ、対応する MM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。

  2. 手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。
    providerContextKey 手順 1 で追加された MM プロバイダー コンテキストの GUID。

FWPM_LAYER_IPSEC_V{4|6} で QM と EM ネゴシエーション ポリシーを設定する

  1. 次の QM トランスポート・モード・ポリシー・プロバイダー・コンテキストの一方または両方を追加し、 IPSEC_POLICY_FLAG_ND_SECURE フラグを設定します。

    • IKE の場合、種類が FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。
    • AuthIP の場合、AuthIP 拡張モード (EM) ネゴシエーション ポリシーを含む種類 FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT のポリシー プロバイダー コンテキスト。

    Note

    共通キー作成モジュールがネゴシエートされ、対応する QM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。

  2. 手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。
    providerContextKey 手順 1 で追加された QM プロバイダー コンテキストの GUID。

FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} では、パケットごとの受信フィルター規則を設定します

  1. 次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6}
    rawContext FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY
  2. 次のプロパティを持つフィルターを追加して、ICMP トラフィックを IPsec から除外します。

    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

FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} でパケットごとの送信フィルター規則を設定する

  1. 次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6}
    rawContext FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER
  2. 次のプロパティを持つフィルターを追加して、ICMP トラフィックを IPsec から除外します。

    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

FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} では、接続ごとの受信フィルター規則を設定します

  1. 次のプロパティを含むフィルターを追加します。 このフィルターでは、受信接続の試行が IPsec によって保護されている場合にのみ許可されます。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6}
  2. 次のプロパティを持つフィルターを追加して、ICMP トラフィックを IPsec から除外します。

    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
  3. 次のプロパティを含むフィルターを追加します。 対応するリモート ID が SD1 と SD2 の両方で許可されている場合、このフィルターは TCP ポート 5555 への受信接続を許可します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    フィルター条件のFWPM_CONDITION_IP_PROTOCOL IPPROTO_TCPこの定数は winsock2.h で定義されます。
    フィルター条件のFWPM_CONDITION_IP_LOCAL_PORT 5555
    FWPM_CONDITION_ALE_REMOTE_MACHINE_ID SD1
    FWPM_CONDITION_ALE_REMOTE_USER_ID SD2
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6}
  4. 次のプロパティを含むフィルターを追加します。 このフィルターは、前のフィルターと一致しなかった TCP ポート 5555 への他の受信接続をブロックします。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    フィルター条件のFWPM_CONDITION_IP_PROTOCOL IPPROTO_TCPこの定数は winsock2.h で定義されます。
    フィルター条件のFWPM_CONDITION_IP_LOCAL_PORT 5555
    action.type FWP_ACTION_BLOCK

サンプル コード: トランスポート モードの使用

ALE レイヤー

組み込みの吹き出し識別子

フィルター条件

レイヤー識別子のフィルター処理

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE