Partager via


IPV6_PROTECTION_LEVEL

L’option de socket IPV6_PROTECTION_LEVEL permet aux développeurs de placer des restrictions d’accès sur des sockets IPv6. Ces restrictions permettent à une application s’exécutant sur un réseau local privé de se renforcer simplement et robustement contre les attaques externes. L’option de socket IPV6_PROTECTION_LEVEL s’étend ou limite l’étendue d’un socket d’écoute, ce qui permet un accès illimité à partir d’utilisateurs publics et privés lorsque cela est approprié, ou limite l’accès uniquement au même site, selon les besoins.

IPV6_PROTECTION_LEVEL a actuellement trois niveaux de protection définis.

Niveau de protection Description
PROTECTION_LEVEL_UNRESTRICTED
Utilisé par les applications conçues pour fonctionner sur Internet, notamment les applications qui tirent parti des fonctionnalités de traversée NAT IPv6 intégrées à Windows (Teredo, par exemple). Ces applications peuvent contourner les pare-feu IPv4, de sorte que les applications doivent être renforcées contre les attaques Internet dirigées vers le port ouvert.
PROTECTION_LEVEL_EDGERESTRICTED
Utilisé par les applications conçues pour fonctionner sur Internet. Ce paramètre n’autorise pas la traversée NAT à l’aide de l’implémentation de Windows Teredo. Ces applications peuvent contourner les pare-feu IPv4, de sorte que les applications doivent être renforcées contre les attaques Internet dirigées vers le port ouvert.
PROTECTION_LEVEL_RESTRICTED
Utilisé par les applications intranet qui n’implémentent pas de scénarios Internet. Ces applications ne sont généralement pas testées ou renforcées contre les attaques de style Internet.
Ce paramètre limite le trafic reçu uniquement aux liaisons locales.

 

L’exemple de code suivant fournit les valeurs définies pour chacun d’eux :

#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     */

Ces valeurs s’excluent mutuellement et ne peuvent pas être combinées dans un seul setockopt appel de fonction. D’autres valeurs pour cette option de socket sont réservées. Ces niveaux de protection s’appliquent uniquement aux connexions entrantes. La définition de cette option de socket n’a aucun effet sur les paquets ou connexions sortants.

Sur Windows 7 et Windows Server 2008 R2, la valeur par défaut de IPV6_PROTECTION_LEVEL n’est pas spécifiée et PROTECTION_LEVEL_DEFAULT est définie sur -1, une valeur illégale pour IPV6_PROTECTION_LEVEL.

Sur Windows Vista et Windows Server 2008, la valeur par défaut de IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_UNRESTRICTED et PROTECTION_LEVEL_DEFAULT est définie sur -1, une valeur illégale pour IPV6_PROTECTION_LEVEL.

Sur Windows Server 2003 et Windows XP, la valeur par défaut de IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_EDGERESTRICTED et PROTECTION_LEVEL_DEFAULT est définie pour être PROTECTION_LEVEL_EDGERESTRICTED.

Note

L’option de socket IPV6_PROTECTION_LEVEL doit être définie avant la liaison du socket. Sinon, les paquets reçus entre liaison et setsockopt appels sont conformes à PROTECTION_LEVEL_EDGERESTRICTEDet peuvent être remis à l’application.

 

Le tableau suivant décrit l’effet de l’application de chaque niveau de protection à un socket d’écoute.

Niveau de protection

Trafic entrant autorisé

Même site

Externe

TRAVERSÉE NAT (Teredo)

PROTECTION_LEVEL_RESTRICTED

Oui

Non

Non

PROTECTION_LEVEL_EDGERESTRICTED

Oui

Oui

Non

PROTECTION_LEVEL_UNRESTRICTED

Oui

Oui

Oui

 

Dans le tableau ci-dessus, la colonne même site est une combinaison des éléments suivants :

  • Lier des adresses locales
  • Adresses locales du site
  • Adresses globales connues pour appartenir au même site (correspondant à la table de préfixes de site)

Sur Windows 7 et Windows Server 2008 R2, la valeur par défaut de IPV6_PROTECTION_LEVEL n’est pas spécifiée. S’il n’existe aucun logiciel de pare-feu prenant en charge la périphérie installé sur l’ordinateur local (le pare-feu Windows est désactivé ou un autre pare-feu est installé qui ignore le trafic Teredo), vous recevrez le trafic Teredo uniquement si vous définissez l’option de socket IPV6_PROTECTION_LEVEL sur PROTECTION_LEVEL_UNRESTRICTED. Toutefois, le pare-feu Windows ou toute stratégie de pare-feu prenant en charge les périphéries peut ignorer cette option en fonction des paramètres de stratégie du pare-feu. En définissant cette option de socket sur PROTECTION_LEVEL_UNRESTRICTED, l’application communique son intention explicite de recevoir le trafic parcouru par le pare-feu hôte installé sur l’ordinateur local. Par conséquent, s’il existe un pare-feu hôte prenant en compte la périphérie installé, il aura la décision finale d’accepter un paquet. Par défaut, sans option de socket définie :

  • o Si le pare-feu Windows est activé (ou qu’un autre pare-feu hôte prenant en charge la périphérie est installé) sur l’ordinateur local, ce qu’il applique sera observé. Par défaut, le pare-feu hôte prenant en charge les périphéries bloque le trafic Teredo. Par conséquent, les applications observent la valeur par défaut comme si elle était PROTECTION_LEVEL_EDGERESTRICTED.
  • o Si le pare-feu Windows n’est pas activé et qu’aucun autre pare-feu hôte prenant en charge la périphérie n’est installé sur le système local, la valeur par défaut est PROTECTION_LEVEL_EDGERESTRICTED.

Sur Windows Vista et Windows Server 2008, la valeur par défaut de IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_UNRESTRICTED. Toutefois, la valeur effective dépend de l’activation du pare-feu Windows. Le pare-feu Windows prend en charge la périphérie (Prenant en charge Teredo), quelle que soit la valeur définie pour l’IPV6_PROTECTION_LEVEL et ignore si IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_UNRESTRICTED. Ainsi, la valeur effective dépend de la stratégie de pare-feu. Lorsque le pare-feu Windows est désactivé et qu’aucun autre pare-feu prenant en charge la périphérie n’est installé sur l’ordinateur local, la valeur par défaut de IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_UNRESTRICTED.

Sur Windows Server 2003 et Windows XP, la valeur par défaut de IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_EDGERESTRICTED. Sauf si vous avez défini l’option de socket IPV6_PROTECTION_LEVEL sur PROTECTION_LEVEL_UNRESTRICTED, vous ne recevrez pas de trafic Teredo.

Selon la IPV6_PROTECTION_LEVEL, une application qui nécessite un trafic non sollicité à partir d’Internet peut ne pas être en mesure de recevoir du trafic non sollicité. Toutefois, ces exigences ne sont pas nécessaires pour recevoir le trafic sollicité via l’interface Windows Teredo. Pour plus d’informations sur l’interaction avec Teredo, consultez Réception du trafic sollicité sur Teredo.

Lorsque les paquets entrants ou les connexions sont refusés en raison du niveau de protection défini, le rejet est géré comme si aucune application n’était à l’écoute sur ce socket.

Note

L’option de socket IPV6_PROTECTION_LEVEL n’impose pas nécessairement de restrictions d’accès sur des sockets IPv6 ou de restreindre la traversée NAT à l’aide d’une méthode autre que Windows Teredo ou même à l’aide d’une autre implémentation de Teredo par un autre fournisseur.

 

getsockopt

réception d’un trafic sollicité sur le Teredo

setockopt