Freigeben über


Transportmodus für die Verhandlungsermittlung

Das IPsec-Richtlinienszenario für den Verhandlungsermittlungs-Transportmodus erfordert den IPsec-Transportmodusschutz für den gesamten übereinstimmenden eingehenden Datenverkehr und fordert IPsec-Schutz für den übereinstimmenden ausgehenden Datenverkehr an. Ausgehende Verbindungen können daher auf Klartext zurückfallen, eingehende Verbindungen hingegen nicht.

Wenn der Hostcomputer mit dieser Richtlinie eine neue ausgehende Verbindung versucht und keine IPsec SA vorhanden ist, die dem Datenverkehr entspricht, sendet der Host die Pakete gleichzeitig in Klartext und startet eine IKE- oder AuthIP-Aushandlung. Wenn die Aushandlung erfolgreich ist, wird die Verbindung auf IPsec-geschützt aktualisiert. Andernfalls bleibt die Verbindung im Klartext. Sobald IPsec geschützt ist, kann eine Verbindung nie auf Klartext herabgestuft werden.

Der Transportmodus für die Aushandlungsermittlung wird in der Regel in Umgebungen verwendet, die sowohl IPsec-fähige als auch Nicht-IPsec-fähige Computer enthalten.

Ein Beispiel für ein mögliches Szenario für den Transportmodus für die Verhandlungsermittlung ist "Sichern des gesamten Unicastdatenverkehrs mit Ausnahme von ICMP mithilfe des IPsec-Transportmodus und Aktivieren der Aushandlungsermittlung".

Verwenden Sie die folgende WFP-Konfiguration, um dieses Beispiel programmgesteuert zu implementieren.

Einrichten der MM-Aushandlungsrichtlinie unter FWPM_LAYER_IKEEXT_V{4|6}

  1. Fügen Sie einen oder beide der folgenden MM-Richtlinienanbieterkontexte hinzu.

    • Für IKE ist ein Richtlinienanbieterkontext vom Typ FWPM_IPSEC_IKE_MM_CONTEXT.
    • Für AuthIP ist ein Richtlinienanbieterkontext vom Typ FWPM_IPSEC_AUTHIP_MM_CONTEXT.

    Hinweis

    Es wird ein gemeinsames Schlüsselmodul ausgehandelt und die entsprechende MM-Richtlinie angewendet. AuthIP ist das bevorzugte Schlüsselmodul, wenn sowohl IKE als auch AuthIP unterstützt werden.

  2. Fügen Sie für jeden in Schritt 1 hinzugefügten Kontext einen Filter mit den folgenden Eigenschaften hinzu.

    Filter-Eigenschaft Wert
    Filterbedingungen Leer. Der gesamte Datenverkehr entspricht dem Filter.
    providerContextKey GUID des in Schritt 1 hinzugefügten MM-Anbieterkontexts.

Richten Sie FWPM_LAYER_IPSEC_V{4|6} eine Qm- und EM-Verhandlungsrichtlinie ein.

  1. Fügen Sie einen oder beide der folgenden Qm-Transportmodus-Richtlinienanbieterkontexte hinzu, und legen Sie das flag IPSEC_POLICY_FLAG_ND_SECURE fest.

    • Für IKE ist ein Richtlinienanbieterkontext vom Typ FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT.
    • Für AuthIP ist ein Richtlinienanbieterkontext vom Typ FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT. Dieser Kontext kann optional die AuthIP-Aushandlungsrichtlinie im erweiterten Modus (EM) enthalten.

    Hinweis

    Es wird ein gemeinsames Schlüsselmodul ausgehandelt und die entsprechende QM-Richtlinie angewendet. AuthIP ist das bevorzugte Schlüsselmodul, wenn sowohl IKE als auch AuthIP unterstützt werden.

  2. Fügen Sie für jeden in Schritt 1 hinzugefügten Kontext einen Filter mit den folgenden Eigenschaften hinzu.

    Filter-Eigenschaft Wert
    Filterbedingungen Leer. Der gesamte Datenverkehr entspricht dem Filter.
    providerContextKey GUID des in Schritt 1 hinzugefügten QM-Anbieterkontexts.

Richten Sie bei FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} Eingehende Filterregeln pro Paket ein.

  1. Fügen Sie einen Filter mit den folgenden Eigenschaften hinzu.

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung 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. Befreien Sie DEN ICMP-Datenverkehr von IPsec, indem Sie einen Filter mit den folgenden Eigenschaften hinzufügen.

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL Filterbedingung **IPPROTO_ICMP{V6}**Diese Konstanten werden in winsock2.h definiert.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

Richten Sie bei FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} Regeln für die Paketfilterung für ausgehenden Datenverkehr ein.

  1. Fügen Sie einen Filter mit den folgenden Eigenschaften hinzu.

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung 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. Befreien Sie DEN ICMP-Datenverkehr von IPsec, indem Sie einen Filter mit den folgenden Eigenschaften hinzufügen.

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL Filterbedingung **IPPROTO_ICMP{V6}**Diese Konstanten werden in winsock2.h definiert.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

Richten Sie bei FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} Eingehende Filterregeln pro Verbindung ein.

  1. Fügen Sie einen Filter mit den folgenden Eigenschaften hinzu. Dieser Filter lässt eingehende Verbindungsversuche nur zu, wenn sie durch IPsec gesichert sind.

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6}
  2. Lassen Sie ICMP-Datenverkehr von IPsec aus, indem Sie einen Filter mit den folgenden Eigenschaften hinzufügen.

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL Filterbedingung **IPPROTO_ICMP{V6}**Diese Konstanten sind in winsock2.h definiert.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

Beispielcode: Verwenden des Transportmodus

ALE-Ebenen

Integrierte Bezeichner für Legende

Filterbedingungen

Filtern von Ebenenbezeichnern

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE