Partager via


IPV6_PROTECTION_LEVEL

L’option de socket IPV6_PROTECTION_LEVEL permet aux développeurs d’appliquer des restrictions d’accès aux sockets IPv6. Ces restrictions permettent à une application qui s'exécute sur un réseau local privé de se renforcer facilement et efficacement contre les attaques externes. L’option de socket IPV6_PROTECTION_LEVEL étend ou réduit l’étendue d’un socket d’écoute, ce qui permet un accès illimité des utilisateurs publics et privés, le cas échéant, 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 tirant parti des fonctionnalités de traversée NAT IPv6 intégrées à Windows (Teredo, par exemple). Ces applications peuvent contourner les pare-feux IPv4 ; elles doivent donc être renforcées contre les attaques Internet dirigées sur 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 Windows Teredo. Ces applications peuvent contourner les pare-feux IPv4 ; elles doivent donc être renforcées contre les attaques Internet dirigées sur 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 Internet.
Ce paramètre limitera uniquement le trafic reçu aux liens locaux.

 

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

#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 appel de fonction setsockopt . Les autres valeurs de 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 sortants ou les connexions.

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, valeur non valide 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 non valide 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éfini comme étant PROTECTION_LEVEL_EDGERESTRICTED.

Notes

L’option de socket IPV6_PROTECTION_LEVEL doit être définie avant que le socket ne soit lié. Sinon, les paquets reçus entre les appels bind et setsockopt seront conformes à PROTECTION_LEVEL_EDGERESTRICTED et 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 les bordures 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 la traversée de périphérie 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 de périphérie parcouru par le pare-feu hôte installé sur l’ordinateur local. Par conséquent, si un pare-feu hôte prenant en charge les périphéries est 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 traversée de périphérie est installé) sur l’ordinateur local, tout ce qu’il applique sera observé. Le pare-feu hôte classique prenant en charge la traversée de périmètre bloque le trafic Teredo par défaut. 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 traversée de 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 ou non du pare-feu Windows. Le pare-feu Windows prend en charge les bordures (prenant en charge Teredo), quelle que soit la valeur définie pour le IPV6_PROTECTION_LEVEL et ignore si IPV6_PROTECTION_LEVEL est PROTECTION_LEVEL_UNRESTRICTED. La valeur effective dépend donc de la stratégie de pare-feu. Lorsque le pare-feu Windows est désactivé et qu’aucun autre pare-feu prenant en charge les bords 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. À moins d’avoir défini l’option de socket IPV6_PROTECTION_LEVEL sur PROTECTION_LEVEL_UNRESTRICTED, vous ne recevrez pas de trafic Teredo.

Selon les IPV6_PROTECTION_LEVEL, une application qui nécessite un trafic non sollicité provenant 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 ou connexions entrants sont refusés en raison du niveau de protection défini, le rejet est géré comme si aucune application n’écoutait sur ce socket.

Notes

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

 

getsockopt

Réception du trafic sollicité sur Teredo

setsockopt