Поделиться через


Гарантированное шифрование

Сценарий политики гарантированного шифрования IPsec требует шифрования IPsec для всего соответствующего трафика. Эта политика должна быть указана в сочетании с одним из параметров политики режима транспорта.

Гарантированное шифрование обычно используется для шифрования конфиденциального трафика для каждого приложения.

Примером возможного сценария гарантированного шифрования является "Защита всего одноадресного трафика данных, за исключением ICMP, с помощью режима транспорта IPsec, включение обнаружения согласования и требование гарантированного шифрования для всего одноадресного трафика, соответствующего локальному порту TCP 5555".

Чтобы реализовать этот пример программным способом, используйте следующую конфигурацию ВПП.

На FWPM_LAYER_IKEEXT_V{4|6} настройте политику согласования mm

  1. Добавьте один или оба следующих контекста поставщика политики MM.

    • Для IKE контекст поставщика политики типа FWPM_IPSEC_IKE_MM_CONTEXT.
    • Для AuthIP контекст поставщика политики типа FWPM_IPSEC_AUTHIP_MM_CONTEXT.

    Примечание

    Будет согласован общий модуль ключей, и будет применена соответствующая политика MM. AuthIP является предпочтительным модулем ключей, если поддерживаются как IKE, так и AuthIP.

  2. Для каждого контекста, добавленного на шаге 1, добавьте фильтр со следующими свойствами.

    Свойство Filter Значение
    Условия фильтрации Пустой. Весь трафик будет соответствовать фильтру.
    providerContextKey GUID контекста поставщика MM, добавленного на шаге 1.

На FWPM_LAYER_IPSEC_V{4|6} настройте политику согласования QM и EM

  1. Добавьте один или оба из следующих контекстов поставщика политики режима транспорта QM и установите флаг IPSEC_POLICY_FLAG_ND_SECURE .

    • Для IKE контекст поставщика политики типа FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT.
    • Для AuthIP контекст поставщика политики типа FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT. При необходимости этот контекст может содержать политику согласования расширенного режима AuthIP (EM).

    Примечание

    Будет согласован общий модуль ключей и будет применена соответствующая политика QM. AuthIP является предпочтительным модулем ключей, если поддерживаются как IKE, так и AuthIP.

  2. Для каждого контекста, добавленного на шаге 1, добавьте фильтр со следующими свойствами.

    Свойство Filter Значение
    Условия фильтрации Пустой. Весь трафик будет соответствовать фильтру.
    providerContextKey GUID контекста поставщика QM, добавленного на шаге 1.

На FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} настройте правила фильтрации входящего трафика на пакет

  1. Добавьте фильтр со следующими свойствами.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 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. Исключите трафик ICMP из IPsec, добавив фильтр со следующими свойствами.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    условие фильтрации FWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**Эти константы определены в winsock2.h.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

На FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} настройте правила фильтрации исходящего трафика по пакетам

  1. Добавьте фильтр со следующими свойствами.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 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. Исключите трафик ICMP из IPsec, добавив фильтр со следующими свойствами.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    условие фильтрации FWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**Эти константы определены в winsock2.h.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

На FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} настройте правила фильтрации входящих подключений

  1. Добавьте фильтр со следующими свойствами. Этот фильтр разрешает попытки входящего подключения только в том случае, если они защищены протоколом IPsec.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6}
  2. Исключите трафик ICMP из IPsec, добавив фильтр со следующими свойствами.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    условие фильтрации FWPM_CONDITION_IP_PROTOCOL **IPPROTO_ICMP{V6}**Эти константы определены в winsock2.h.
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS
  3. Добавьте фильтр со следующими свойствами. Этот фильтр разрешает входящие подключения только к TCP-порту 5555, если они зашифрованы.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    условие фильтрации FWPM_CONDITION_IP_PROTOCOL IPPROTO_TCP Эта константа определена в winsock2.h.
    условие фильтрации FWPM_CONDITION_IP_LOCAL_PORT 5555
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6}
    rawContext FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION

На FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} настройте правила фильтрации исходящего трафика для каждого подключения

  • Добавьте фильтр со следующими свойствами. Этот фильтр разрешает исходящие подключения с TCP-порта 5555, только если они зашифрованы.

    Свойство Filter Значение
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    условие фильтрации FWPM_CONDITION_IP_PROTOCOL IPPROTO_TCP Эта константа определена в winsock2.h.
    условие фильтрации FWPM_CONDITION_IP_LOCAL_PORT 5555
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_ALE_CONNECT_V{4|6}
    rawContext FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION

Пример кода: использование транспортного режима

Уровни ALE

Встроенные идентификаторы выносок

Условия фильтрации

Фильтрация идентификаторов слоев

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE