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


Ручное sa

Сценарий политики IPsec для ассоциации безопасности вручную позволяет вызывающим пользователям обойти встроенные модули ключей IPsec (IKE и AuthIP), напрямую указав SPsec для защиты любого сетевого трафика.

Пример возможного сценария СА вручную: "Добавление пары SA IPsec для защиты всего трафика данных одноадресной рассылки между IP-адресами 1.1.1.1 & 2.2.2.2, кроме ICMP, с помощью режима транспорта IPsec".

Заметка

Следующие шаги должны выполняться на обоих компьютерах с СООТВЕТСТВУЮЩИМи IP-адресами.

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

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

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

    Свойство filter Ценность
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    FWPM_CONDITION_IP_LOCAL_ADDRESS Соответствующий локальный адрес (1.1.1.1 или 2.2.2.2.2).
    FWPM_CONDITION_IP_REMOTE_ADDRESS Соответствующий удаленный адрес (1.1.1.1 или 2.2.2.2.2).
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_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
    вес FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

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

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

    Свойство filter Ценность
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    условие фильтрации FWPM_CONDITION_IP_LOCAL_ADDRESS Соответствующий локальный адрес (1.1.1.1 или 2.2.2.2.2).
    условие фильтрации FWPM_CONDITION_IP_REMOTE_ADDRESS Соответствующий удаленный адрес (1.1.1.1 или 2.2.2.2.2).
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_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
    вес FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

настройка сопоставлений безопасности для входящего и исходящего трафика

  1. Вызовите IPsecSaContextCreate0с параметром outboundTraffic, содержащим IP-адреса как 1.1.1.1 & 2.2.2.2.2 и ipsecFilterId в качестве LUID исходящего уровня передачи IPsec, добавленного выше.
  2. Вызов IPsecSaContextGetSpi0с параметром id, содержащим идентификатор контекста, возвращенным из IPsecSaContextCreate0, и параметром getSpi, содержащим IP-адреса как 1.1.1.1 & 2.2.2.2.2. и ipsecFilterId в качестве LUID фильтра выноски iPsec входящего уровня транспорта, добавленного выше. Возвращаемое значение SPI предназначено для использования в качестве входящего SA SPI на локальном компьютере и в качестве исходящего sa SPI соответствующим удаленным компьютером. Оба компьютера должны использовать некоторые внеполосные средства для обмена значениями SPI.
  3. Вызов IPsecSaContextAddInbound0с параметром id, содержащим идентификатор контекста, возвращенным из IPsecSaContextCreate0, а также параметром inboundBundle, описывающим свойства входящего пакета SA (например, входящие SA SPI, тип преобразования, типы алгоритмов, ключи и т. д.).
  4. Вызов IPsecSaContextAddOutbound0с параметром id, содержащим идентификатор контекста, возвращаемый из IPsecSaContextCreate0, а также параметр outboundBundle, описывающий свойства исходящего пакета SA (например, исходящий тип SA SPI, тип преобразования, типы алгоритмов, ключи и т. д.).

пример кода : ключей sa вручную

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

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

FWPM_ACTION0