Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A opção de soquete IPV6_PROTECTION_LEVEL permite que os desenvolvedores coloquem restrições de acesso em soquetes IPv6. Tais restrições permitem que um aplicativo executado em uma LAN privada se proteja de forma simples e robusta contra ataques externos. A opção de soquete IPV6_PROTECTION_LEVEL amplia ou restringe o escopo de um soquete de escuta, permitindo o acesso irrestrito de usuários públicos e privados quando apropriado, ou restringindo o acesso apenas ao mesmo site, conforme necessário.
IPV6_PROTECTION_LEVEL tem atualmente três níveis de proteção definidos.
| Nível de proteção | Descrição |
|---|---|
|
PROTECTION_LEVEL_UNRESTRICTED |
Utilizado por aplicações concebidas para operar através da Internet, incluindo aplicações que tiram partido das capacidades de travessia NAT IPv6 incorporadas no Windows (Teredo, por exemplo). Esses aplicativos podem ignorar firewalls IPv4, portanto, os aplicativos devem ser protegidos contra ataques da Internet direcionados à porta aberta. |
|
PROTECTION_LEVEL_EDGERESTRICTED |
Usado por aplicativos projetados para operar em toda a Internet. Essa configuração não permite a travessia de NAT usando a implementação do Windows Teredo. Esses aplicativos podem ignorar firewalls IPv4, portanto, os aplicativos devem ser protegidos contra ataques da Internet direcionados à porta aberta. |
|
PROTECTION_LEVEL_RESTRICTED |
Usado por aplicativos de intranet que não implementam cenários da Internet. Esses aplicativos geralmente não são testados ou protegidos contra ataques no estilo da Internet. Essa configuração limitará o tráfego recebido apenas ao link local. |
O exemplo de código a seguir fornece os valores definidos para cada um:
#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 */
Esses valores são mutuamente exclusivos e não podem ser combinados em uma única chamada de função setsockopt. Outros valores para esta opção de soquete são reservados. Esses níveis de proteção se aplicam apenas a conexões de entrada. Definir essa opção de soquete não tem efeito sobre pacotes ou conexões de saída.
No Windows 7 e no Windows Server 2008 R2, o valor padrão para IPV6_PROTECTION_LEVEL não é especificado e PROTECTION_LEVEL_DEFAULT é definido como -1, um valor ilegal para IPV6_PROTECTION_LEVEL.
No Windows Vista e no Windows Server 2008, o valor padrão para IPV6_PROTECTION_LEVEL é PROTECTION_LEVEL_UNRESTRICTED e PROTECTION_LEVEL_DEFAULT é definido como -1, um valor ilegal para IPV6_PROTECTION_LEVEL.
No Windows Server 2003 e no Windows XP, o valor padrão para IPV6_PROTECTION_LEVEL é PROTECTION_LEVEL_EDGERESTRICTED e PROTECTION_LEVEL_DEFAULT é definido como PROTECTION_LEVEL_EDGERESTRICTED.
Observação
A opção de soquete IPV6_PROTECTION_LEVEL deve ser definida antes que o soquete seja vinculado. Caso contrário, os pacotes recebidos entre bind e chamadas setsockopt estarão em conformidade com PROTECTION_LEVEL_EDGERESTRICTEDe poderão ser entregues ao aplicativo.
A tabela a seguir descreve o efeito da aplicação de cada nível de proteção a um soquete de escuta.
Nível de proteção
Tráfego de entrada permitido
Mesmo site
Externa
NAT transversal (Teredo)
PROTECTION_LEVEL_RESTRICTED
Sim
Não
Não
PROTECTION_LEVEL_EDGERESTRICTED
Sim
Sim
Não
PROTECTION_LEVEL_UNRESTRICTED
Sim
Sim
Sim
Na tabela acima, a coluna mesmo site é uma combinação do seguinte:
- Vincular endereços locais
- Endereços locais do site
- Endereços globais conhecidos por pertencerem ao mesmo site (correspondentes à tabela de prefixos do site)
No Windows 7 e no Windows Server 2008 R2, o valor padrão para IPV6_PROTECTION_LEVEL não é especificado. Se não houver nenhum software de firewall com reconhecimento de passagem de borda instalado no computador local (o firewall do Windows está desativado ou algum outro firewall está instalado que ignora o tráfego Teredo), você receberá tráfego Teredo somente se definir a opção de soquete IPV6_PROTECTION_LEVEL como PROTECTION_LEVEL_UNRESTRICTED. No entanto, o firewall do Windows ou qualquer diretiva de firewall com reconhecimento de travessia de borda pode ignorar essa opção com base nas configurações de diretiva para o firewall. Ao definir essa opção de soquete como PROTECTION_LEVEL_UNRESTRICTED, o aplicativo está comunicando sua intenção explícita de receber tráfego de borda atravessado pelo firewall do host instalado na máquina local. Portanto, se houver um firewall de host com reconhecimento de passagem de borda instalado, ele terá a decisão final sobre aceitar um pacote. Por padrão, sem nenhuma opção de soquete definida:
- o Se o firewall do Windows estiver habilitado (ou outro firewall de host com reconhecimento de borda estiver instalado) no computador local, tudo o que ele aplicar será observado. O firewall de host com reconhecimento de travessia de borda típico bloqueará o tráfego Teredo por padrão. Portanto, os aplicativos observarão o padrão como se fosse PROTECTION_LEVEL_EDGERESTRICTED.
- o Se o firewall do Windows não estiver habilitado e nenhum outro firewall de host com reconhecimento de passagem de borda estiver instalado no sistema local, o padrão será PROTECTION_LEVEL_EDGERESTRICTED.
No Windows Vista e no Windows Server 2008, o valor padrão para IPV6_PROTECTION_LEVEL é PROTECTION_LEVEL_UNRESTRICTED. Mas o valor efetivo depende se o firewall do Windows está habilitado. O firewall do Windows reconhece a travessia de borda (reconhece Teredo), independentemente do valor definido para o IPV6_PROTECTION_LEVEL e ignora se IPV6_PROTECTION_LEVEL estiver PROTECTION_LEVEL_UNRESTRICTED. Portanto, o valor efetivo depende da política de firewall. Quando o firewall do Windows está desativado e nenhum outro firewall com reconhecimento de passagem de borda está instalado no computador local, o valor padrão para IPV6_PROTECTION_LEVEL é PROTECTION_LEVEL_UNRESTRICTED.
No Windows Server 2003 e no Windows XP, o valor padrão para IPV6_PROTECTION_LEVEL é PROTECTION_LEVEL_EDGERESTRICTED. A menos que você tenha definido a opção de soquete IPV6_PROTECTION_LEVEL como PROTECTION_LEVEL_UNRESTRICTED, você não receberá nenhum tráfego Teredo.
Dependendo do IPV6_PROTECTION_LEVEL, um aplicativo que requer tráfego não solicitado da Internet pode não ser capaz de receber tráfego não solicitado. No entanto, esses requisitos não são necessários para receber tráfego solicitado pela interface Teredo do Windows. Para obter mais detalhes sobre a interação com Teredo, consulte Recebendo tráfego solicitado sobre Teredo.
Quando pacotes ou conexões de entrada são recusados devido ao nível de proteção definido, a rejeição é tratada como se nenhum aplicativo estivesse escutando nesse soquete.
Observação
A opção de soquete IPV6_PROTECTION_LEVEL não necessariamente coloca restrições de acesso em soquetes IPv6 ou restringe a travessia de NAT usando algum método diferente do Windows Teredo ou até mesmo usando outra implementação de Teredo por outro fornecedor.
Tópicos relacionados