다음을 통해 공유


암호화 보장

보장된 암호화 IPsec 정책 시나리오에는 일치하는 모든 트래픽에 대한 IPsec 암호화가 필요합니다. 이 정책은 전송 모드 정책 옵션 중 하나와 함께 지정해야 합니다.

보장된 암호화는 일반적으로 애플리케이션별로 중요한 트래픽을 암호화하는 데 사용됩니다.

가능한 암호화 보장 시나리오의 예로는 "IPsec 전송 모드를 사용하여 ICMP를 제외한 모든 유니캐스트 데이터 트래픽을 보호하고, 협상 검색을 사용하도록 설정하고, TCP 로컬 포트 5555에 해당하는 모든 유니캐스트 트래픽에 대해 보장된 암호화가 필요합니다."

이 예제를 프로그래밍 방식으로 구현하려면 다음 WFP 구성을 사용합니다.

FWPM_LAYER_IKEEXT_V{4|6}에서 MM 협상 정책 설정

  1. 다음 MM 정책 공급자 컨텍스트 중 하나 또는 둘 다를 추가합니다.

    • IKE의 경우 형식의 정책 공급자 컨텍스트가 FWPM_IPSEC_IKE_MM_CONTEXT.
    • AuthIP의 경우 형식의 정책 공급자 컨텍스트가 FWPM_IPSEC_AUTHIP_MM_CONTEXT.

    참고

    공통 키 지정 모듈이 협상되고 해당 MM 정책이 적용됩니다. IKE와 AuthIP가 모두 지원되는 경우 AuthIP는 기본 키 지정 모듈입니다.

  2. 1단계에서 추가된 각 컨텍스트에 대해 다음 속성을 사용하여 필터를 추가합니다.

    Filter 속성
    필터링 조건 비어 있음 모든 트래픽이 필터와 일치합니다.
    providerContextKey 1단계에서 추가된 MM 공급자 컨텍스트의 GUID입니다.

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. 이 컨텍스트는 필요에 따라 EM(AuthIP 확장 모드) 협상 정책을 포함할 수 있습니다.

    참고

    공통 키 지정 모듈이 협상되고 해당 QM 정책이 적용됩니다. IKE와 AuthIP가 모두 지원되는 경우 AuthIP는 기본 키 지정 모듈입니다.

  2. 1단계에서 추가된 각 컨텍스트에 대해 다음 속성을 사용하여 필터를 추가합니다.

    Filter 속성
    필터링 조건 비어 있음 모든 트래픽이 필터와 일치합니다.
    providerContextKey 1단계에서 추가된 QM 공급자 컨텍스트의 GUID입니다.

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. 다음 속성을 사용하여 필터를 추가하여 IPsec에서 ICMP 트래픽을 제외합니다.

    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. 다음 속성을 사용하여 필터를 추가하여 IPsec에서 ICMP 트래픽을 제외합니다.

    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. 다음 속성을 사용하여 필터를 추가하여 IPsec에서 ICMP 트래픽을 제외합니다.

    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