Delen via


IPV6_PROTECTION_LEVEL

Met de optie IPV6_PROTECTION_LEVEL socket kunnen ontwikkelaars toegangsbeperkingen instellen voor IPv6-sockets. Met dergelijke beperkingen kan een toepassing die wordt uitgevoerd op een privé-LAN eenvoudig en robuust zichzelf beschermen tegen externe aanvallen. De IPV6_PROTECTION_LEVEL socketoptie verbreedt of beperkt het bereik van een luistersocket, waardoor onbeperkte toegang van openbare en privégebruikers mogelijk is, indien nodig, of de toegang tot dezelfde site wordt beperkt, indien nodig.

IPV6_PROTECTION_LEVEL heeft momenteel drie gedefinieerde beveiligingsniveaus.

Beveiligingsniveau Beschrijving
PROTECTION_LEVEL_UNRESTRICTED
Wordt gebruikt door toepassingen die zijn ontworpen voor gebruik via internet, waaronder toepassingen die gebruikmaken van IPv6 NAT-doorkruisingsmogelijkheden die zijn ingebouwd in Windows (Teredo, bijvoorbeeld). Deze toepassingen kunnen IPv4-firewalls omzeilen, zodat toepassingen moeten worden beschermd tegen internetaanvallen die zijn gericht op de geopende poort.
PROTECTION_LEVEL_EDGERESTRICTED
Wordt gebruikt door toepassingen die zijn ontworpen om via internet te werken. Met deze instelling is nat-traversal niet toegestaan met behulp van de Windows Teredo-implementatie. Deze toepassingen kunnen IPv4-firewalls omzeilen, zodat toepassingen moeten worden beschermd tegen internetaanvallen die zijn gericht op de geopende poort.
PROTECTION_LEVEL_RESTRICTED
Wordt gebruikt door intranettoepassingen die geen internetscenario's implementeren. Deze toepassingen worden over het algemeen niet getest of beschermd tegen aanvallen in internetstijl.
Met deze instelling wordt het ontvangen verkeer beperkt tot alleen lokaal koppelen.

 

Het volgende codevoorbeeld bevat de gedefinieerde waarden voor elk:

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

Deze waarden sluiten elkaar wederzijds uit en kunnen niet worden gecombineerd in één setsockopt functieopt. Andere waarden voor deze socketoptie zijn gereserveerd. Deze beveiligingsniveaus zijn alleen van toepassing op binnenkomende verbindingen. Het instellen van deze socketoptie heeft geen invloed op uitgaande pakketten of verbindingen.

In Windows 7 en Windows Server 2008 R2 is de standaardwaarde voor IPV6_PROTECTION_LEVEL niet opgegeven en wordt PROTECTION_LEVEL_DEFAULT gedefinieerd in -1, een ongeldige waarde voor IPV6_PROTECTION_LEVEL.

Op Windows Vista en Windows Server 2008 is de standaardwaarde voor IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED en PROTECTION_LEVEL_DEFAULT is gedefinieerd op -1, een ongeldige waarde voor IPV6_PROTECTION_LEVEL.

In Windows Server 2003 en Windows XP is de standaardwaarde voor IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_EDGERESTRICTED en wordt PROTECTION_LEVEL_DEFAULT gedefinieerd als PROTECTION_LEVEL_EDGERESTRICTED.

Notitie

De optie IPV6_PROTECTION_LEVEL socket moet worden ingesteld voordat de socket is gebonden. Anders voldoen pakketten die zijn ontvangen tussen bind- en setsockopt-aanroepen aan PROTECTION_LEVEL_EDGERESTRICTEDen kunnen aan de toepassing worden geleverd.

 

In de volgende tabel wordt het effect beschreven van het toepassen van elk beveiligingsniveau op een luistersocket.

Beveiligingsniveau

Binnenkomend verkeer is toegestaan

Dezelfde site

Extern

NAT-traversal (Teredo)

PROTECTION_LEVEL_RESTRICTED

Ja

Nee

Nee

PROTECTION_LEVEL_EDGERESTRICTED

Ja

Ja

Nee

PROTECTION_LEVEL_UNRESTRICTED

Ja

Ja

Ja

 

In de bovenstaande tabel is de kolom Dezelfde site een combinatie van het volgende:

  • Lokale adressen koppelen
  • Lokale siteadressen
  • Algemene adressen die tot dezelfde site behoren (overeenkomend met de tabel met sitevoorvoegsels)

In Windows 7 en Windows Server 2008 R2 is de standaardwaarde voor IPV6_PROTECTION_LEVEL niet opgegeven. Als er geen edge-doorkruisingsbewuste firewallsoftware is geïnstalleerd op de lokale computer (Windows Firewall is uitgeschakeld of een andere firewall is geïnstalleerd die Teredo-verkeer negeert), ontvangt u alleen Teredo-verkeer als u de optie IPV6_PROTECTION_LEVEL socket instelt op PROTECTION_LEVEL_UNRESTRICTED. Windows Firewall of een edge-doorkruisingsbewust firewallbeleid kan deze optie echter negeren op basis van beleidsinstellingen voor de firewall. Door deze socketoptie in te stellen op PROTECTION_LEVEL_UNRESTRICTED, communiceert de toepassing de expliciete intentie om edge-verkeer te ontvangen dat wordt doorkruist door de hostfirewall die op de lokale computer is geïnstalleerd. Dus als er een edge-traversal aware hostfirewall is geïnstalleerd, heeft deze de definitieve beslissing over het accepteren van een pakket. Standaard, zonder socketoptieset:

  • o Als Windows Firewall is ingeschakeld (of een andere edge-doorkruisingsbewuste hostfirewall is geïnstalleerd) op de lokale computer, wordt alles wat wordt afgedwongen, waargenomen. Typische edge-doorkruisingsbewuste hostfirewall blokkeert standaard Teredo-verkeer. Daarom zien toepassingen de standaardwaarde alsof het PROTECTION_LEVEL_EDGERESTRICTED.
  • o Als Windows Firewall niet is ingeschakeld en er geen andere edge-doorkruisingsbewuste hostfirewall is geïnstalleerd op het lokale systeem, wordt de standaardinstelling PROTECTION_LEVEL_EDGERESTRICTED.

Op Windows Vista en Windows Server 2008 is de standaardwaarde voor IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED. Maar de effectieve waarde is afhankelijk van of Windows Firewall is ingeschakeld. De Windows Firewall is edge-traversal aware (Teredo aware), ongeacht welke waarde is ingesteld voor de IPV6_PROTECTION_LEVEL en negeert als IPV6_PROTECTION_LEVEL is PROTECTION_LEVEL_UNRESTRICTED. De effectieve waarde is dus afhankelijk van het firewallbeleid. Wanneer Windows Firewall is uitgeschakeld en er geen andere edge-traversal aware firewall is geïnstalleerd op de lokale computer, wordt de standaardwaarde voor IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED.

In Windows Server 2003 en Windows XP is de standaardwaarde voor IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_EDGERESTRICTED. Tenzij u de optie IPV6_PROTECTION_LEVEL socket hebt ingesteld op PROTECTION_LEVEL_UNRESTRICTED, ontvangt u geen Teredo-verkeer.

Afhankelijk van de IPV6_PROTECTION_LEVEL kan een toepassing die ongevraagd verkeer van internet vereist mogelijk niet ongevraagd verkeer ontvangen. Deze vereisten zijn echter niet nodig voor het ontvangen van aangevraagd verkeer via de Windows Teredo-interface. Zie Ontvangen van aangevraagd verkeer via Teredovoor meer informatie over de interactie met Teredo.

Wanneer binnenkomende pakketten of verbindingen worden geweigerd vanwege het ingestelde beveiligingsniveau, wordt afwijzing afgehandeld alsof er geen toepassing op die socket luistert.

Notitie

De optie IPV6_PROTECTION_LEVEL socket plaatst niet noodzakelijkerwijs toegangsbeperkingen op IPv6-sockets of beperkt NAT-traversal met een andere methode dan Windows Teredo of zelfs met een andere implementatie van Teredo door een andere leverancier.

 

getsockopt

het ontvangen van aangevraagd verkeer via Teredo-

setsockopt-