Partager via


SA manuelle

Le scénario de stratégie IPsec d’association de sécurité manuelle (SA) permet aux appelants de contourner les modules de keying IPsec intégrés (IKE et AuthIP) en spécifiant directement les autorités de sécurité IPsec pour sécuriser tout trafic réseau.

Un exemple de scénario d’authentification unique manuelle possible est « Ajouter une paire SA IPsec pour sécuriser tout le trafic de données unicast entre les adresses IP 1.1.1.1 & 2.2.2, à l’exception d’ICMP, à l’aide du mode de transport IPsec ».

Notes

Les étapes suivantes doivent être exécutées sur les deux ordinateurs avec des adresses IP correctement définies.

Pour implémenter cet exemple par programmation, utilisez la configuration PAM suivante.

À FWPM_LAYER_INBOUND_TRANSPORT_V{4|6}, configurez les règles de filtrage par paquet entrant

  1. Ajoutez un filtre avec les propriétés suivantes.

    Filter, propriété Valeur
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE condition de filtrage NlatUnicast
    FWPM_CONDITION_IP_LOCAL_ADDRESS Adresse locale appropriée (1.1.1.1 ou 2.2.2.2).
    FWPM_CONDITION_IP_REMOTE_ADDRESS Adresse distante appropriée (1.1.1.1 ou 2.2.2.2).
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6}
  2. Exemptez le trafic ICMP d’IPsec en ajoutant un filtre avec les propriétés suivantes.

    Filter, propriété Valeur
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE condition de filtrage NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL condition de filtrage **IPPROTO_ICMP{V6}**Ces constantes sont définies dans winsock2.h.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

À FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} configurez des règles de filtrage de trafic sortant par paquet

  1. Ajoutez un filtre avec les propriétés suivantes.

    Filter, propriété Valeur
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE condition de filtrage NlatUnicast
    FWPM_CONDITION_IP_LOCAL_ADDRESS condition de filtrage Adresse locale appropriée (1.1.1.1 ou 2.2.2.2).
    FWPM_CONDITION_IP_REMOTE_ADDRESS condition de filtrage Adresse distante appropriée (1.1.1.1 ou 2.2.2.2).
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6}
  2. Exemptez le trafic ICMP d’IPsec en ajoutant un filtre avec les propriétés suivantes.

    Filter, propriété Valeur
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE condition de filtrage NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL condition de filtrage **IPPROTO_ICMP{V6}**Ces constantes sont définies dans winsock2.h.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

Configurer les associations de sécurité entrantes et sortantes

  1. Appelez IPsecSaContextCreate0, avec le paramètre outboundTraffic contenant les adresses IP 1.1.1.1 & 2.2.2 et ipsecFilterId comme luid du filtre de légende IPsec de la couche de transport sortant ajouté ci-dessus.
  2. Appelez IPsecSaContextGetSpi0, avec le paramètre id contenant l’ID de contexte retourné par IPsecSaContextCreate0, et le paramètre getSpi contenant les adresses IP 1.1.1.1 & 2.2.2, et ipsecFilterId en tant que LUID du filtre de légende IPsec de la couche de transport entrant ajouté ci-dessus. La valeur SPI retournée est destinée à être utilisée en tant que SPI SA entrante par l’ordinateur local et en tant que SPI SA sortante par l’ordinateur distant correspondant. Les deux machines doivent utiliser des moyens hors bande pour échanger les valeurs SPI.
  3. Appelez IPsecSaContextAddInbound0, avec le paramètre id contenant l’ID de contexte retourné par IPsecSaContextCreate0, et le paramètre inboundBundle décrivant les propriétés du bundle d’accès partagé entrant (par exemple, le SPI SA entrant, le type de transformation, les types d’algorithmes, les clés, etc.).
  4. Appelez IPsecSaContextAddOutbound0, avec le paramètre id contenant l’ID de contexte retourné par IPsecSaContextCreate0, et le paramètre outboundBundle décrivant les propriétés du bundle d’accès partagé sortant (par exemple, le SPI SA sortant, le type de transformation, les types d’algorithmes, les clés, etc.).

Exemple de code : Keying SAP manuel

Identificateurs de légende intégrés

Filtrage des identificateurs de couche

FWPM_ACTION0