次の方法で共有


手動 SA

手動セキュリティ アソシエーション (SA) IPsec ポリシー シナリオでは、呼び出し元は IPsec SA を直接指定してネットワーク トラフィックをセキュリティで保護することで、組み込みの IPsec キー モジュール (IKE および AuthIP) をバイパスできます。

手動 SA シナリオの例として、"IPsec トランスポート モードを使用した ICMP を除く、IP アドレス 1.1.1.1 & 2.2.2.2 間のすべてのユニキャスト データ トラフィックをセキュリティで保護する IPsec SA ペアを追加する" があります。

手記

IP アドレスが適切に設定されている両方のマシンで、次の手順を実行する必要があります。

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

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

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

    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}
  2. 次のプロパティを持つフィルターを追加して、IPsec から ICMP トラフィックを除外します。

    Filter プロパティ 価値
    フィルター条件の FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    フィルター条件の FWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されます。
    action.type する FWP_ACTION_PERMIT
    重み する FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

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

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

    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}
  2. 次のプロパティを持つフィルターを追加して、IPsec から ICMP トラフィックを除外します。

    Filter プロパティ 価値
    フィルター条件の FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    フィルター条件の FWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**これらの定数は winsock2.h で定義されます。
    action.type する FWP_ACTION_PERMIT
    重み する FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

受信と送信のセキュリティ 関連付けの設定

  1. IPsecSaContextCreate0を呼び出します。outboundTraffic パラメーターには IP アドレスが 1.1.1.1 & 2.2.2.2、ipsecFilterId が、上記で追加された送信トランスポート層 IPsec 吹き出しフィルターの LUID として されます。
  2. IPsecSaContextCreate0から返されたコンテキスト ID を含む id パラメーターと、IP アドレスを 1.1.1.1& 2.2.2.2 として含む getSpi パラメーターを使用して、IPsecSaContextGetSpi0呼び出します。 ipsecFilterId 、上記で追加した受信トランスポート層 IPsec 吹き出しフィルターの LUID として されます。 返される SPI 値は、ローカル コンピューターでは受信 SA SPI として、対応するリモート コンピューターでは送信 SA SPI として使用されます。 どちらのマシンも、SPI 値を交換するために帯域外の手段を使用する必要があります。
  3. IPsecSaContextCreate0 から返されたコンテキスト ID を含む id パラメーターと、受信 SA バンドルのプロパティを記述する inboundBundle パラメーター (受信 SA SPI、変換の種類、アルゴリズムの種類、キーなど) を使用して、IPsecSaContextAddInbound0を呼び出します。
  4. IPsecSaContextAddOutbound0を呼び出します。IPsecSaContextCreate0から返されたコンテキスト ID を含む id パラメーターと、送信 SA バンドルのプロパティを記述する outboundBundle パラメーター (送信 SA SPI、変換の種類、アルゴリズムの種類、キーなど) を指定します。

サンプル コード: 手動 SA キー

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

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

FWPM_ACTION0