IPV6_PROTECTION_LEVEL
Mit der option IPV6_PROTECTION_LEVEL Socket können Entwickler Zugriffsbeschränkungen für IPv6-Sockets festlegen. Solche Einschränkungen ermöglichen es einer Anwendung, die auf einem privaten LAN ausgeführt wird, sich einfach und robust gegen externe Angriffe zu erhärten. Die IPV6_PROTECTION_LEVEL Socketoption erweitert oder begrenzt den Umfang eines Überwachungssockets, ermöglicht den uneingeschränkten Zugriff von öffentlichen und privaten Benutzern bei Bedarf oder das Einschränken des Zugriffs nur auf denselben Standort, wie erforderlich.
IPV6_PROTECTION_LEVEL verfügt derzeit über drei definierte Schutzebenen.
Schutzebene | Beschreibung |
---|---|
PROTECTION_LEVEL_UNRESTRICTED |
Wird von Anwendungen verwendet, die für die Verwendung im Internet entwickelt wurden, einschließlich Anwendungen, die IPv6 NAT-Traversalfunktionen nutzen, die in Windows integriert sind (z. B. Teredo). Diese Anwendungen umgehen möglicherweise IPv4-Firewalls, daher müssen Anwendungen gegen Internetangriffe gehärtet werden, die an den geöffneten Port gerichtet sind. |
PROTECTION_LEVEL_EDGERESTRICTED |
Wird von Anwendungen verwendet, die für den Betrieb über das Internet entwickelt wurden. Diese Einstellung lässt nat-Traversal nicht mithilfe der Windows Teredo-Implementierung zu. Diese Anwendungen umgehen möglicherweise IPv4-Firewalls, daher müssen Anwendungen gegen Internetangriffe gehärtet werden, die an den geöffneten Port gerichtet sind. |
PROTECTION_LEVEL_RESTRICTED |
Wird von Intranetanwendungen verwendet, die keine Internetszenarien implementieren. Diese Anwendungen werden in der Regel nicht getestet oder gegen Angriffe im Internetstil gehärtet. Diese Einstellung schränkt den empfangenen Datenverkehr nur auf "Link lokal" ein. |
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 auf -1 definiert ist, 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_EDGERESTRICTEDdefiniert.
Anmerkung
Die IPV6_PROTECTION_LEVEL Socketoption sollte festgelegt werden, bevor der Socket gebunden ist. Andernfalls entsprechen pakete, die zwischen Bindung und setsockopt- Aufrufen PROTECTION_LEVEL_EDGERESTRICTEDempfangen werden und möglicherweise an die Anwendung übermittelt werden.
In der folgenden Tabelle wird die Auswirkung der Anwendung der einzelnen Schutzebenen auf einen Überwachungssocket beschrieben.
Schutzebene
Eingehender Datenverkehr zulässig
Gleiche Website
Äußerlich
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 "Gleiche Website" eine Kombination aus den folgenden Komponenten:
- Lokale Adressen verknüpfen
- Lokale Websiteadressen
- Globale Adressen, die bekannt sind, zu demselben Standort gehören (übereinstimmend mit der Websiteprä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 mit Edge-Traversalerkennung installiert ist (Windows-Firewall ist deaktiviert oder eine andere Firewall installiert, die Teredo-Datenverkehr ignoriert), erhalten Sie nur dann Teredo-Datenverkehr, wenn Sie die IPV6_PROTECTION_LEVEL Socketoption auf PROTECTION_LEVEL_UNRESTRICTEDfestlegen. Die Windows-Firewall oder eine Edge-Traversal-fähige Firewallrichtlinie kann diese Option jedoch basierend auf Richtlinieneinstellungen für die Firewall ignorieren. Wenn Sie diese Socketoption auf PROTECTION_LEVEL_UNRESTRICTEDfestlegen, kommuniziert die Anwendung ihre explizite Absicht, edge-traversierten Datenverkehr von der hostfire auf dem lokalen Computer installierten Hostfirewall zu empfangen. Wenn also eine Edge-Traversal-Hostfirewall installiert ist, hat sie die endgültige Entscheidung, ein Paket zu akzeptieren. Standardmäßig ohne Socketoptionssatz:
- o Wenn die Windows-Firewall aktiviert ist (oder eine andere Edgedurchquerungsfähige Hostfirewall installiert ist) auf dem lokalen Computer, unabhängig davon, was sie erzwingt, wird beobachtet. Die typische Hostfirewall zur Edge-Traversal-Berücksichtigung blockiert standardmäßig den Teredo-Datenverkehr. Daher beachten Anwendungen den Standardwert so, als ob sie PROTECTION_LEVEL_EDGERESTRICTEDwurde.
- o Wenn die Windows-Firewall nicht aktiviert ist und keine andere Edge-Traversal-fähige Hostfirewall auf dem lokalen System installiert ist, wird die Standardeinstellung 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_UNRESTRICTEDist. Der effektive Wert hängt daher von der Firewallrichtlinie ab. Wenn die Windows-Firewall deaktiviert ist und keine andere firewall mit Edge-Traversal-Berücksichtigung auf dem lokalen Computer installiert ist, wird 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. Sofern Sie die Option IPV6_PROTECTION_LEVEL Socket nicht auf PROTECTION_LEVEL_UNRESTRICTEDfestgelegt haben, erhalten Sie keinen Teredo-Datenverkehr.
Je nach IPV6_PROTECTION_LEVEL kann eine Anwendung, die unerwünschten Datenverkehr aus dem Internet erfordert, möglicherweise keinen unerwünschten Datenverkehr empfangen. Diese Anforderungen sind jedoch nicht erforderlich, um den angeforderten Datenverkehr über die Windows Teredo-Schnittstelle zu empfangen. Weitere Informationen zur Interaktion mit Teredo finden Sie unter Empfangen von angeforderten Datenverkehr über Teredo.
Wenn eingehende Pakete oder Verbindungen aufgrund der festgelegten Schutzstufe abgelehnt werden, wird die Ablehnung so behandelt, als ob keine Anwendung auf diesem Socket überwacht wurde.
Anmerkung
Die IPV6_PROTECTION_LEVEL Socketoption legt nicht unbedingt Zugriffsbeschränkungen für IPv6-Sockets fest oder schränkt NAT-Traversal mit einer anderen Methode als Windows Teredo oder sogar mithilfe einer anderen Implementierung von Teredo durch einen anderen Anbieter ein.
Verwandte Themen