Share via


IPV6_PROTECTION_LEVEL

IPV6_PROTECTION_LEVEL 소켓 옵션을 사용하면 개발자가 IPv6 소켓에 액세스 제한을 적용할 수 있습니다. 이러한 제한을 사용하면 사설 LAN에서 실행되는 애플리케이션을 간단하고 강력하게 외부 공격으로부터 보호할 수 있습니다. IPV6_PROTECTION_LEVEL 소켓 옵션은 수신 대기 소켓의 scope 확대 또는 축소하여 적절한 경우 퍼블릭 및 프라이빗 사용자의 무제한 액세스를 사용하거나 필요에 따라 동일한 사이트에 대한 액세스만 제한합니다.

IPV6_PROTECTION_LEVEL 현재 세 가지 보호 수준이 정의되어 있습니다.

보호 수준 Description
PROTECTION_LEVEL_UNRESTRICTED
Windows(예: Teredo)에 기본 제공되는 IPv6 NAT 통과 기능을 활용하는 애플리케이션을 포함하여 인터넷을 통해 작동하도록 설계된 애플리케이션에서 사용됩니다. 이러한 애플리케이션에서는 IPv4 방화벽이 무시될 수 있으므로 열린 포트로 향하는 인터넷 공격을 막기 위해 애플리케이션의 보안 기능을 강화해야 합니다.
PROTECTION_LEVEL_EDGERESTRICTED
인터넷을 통해 작동하도록 설계된 애플리케이션에서 사용됩니다. 이 설정은 Windows Teredo 구현을 사용하는 NAT 통과를 허용하지 않습니다. 이러한 애플리케이션에서는 IPv4 방화벽이 무시될 수 있으므로 열린 포트로 향하는 인터넷 공격을 막기 위해 애플리케이션의 보안 기능을 강화해야 합니다.
PROTECTION_LEVEL_RESTRICTED
인터넷 시나리오를 구현하지 않는 인트라넷 애플리케이션에서 사용됩니다. 일반적으로 이러한 애플리케이션은 인터넷형 공격에 대해 테스트되거나 보안이 강화되어 있지 않습니다.
이 설정은 링크 로컬에서만 트래픽을 받도록 제한합니다.

 

다음 코드 예제에서는 각각에 대해 정의된 값을 제공합니다.

#define PROTECTION_LEVEL_UNRESTRICTED   10  /* for peer-to-peer apps */
#define PROTECTION_LEVEL_EDGERESTRICTED 20  /* Same as unrestricted, except for Teredo  */
#define PROTECTION_LEVEL_RESTRICTED     30  /* for Intranet apps     */

이러한 값은 상호 배타적이며 단일 setsockopt 함수 호출에서 결합할 수 없습니다. 이 소켓 옵션의 다른 값은 예약되어 있습니다. 이러한 보호 수준은 들어오는 연결에만 적용됩니다. 이 소켓 옵션을 설정해도 아웃바운드 패킷이나 연결에는 영향을 주지 않습니다.

Windows 7 및 Windows Server 2008 R2에서 IPV6_PROTECTION_LEVEL 기본값은 지정되지 않으며 PROTECTION_LEVEL_DEFAULT IPV6_PROTECTION_LEVEL 잘못된 값인 -1로 정의됩니다.

Windows Vista 및 Windows Server 2008에서 IPV6_PROTECTION_LEVEL 기본값은 PROTECTION_LEVEL_UNRESTRICTED 이며 PROTECTION_LEVEL_DEFAULT IPV6_PROTECTION_LEVEL 잘못된 값인 -1로 정의됩니다.

Windows Server 2003 및 Windows XP에서 IPV6_PROTECTION_LEVEL 기본값은 PROTECTION_LEVEL_EDGERESTRICTEDPROTECTION_LEVEL_DEFAULTPROTECTION_LEVEL_EDGERESTRICTED 정의됩니다.

참고

소켓이 바인딩되기 전에 IPV6_PROTECTION_LEVEL 소켓 옵션을 설정해야 합니다. 그렇지 않으면 bindsetsockopt 호출 간에 수신된 패킷은 PROTECTION_LEVEL_EDGERESTRICTED 준수하며 애플리케이션에 배달될 수 있습니다.

 

다음 표에서는 각 보호 수준을 수신 대기 소켓에 적용하는 효과에 대해 설명합니다.

보호 수준

들어오는 트래픽 허용됨

같은 사이트

외부

NAT 순회(Teredo)

PROTECTION_LEVEL_RESTRICTED

Yes

아니요

아니요

PROTECTION_LEVEL_EDGERESTRICTED

Yes

Yes

아니요

PROTECTION_LEVEL_UNRESTRICTED

Yes

Yes

Yes

 

위의 표에서 동일한 사이트 열은 다음의 조합입니다.

  • 로컬 주소 연결
  • 사이트 로컬 주소
  • 동일한 사이트에 속하는 것으로 알려진 전역 주소(사이트 접두사 테이블과 일치)

Windows 7 및 Windows Server 2008 R2에서는 IPV6_PROTECTION_LEVEL 기본값이 지정되지 않습니다. 로컬 컴퓨터에 에지 트래버스 인식 방화벽 소프트웨어가 설치되어 있지 않거나(Windows 방화벽이 비활성화되었거나 Teredo 트래픽을 무시하는 다른 방화벽이 설치된 경우) IPV6_PROTECTION_LEVEL 소켓 옵션을 PROTECTION_LEVEL_UNRESTRICTED 설정한 경우에만 Teredo 트래픽이 수신됩니다. 그러나 Windows 방화벽 또는 에지 트래버스 인식 방화벽 정책은 방화벽에 대한 정책 설정에 따라 이 옵션을 무시할 수 있습니다. 이 소켓 옵션을 PROTECTION_LEVEL_UNRESTRICTED 설정하면 애플리케이션은 로컬 컴퓨터에 설치된 호스트 방화벽에 의해 에지 트래버스 트래픽을 수신하려는 명시적 의도를 전달합니다. 따라서 에지 트래버스 인식 호스트 방화벽이 설치된 경우 패킷 수락에 대한 최종 결정이 내려집니다. 기본적으로 소켓 옵션 집합이 없는 경우:

  • o 로컬 컴퓨터에서 Windows 방화벽을 사용하도록 설정(또는 다른 에지 순회 인식 호스트 방화벽이 설치되어 있는 경우)이 적용된 모든 항목이 관찰됩니다. 일반적인 에지 트래버스 인식 호스트 방화벽은 기본적으로 Teredo 트래픽을 차단합니다. 따라서 애플리케이션은 PROTECTION_LEVEL_EDGERESTRICTED 것처럼 기본값을 관찰합니다.
  • o Windows 방화벽을 사용하도록 설정하지 않고 로컬 시스템에 다른 에지 트래버스 인식 호스트 방화벽이 설치되지 않은 경우 기본값은 PROTECTION_LEVEL_EDGERESTRICTED.

Windows Vista 및 Windows Server 2008에서는 IPV6_PROTECTION_LEVEL 기본값이 PROTECTION_LEVEL_UNRESTRICTED. 그러나 유효 값은 Windows 방화벽을 사용할 수 있는지 여부에 따라 달라집니다. Windows 방화벽은 IPV6_PROTECTION_LEVEL 대해 설정된 값에 관계없이 에지 통과 인식(Teredo 인식)이며 IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED 경우 무시합니다. 따라서 유효 값은 방화벽 정책에 따라 달라집니다. Windows 방화벽이 비활성화되어 있고 로컬 컴퓨터에 다른 에지 트래버스 인식 방화벽이 설치되어 있지 않으면 IPV6_PROTECTION_LEVEL 기본값이 PROTECTION_LEVEL_UNRESTRICTED.

Windows Server 2003 및 Windows XP에서 IPV6_PROTECTION_LEVEL 기본값은 PROTECTION_LEVEL_EDGERESTRICTED. IPV6_PROTECTION_LEVEL 소켓 옵션을 PROTECTION_LEVEL_UNRESTRICTED 설정하지 않으면 Teredo 트래픽이 수신되지 않습니다.

IPV6_PROTECTION_LEVEL 따라 인터넷에서 원치 않는 트래픽이 필요한 애플리케이션은 원치 않는 트래픽을 수신할 수 없을 수 있습니다. 그러나 이러한 요구 사항은 Windows Teredo 인터페이스를 통해 요청된 트래픽을 수신하는 데 필요하지 않습니다. Teredo 상호 작용에 대한 자세한 내용은 Teredo 통해 요청된 트래픽 수신을 참조하세요.

설정된 보호 수준으로 인해 들어오는 패킷 또는 연결이 거부되면 해당 소켓에서 수신 대기 중인 애플리케이션이 없는 것처럼 거부가 처리됩니다.

참고

IPV6_PROTECTION_LEVEL 소켓 옵션은 반드시 IPv6 소켓에 액세스 제한을 두거나 Windows Teredo 이외의 방법을 사용하거나 다른 공급업체의 다른 Teredo 구현을 사용하여 NAT 통과를 제한하는 것은 아닙니다.

 

getsockopt

Teredo 통해 요청된 트래픽 수신

setsockopt