IPV6_PROTECTION_LEVEL
Med alternativet IPV6_PROTECTION_LEVEL socket kan utvecklare använda åtkomstbegränsningar för IPv6-socketar. Sådana begränsningar gör det möjligt för ett program som körs på ett privat LAN att enkelt och kraftfullt härda sig mot externa attacker. Alternativet IPV6_PROTECTION_LEVEL socket breddar eller begränsar omfattningen för en lyssningssocket, vilket möjliggör obegränsad åtkomst från offentliga och privata användare när det är lämpligt eller begränsar åtkomsten till samma plats efter behov.
IPV6_PROTECTION_LEVEL har för närvarande tre definierade skyddsnivåer.
Skyddsnivå | Beskrivning |
---|---|
PROTECTION_LEVEL_UNRESTRICTED |
Används av program som är utformade för att fungera över internet, inklusive program som utnyttjar IPv6 NAT-blädderingsfunktioner som är inbyggda i Windows (t.ex. Teredo). Dessa program kan kringgå IPv4-brandväggar, så program måste hårdna mot Internetattacker riktade mot den öppna porten. |
PROTECTION_LEVEL_EDGERESTRICTED |
Används av program som är utformade för att fungera över internet. Den här inställningen tillåter inte NAT-bläddering med hjälp av Windows Teredo-implementeringen. Dessa program kan kringgå IPv4-brandväggar, så program måste hårdna mot Internetattacker riktade mot den öppna porten. |
PROTECTION_LEVEL_RESTRICTED |
Används av intranätprogram som inte implementerar Internetscenarier. Dessa program är vanligtvis inte testade eller härdade mot Internet-liknande attacker. Den här inställningen begränsar den mottagna trafiken till endast länklokal. |
Följande kodexempel innehåller de definierade värdena för var och en:
#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 */
Dessa värden är ömsesidigt uteslutande och kan inte kombineras i ett enda setsockopt funktionsanrop. Andra värden för det här socketalternativet är reserverade. Dessa skyddsnivåer gäller endast för inkommande anslutningar. Det här socketalternativet påverkar inte utgående paket eller anslutningar.
På Windows 7 och Windows Server 2008 R2 är standardvärdet för IPV6_PROTECTION_LEVEL ospecificerat och PROTECTION_LEVEL_DEFAULT definieras till -1, ett ogiltigt värde för IPV6_PROTECTION_LEVEL.
I Windows Vista och Windows Server 2008 är standardvärdet för IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED och PROTECTION_LEVEL_DEFAULT definieras till -1, ett ogiltigt värde för IPV6_PROTECTION_LEVEL.
I Windows Server 2003 och Windows XP är standardvärdet för IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_EDGERESTRICTED och PROTECTION_LEVEL_DEFAULT definieras som PROTECTION_LEVEL_EDGERESTRICTED.
Not
Alternativet IPV6_PROTECTION_LEVEL socket ska ställas in innan socketen är bunden. Annars kommer paket som tas emot mellan binda och setsockopt-anrop att överensstämma med PROTECTION_LEVEL_EDGERESTRICTEDoch kan levereras till programmet.
I följande tabell beskrivs effekten av att tillämpa varje skyddsnivå på en lyssningssocket.
Skyddsnivå
Inkommande trafik tillåts
Samma webbplats
Extern
NAT-bläddering (Teredo)
PROTECTION_LEVEL_RESTRICTED
Ja
Nej
Nej
PROTECTION_LEVEL_EDGERESTRICTED
Ja
Ja
Nej
PROTECTION_LEVEL_UNRESTRICTED
Ja
Ja
Ja
I tabellen ovan är kolumnen Samma webbplats en kombination av följande:
- Länka lokala adresser
- Lokala adresser för webbplats
- Globala adresser som är kända för att tillhöra samma plats (som matchar platsprefixtabellen)
På Windows 7 och Windows Server 2008 R2 är standardvärdet för IPV6_PROTECTION_LEVEL ospecificerat. Om det inte finns någon gräns bläddreringsmedveten brandväggsprogramvara installerad på den lokala datorn (Windows-brandväggen är inaktiverad eller någon annan brandvägg är installerad som ignorerar Teredo-trafik) får du endast Teredo-trafik om du anger alternativet IPV6_PROTECTION_LEVEL socket till PROTECTION_LEVEL_UNRESTRICTED. Windows-brandväggen eller valfri brandväggsprincip med gräns bläddrering kan dock ignorera det här alternativet baserat på principinställningar för brandväggen. Genom att ställa in det här socketalternativet på PROTECTION_LEVEL_UNRESTRICTEDkommunicerar programmet sin explicita avsikt att ta emot gränstrafik via värdbrandväggen som är installerad på den lokala datorn. Så om det finns en edge-traversal medveten värdbrandvägg installerad, kommer den att ha det slutliga beslutet om att acceptera ett paket. Som standard, utan någon socket alternativuppsättning:
- o Om Windows-brandväggen är aktiverad (eller om en annan gränsblädradsmedveten värdbrandvägg är installerad) på den lokala datorn, kommer vad den än framtvingar att observeras. Den typiska gräns-bläddrade värdbrandväggen blockerar Teredo-trafik som standard. Därför observerar program standardvärdet som om det var PROTECTION_LEVEL_EDGERESTRICTED.
- o Om Windows-brandväggen inte är aktiverad och ingen annan värdbrandvägg med gränsbläddering är installerad på det lokala systemet är standardvärdet PROTECTION_LEVEL_EDGERESTRICTED.
I Windows Vista och Windows Server 2008 är standardvärdet för IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED. Men det effektiva värdet beror på om Windows-brandväggen är aktiverad. Windows-brandväggen är kant-bläddreringsmedveten (Teredo-medveten), oavsett vilket värde som har angetts för IPV6_PROTECTION_LEVEL och ignorerar om IPV6_PROTECTION_LEVEL är PROTECTION_LEVEL_UNRESTRICTED. Det effektiva värdet beror därför på brandväggsprincipen. När Windows-brandväggen är inaktiverad och ingen annan brandvägg med gräns bläddrering är installerad på den lokala datorn är standardvärdet för IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED.
På Windows Server 2003 och Windows XP är standardvärdet för IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_EDGERESTRICTED. Om du inte har angett alternativet IPV6_PROTECTION_LEVEL socket till PROTECTION_LEVEL_UNRESTRICTEDfår du ingen Teredo-trafik.
Beroende på IPV6_PROTECTION_LEVEL kanske ett program som kräver oönskad trafik från Internet inte kan ta emot oönskad trafik. Dessa krav är dock inte nödvändiga för att ta emot begärd trafik via Windows Teredo-gränssnittet. Mer information om interaktionen med Teredo finns i Receiving Solicited Traffic Over Teredo.
När inkommande paket eller anslutningar nekas på grund av den angivna skyddsnivån hanteras avvisandet som om inget program lyssnade på socketen.
Not
Alternativet IPV6_PROTECTION_LEVEL socket placerar inte nödvändigtvis åtkomstbegränsningar för IPv6-socketar eller begränsar NAT-bläddering med någon annan metod än Windows Teredo eller till och med en annan implementering av Teredo av en annan leverantör.
Relaterade ämnen