IPV6_PROTECTION_LEVEL
L'opzione socket IPV6_PROTECTION_LEVEL consente agli sviluppatori di applicare restrizioni di accesso ai socket IPv6. Tali restrizioni consentono a un'applicazione in esecuzione in una LAN privata di rafforzare in modo semplice e affidabile se stessa contro gli attacchi esterni. L'opzione socket IPV6_PROTECTION_LEVEL si estende o restringe l'ambito di un socket di ascolto, abilitando l'accesso senza restrizioni da utenti pubblici e privati quando appropriato o limitando l'accesso solo allo stesso sito, come richiesto.
IPV6_PROTECTION_LEVEL attualmente dispone di tre livelli di protezione definiti.
Livello di protezione | Descrizione |
---|---|
PROTECTION_LEVEL_UNRESTRICTED |
Usato dalle applicazioni progettate per operare su Internet, incluse le applicazioni che sfruttano le funzionalità di attraversamento NAT IPv6 integrate in Windows (ad esempio, Teredo). Queste applicazioni possono ignorare i firewall IPv4, quindi le applicazioni devono essere rafforzate contro gli attacchi Internet diretti alla porta aperta. |
PROTECTION_LEVEL_EDGERESTRICTED |
Usato dalle applicazioni progettate per operare su Internet. Questa impostazione non consente l'attraversamento NAT tramite l'implementazione di Windows Teredo. Queste applicazioni possono ignorare i firewall IPv4, quindi le applicazioni devono essere rafforzate contro gli attacchi Internet diretti alla porta aperta. |
PROTECTION_LEVEL_RESTRICTED |
Usato dalle applicazioni Intranet che non implementano scenari Internet. Queste applicazioni in genere non vengono testate o sottoposte a protezione avanzata contro gli attacchi in stile Internet. Questa impostazione limita il traffico ricevuto solo a livello locale di collegamento. |
Nell'esempio di codice seguente vengono forniti i valori definiti per ognuno di essi:
#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 */
Questi valori si escludono a vicenda e non possono essere combinati in una singola setockopt chiamata di funzione. Altri valori per questa opzione socket sono riservati. Questi livelli di protezione si applicano solo alle connessioni in ingresso. L'impostazione di questa opzione socket non ha alcun effetto su pacchetti o connessioni in uscita.
In Windows 7 e Windows Server 2008 R2 il valore predefinito per IPV6_PROTECTION_LEVEL non è specificato e PROTECTION_LEVEL_DEFAULT è definito su -1, un valore non valido per IPV6_PROTECTION_LEVEL.
In Windows Vista e Windows Server 2008 il valore predefinito per IPV6_PROTECTION_LEVEL è PROTECTION_LEVEL_UNRESTRICTED e PROTECTION_LEVEL_DEFAULT è definito su -1, un valore non valido per IPV6_PROTECTION_LEVEL.
In Windows Server 2003 e Windows XP il valore predefinito per IPV6_PROTECTION_LEVEL è PROTECTION_LEVEL_EDGERESTRICTED e PROTECTION_LEVEL_DEFAULT viene definito come PROTECTION_LEVEL_EDGERESTRICTED.
Nota
L'opzione socket IPV6_PROTECTION_LEVEL deve essere impostata prima che il socket sia associato. In caso contrario, i pacchetti ricevuti tra binding e setockopt chiamate saranno conformi a PROTECTION_LEVEL_EDGERESTRICTEDe possono essere recapitati all'applicazione.
La tabella seguente descrive l'effetto dell'applicazione di ogni livello di protezione a un socket di ascolto.
Livello di protezione
Traffico in ingresso consentito
Stesso sito
Esterno
Attraversamento NAT (Teredo)
PROTECTION_LEVEL_RESTRICTED
Sì
No
No
PROTECTION_LEVEL_EDGERESTRICTED
Sì
Sì
No
PROTECTION_LEVEL_UNRESTRICTED
Sì
Sì
Sì
Nella tabella precedente il colonna Same site è una combinazione delle opzioni seguenti:
- Collegare indirizzi locali
- Indirizzi locali del sito
- Indirizzi globali noti per appartenere allo stesso sito (corrispondente alla tabella del prefisso del sito)
In Windows 7 e Windows Server 2008 R2 il valore predefinito per IPV6_PROTECTION_LEVEL non è specificato. Se nel computer locale non è installato alcun software firewall compatibile con attraversamento perimetrale (Windows Firewall è disabilitato o viene installato un altro firewall che ignora il traffico Teredo), si riceverà il traffico Teredo solo se si imposta l'opzione socket IPV6_PROTECTION_LEVEL su PROTECTION_LEVEL_UNRESTRICTED. Tuttavia, Windows Firewall o qualsiasi criterio firewall con riconoscimento dell'attraversamento perimetrale può ignorare questa opzione in base alle impostazioni dei criteri per il firewall. Impostando questa opzione socket su PROTECTION_LEVEL_UNRESTRICTED, l'applicazione sta comunicando la finalità esplicita di ricevere il traffico perimetrale attraversato dal firewall host installato nel computer locale. Pertanto, se è installato un firewall host compatibile con l'attraversamento perimetrale, avrà la decisione finale sull'accettazione di un pacchetto. Per impostazione predefinita, senza alcuna opzione socket impostata:
- o Se Windows Firewall è abilitato (o è installato un altro firewall host compatibile con attraversamento perimetrale) nel computer locale, qualunque cosa venga applicata. Per impostazione predefinita, il firewall host che riconosce l'attraversamento perimetrale blocca il traffico Teredo. Pertanto, le applicazioni osserveranno l'impostazione predefinita come se fosse PROTECTION_LEVEL_EDGERESTRICTED.
- o Se Windows Firewall non è abilitato e non è installato alcun altro firewall host compatibile con attraversamento perimetrale nel sistema locale, il valore predefinito sarà PROTECTION_LEVEL_EDGERESTRICTED.
In Windows Vista e Windows Server 2008 il valore predefinito per IPV6_PROTECTION_LEVEL è PROTECTION_LEVEL_UNRESTRICTED. Tuttavia, il valore effettivo dipende dal fatto che Windows Firewall sia abilitato. Windows Firewall è compatibile con l'attraversamento perimetrale (teredo compatibile), indipendentemente dal valore impostato per il IPV6_PROTECTION_LEVEL e ignora se IPV6_PROTECTION_LEVEL è PROTECTION_LEVEL_UNRESTRICTED. Il valore effettivo dipende quindi dai criteri del firewall. Quando Windows Firewall è disabilitato e non è installato alcun altro firewall con riconoscimento dell'attraversamento perimetrale nel computer locale, il valore predefinito per IPV6_PROTECTION_LEVEL è PROTECTION_LEVEL_UNRESTRICTED.
In Windows Server 2003 e Windows XP il valore predefinito per IPV6_PROTECTION_LEVEL è PROTECTION_LEVEL_EDGERESTRICTED. A meno che non sia stata impostata l'opzione socket IPV6_PROTECTION_LEVEL su PROTECTION_LEVEL_UNRESTRICTED, non si riceve alcun traffico Teredo.
A seconda del IPV6_PROTECTION_LEVEL, un'applicazione che richiede traffico non richiesto da Internet potrebbe non essere in grado di ricevere traffico non richiesto. Tuttavia, questi requisiti non sono necessari per ricevere traffico richiesto tramite l'interfaccia Teredo di Windows. Per altre informazioni sull'interazione con Teredo, vedere Ricezione di traffico richiesto tramite Teredo.
Quando i pacchetti o le connessioni in ingresso vengono rifiutati a causa del livello di protezione impostato, il rifiuto viene gestito come se nessuna applicazione fosse in ascolto su tale socket.
Nota
L'opzione socket IPV6_PROTECTION_LEVEL non pone necessariamente restrizioni di accesso ai socket IPv6 o limita l'attraversamento NAT usando un metodo diverso da Windows Teredo o anche usando un'altra implementazione di Teredo da un altro fornitore.
Argomenti correlati