Freigeben über


Manual SA

Das IPsec-Richtlinienszenario (Manual Security Association, SA) ermöglicht Es Anrufern, die integrierten IPsec-Schlüsselingmodule (IKE und AuthIP) zu umgehen, indem sie IPsec-SAs direkt angeben, um jeden Netzwerkdatenverkehr zu schützen.

Ein Beispiel für ein mögliches Szenario für manuelle SA ist "Hinzufügen eines IPsec SA-Paars zum Sichern des gesamten Unicastdatenverkehrs zwischen IP-Adressen 1.1.1.1 & 2.2.2.2, mit Ausnahme von ICMP, mit dem IPsec-Transportmodus."

Anmerkung

Die folgenden Schritte müssen auf beiden Computern ausgeführt werden, auf dem IP-Adressen entsprechend festgelegt sind.

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

Bei FWPM_LAYER_INBOUND_TRANSPORT_V{4|6}-Setup eingehender Paketfilterregeln

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

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung NlatUnicast-
    FWPM_CONDITION_IP_LOCAL_ADDRESS Die entsprechende lokale Adresse (1.1.1.1 oder 2.2.2.2.2).
    FWPM_CONDITION_IP_REMOTE_ADDRESS Die entsprechende Remoteadresse (1.1.1.1 oder 2.2.2.2.2).
    FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey- FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6}
  2. Ausgenommen 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.
    FWP_ACTION_PERMIT
    Gewichtung FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

Bei FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} richten Sie ausgehende Filterregeln pro Paket

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

    Filter-Eigenschaft Wert
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE Filterbedingung NlatUnicast
    FWPM_CONDITION_IP_LOCAL_ADDRESS Filterbedingung Die entsprechende lokale Adresse (1.1.1.1 oder 2.2.2.2.2).
    FWPM_CONDITION_IP_REMOTE_ADDRESS Filterbedingung Die entsprechende Remoteadresse (1.1.1.1 oder 2.2.2.2.2).
    FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey- FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6}-
  2. Ausgenommen 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.
    FWP_ACTION_PERMIT
    Gewichtung FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

Einrichten von eingehenden und ausgehenden Sicherheitszuordnungen

  1. Rufen Sie IPsecSaContextCreate0mit dem Parameter outboundTraffic auf, der die IP-Adressen als 1.1.1.1 & 2.2.2.2 enthält, und ipsecFilterId als LUID des oben hinzugefügten IPsec-Popupfilters der ausgehenden Transportebene.
  2. Rufen Sie IPsecSaContextGetSpi0auf, wobei der parameter id enthält, der die kontext-ID enthält, die von IPsecSaContextCreate0zurückgegeben wird, und der getSpi Parameter mit den IP-Adressen als 1.1.1.1 & 2.2.2.2, und ipsecFilterId als LUID des oben hinzugefügten IPsec-Popupfilters für eingehende Transportebene. Der zurückgegebene SPI-Wert soll als eingehender SA SPI vom lokalen Computer und als ausgehender SA SPI vom entsprechenden Remotecomputer verwendet werden. Beide Computer müssen einige Out-of-Band-Mittel verwenden, um die SPI-Werte auszutauschen.
  3. Rufen Sie IPsecSaContextAddInbound0auf, wobei die ID Parameter enthält, der die kontext-ID enthält, die von IPsecSaContextCreate0zurückgegeben wird, und der inboundBundle Parameter, der die Eigenschaften des eingehenden SA-Bundles beschreibt (z. B. den eingehenden SA SPI, den Transformationstyp, Algorithmustypen, Schlüssel usw.).
  4. Rufen Sie IPsecSaContextAddOutbound0auf, wobei der parameter id enthält, der die kontext-ID enthält, die von IPsecSaContextCreate0zurückgegeben wird, und der parameter outboundBundle beschreibt die Eigenschaften des ausgehenden SA-Bündels (z. B. den ausgehenden SA SPI, den Transformationstyp, Algorithmustypen, Schlüssel usw.).

Beispielcode: Manuelle SA-Taste

integrierte Bezeichner für Beschriftungen

Filterschichtbezeichner

FWPM_ACTION0