IPV6_PROTECTION_LEVEL

Mit der Option IPV6_PROTECTION_LEVEL Sockets können Entwickler Zugriffsbeschränkungen für IPv6-Sockets festlegen. Mit solchen Einschränkungen kann sich eine im privaten LAN ausgeführte Anwendung selbst einfach und stabil vor externen Angriffen schützen. Die IPV6_PROTECTION_LEVEL Socketoption erweitert oder einschränkt den Bereich eines Listensockets, ermöglicht bei Bedarf uneingeschränkten Zugriff von öffentlichen und privaten Benutzern oder beschränkt den Zugriff nur auf denselben Standort, wie erforderlich.

IPV6_PROTECTION_LEVEL verfügt derzeit über drei definierte Schutzstufen.

Schutzebene BESCHREIBUNG
PROTECTION_LEVEL_UNRESTRICTED
Wird von Anwendungen verwendet, die für den Betrieb über das Internet konzipiert sind, einschließlich Anwendungen, die die in Windows integrierten IPv6-NAT-Traversalfunktionen nutzen (z. B. Teredo). Diese Anwendungen können IPv4-Firewalls umgehen und müssen daher vor Internetangriffen auf den geöffneten Anschluss geschützt werden.
PROTECTION_LEVEL_EDGERESTRICTED
Wird von Anwendungen verwendet, die für den Betrieb über das Internet entwickelt wurden. Diese Einstellung lässt den NAT-Durchlauf mit der Windows Teredo-Implementierung nicht zu. Diese Anwendungen können IPv4-Firewalls umgehen und müssen daher vor Internetangriffen auf den geöffneten Anschluss geschützt werden.
PROTECTION_LEVEL_RESTRICTED
Wird von Intranetanwendungen verwendet, die keine Internetszenarien implementieren. Diese Anwendungen werden im Allgemeinen nicht getestet oder vor Internetangriffen geschützt.
Diese Einstellung beschränkt den empfangenen Datenverkehr auf linklokalen Datenverkehr.

 

Im folgenden Codebeispiel werden die definierten Werte für die einzelnen Werte bereitgestellt:

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

Diese Werte schließen sich gegenseitig aus und können nicht in einem einzelnen setockopt-Funktionsaufruf kombiniert werden. Andere Werte für diese Socketoption sind reserviert. Diese Schutzstufen gelten nur für eingehende Verbindungen. Das Festlegen dieser Socketoption hat keine Auswirkungen auf ausgehende Pakete oder Verbindungen.

Unter Windows 7 und Windows Server 2008 R2 ist der Standardwert für IPV6_PROTECTION_LEVEL nicht angegeben, und PROTECTION_LEVEL_DEFAULT ist auf -1 definiert, ein unzulässiger Wert für IPV6_PROTECTION_LEVEL.

Unter Windows Vista und Windows Server 2008 ist der Standardwert für IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED , und PROTECTION_LEVEL_DEFAULT ist auf -1 definiert, ein unzulässiger Wert für IPV6_PROTECTION_LEVEL.

Unter Windows Server 2003 und Windows XP ist der Standardwert für IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_EDGERESTRICTED und PROTECTION_LEVEL_DEFAULT als PROTECTION_LEVEL_EDGERESTRICTED definiert.

Hinweis

Die IPV6_PROTECTION_LEVEL Socketoption sollte festgelegt werden, bevor der Socket gebunden wird. Andernfalls entsprechen Pakete, die zwischen bind - und setockopt-Aufrufen empfangen werden, PROTECTION_LEVEL_EDGERESTRICTED und werden möglicherweise an die Anwendung übermittelt.

 

In der folgenden Tabelle wird die Auswirkung des Anwendens der einzelnen Schutzebenen auf einen Abhörsocket beschrieben.

Schutzebene

Eingehender Datenverkehr zulässig

Gleiche Website

Extern

NAT-Traversal (Teredo)

PROTECTION_LEVEL_RESTRICTED

Ja

Nein

Nein

PROTECTION_LEVEL_EDGERESTRICTED

Ja

Ja

Nein

PROTECTION_LEVEL_UNRESTRICTED

Ja

Ja

Ja

 

In der obigen Tabelle ist die Spalte Same site eine Kombination aus folgendem:

  • Verknüpfen lokaler Adressen
  • Lokale Adressen des Standorts
  • Globale Adressen, die bekannt sind, dass sie zum gleichen Standort gehören (übereinstimmend mit der Sitepräfixtabelle)

Unter Windows 7 und Windows Server 2008 R2 ist der Standardwert für IPV6_PROTECTION_LEVEL nicht angegeben. Wenn auf dem lokalen Computer keine Firewallsoftware für den Edgedurchlauf installiert ist (Windows-Firewall ist deaktiviert oder eine andere Firewall, die Teredo-Datenverkehr ignoriert), erhalten Sie nur Teredo-Datenverkehr, wenn Sie die IPV6_PROTECTION_LEVEL Socketoption auf PROTECTION_LEVEL_UNRESTRICTED festlegen. Allerdings kann die Windows-Firewall oder jede Edgedurchlauf-fähige Firewallrichtlinie diese Option basierend auf Richtlinieneinstellungen für die Firewall ignorieren. Wenn Sie diese Socketoption auf PROTECTION_LEVEL_UNRESTRICTED festlegen, kommuniziert die Anwendung ihre explizite Absicht, edgedurchquerten Datenverkehr von der Hostfirewall zu empfangen, die auf dem lokalen Computer installiert ist. Wenn also eine Edgedurchlauf-fähige Hostfirewall installiert ist, hat sie die endgültige Entscheidung über die Annahme eines Pakets. Standardmäßig ohne Socketoption:

  • o Wenn die Windows-Firewall auf dem lokalen Computer aktiviert ist (oder eine andere Edge-Traversal-Hostfirewall installiert ist), wird alles, was sie erzwingt, beachtet. Eine typische Edgedurchquerungs-fähige Hostfirewall blockiert standardmäßig Teredo-Datenverkehr. Daher wird die Standardeinstellung von Anwendungen als PROTECTION_LEVEL_EDGERESTRICTED.
  • o Wenn die Windows-Firewall nicht aktiviert ist und keine andere Edge-Traversal-Hostfirewall auf dem lokalen System installiert ist, wird der Standardwert PROTECTION_LEVEL_EDGERESTRICTED.

Unter Windows Vista und Windows Server 2008 ist der Standardwert für IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED. Der effektive Wert hängt jedoch davon ab, ob die Windows-Firewall aktiviert ist. Die Windows-Firewall ist edge-traversal aware (Teredo aware), unabhängig davon, welcher Wert für die IPV6_PROTECTION_LEVEL festgelegt ist, und ignoriert, wenn IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED ist. Der effektive Wert hängt also von der Firewallrichtlinie ab. Wenn die Windows-Firewall deaktiviert ist und keine andere Edgedurchlauf-fähige Firewall auf dem lokalen Computer installiert ist, ist der Standardwert für IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_UNRESTRICTED.

Unter Windows Server 2003 und Windows XP ist der Standardwert für IPV6_PROTECTION_LEVEL PROTECTION_LEVEL_EDGERESTRICTED. Wenn Sie die IPV6_PROTECTION_LEVEL Socketoption nicht auf PROTECTION_LEVEL_UNRESTRICTED festgelegt haben, erhalten Sie keinen Teredo-Datenverkehr.

Je nach IPV6_PROTECTION_LEVEL kann eine Anwendung, die unerwünschten Datenverkehr aus dem Internet erfordert, möglicherweise nicht in der Lage sein, unerwünschten Datenverkehr zu empfangen. Diese Anforderungen sind jedoch nicht erforderlich, um angeforderten Datenverkehr über die Windows Teredo-Schnittstelle zu empfangen. Weitere Informationen zur Interaktion mit Teredo finden Sie unter Empfangen von angefordertem Datenverkehr über Teredo.

Wenn eingehende Pakete oder Verbindungen aufgrund der festgelegten Schutzstufe abgelehnt werden, wird die Ablehnung so behandelt, als ob keine Anwendung an diesem Socket lauscht.

Hinweis

Die Option IPV6_PROTECTION_LEVEL Sockets setzt nicht unbedingt Zugriffsbeschränkungen für IPv6-Sockets oder schränkt NAT-Traversal mit einer anderen Methode als Windows Teredo oder sogar einer anderen Implementierung von Teredo durch einen anderen Anbieter ein.

 

getsockopt

Empfangen von angefordertem Datenverkehr über Teredo

setsockopt