Partager via


Mode de transport de découverte de négociation

Le scénario de stratégie IPsec du mode de transport de découverte de la négociation nécessite une protection du mode de transport IPsec pour tout le trafic entrant correspondant et demande une protection IPsec pour la correspondance du trafic sortant. Par conséquent, les connexions sortantes sont autorisées à revenir en texte clair, alors que les connexions entrantes ne le sont pas.

Avec cette stratégie, lorsque l’ordinateur hôte tente une nouvelle connexion sortante et qu’il n’existe aucune sa IPsec correspondant au trafic, l’hôte envoie simultanément les paquets en texte clair et démarre une négociation IKE ou AuthIP. Si la négociation réussit, la connexion est mise à niveau vers la protection IPsec. Sinon, la connexion reste en texte clair. Une fois protégée par IPsec, une connexion ne peut jamais être rétrogradée en texte clair.

Le mode de transport de découverte de négociation est généralement utilisé dans les environnements qui incluent à la fois des machines compatibles IPsec et non compatibles avec IPsec.

Un exemple de scénario de mode de transport de découverte de négociation est « Sécuriser tout le trafic de données unicast, à l’exception d’ICMP, à l’aide du mode de transport IPsec, et activer la découverte de négociation ».

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

À FWPM_LAYER_IKEEXT_V{4|6} configurez la stratégie de négociation MM

  1. Ajoutez un ou les deux contextes de fournisseur de stratégie MM suivants.

    • Pour IKE, un contexte de fournisseur de stratégie de type FWPM_IPSEC_IKE_MM_CONTEXT.
    • Pour AuthIP, un contexte de fournisseur de stratégie de type FWPM_IPSEC_AUTHIP_MM_CONTEXT.

    Notes

    Un module de keying commun sera négocié et la stratégie mm correspondante sera appliquée. AuthIP est le module de frappe préféré si IKE et AuthIP sont pris en charge.

  2. Pour chacun des contextes ajoutés à l’étape 1, ajoutez un filtre avec les propriétés suivantes.

    Filter, propriété Valeur
    Conditions de filtrage Vide. Tout le trafic correspond au filtre.
    providerContextKey GUID du contexte du fournisseur MM ajouté à l’étape 1.

À FWPM_LAYER_IPSEC_V{4|6} configurez la stratégie de négociation QM et EM

  1. Ajoutez l’un ou les deux des contextes de fournisseur de stratégie de mode de transport QM suivants et définissez l’indicateur IPSEC_POLICY_FLAG_ND_SECURE .

    • Pour IKE, un contexte de fournisseur de stratégie de type FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT.
    • Pour AuthIP, un contexte de fournisseur de stratégie de type FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT. Ce contexte peut éventuellement contenir la stratégie de négociation en mode étendu (EM) AuthIP.

    Notes

    Un module de keying commun sera négocié et la stratégie de gestion de la qualité correspondante sera appliquée. AuthIP est le module de frappe préféré si IKE et AuthIP sont pris en charge.

  2. Pour chacun des contextes ajoutés à l’étape 1, ajoutez un filtre avec les propriétés suivantes.

    Filter, propriété Valeur
    Conditions de filtrage Vide. Tout le trafic correspond au filtre.
    providerContextKey GUID du contexte du fournisseur QM ajouté à l’étape 1.

À FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} configurez des 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
    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. 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
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6}
    rawContext FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER
  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_ALE_AUTH_RECV_ACCEPT_V{4|6} configurez les règles de filtrage entrant par connexion

  1. Ajoutez un filtre avec les propriétés suivantes. Ce filtre autorise uniquement les tentatives de connexion entrantes si elles sont sécurisées par IPsec.

    Filter, propriété Valeur
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE condition de filtrage NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_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

Exemple de code : Utilisation du mode transport

Couches ALE

Identificateurs de légende intégrés

Conditions de filtrage

Filtrage des identificateurs de couche

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE