Un utente VPN di Windows deve raggiungere HTTPS su un server e non SMB sullo stesso server, e una rotta non può esprimerlo. Entrambe le richieste portano lo stesso indirizzo di destinazione, quindi il prefisso che invia il traffico nel tunnel porta anche il flusso che volevi escludere. Separarli richiede una regola che esamini qualcosa di più fine della destinazione.

Due intenzioni diverse si costruiscono con due meccanismi Windows diversi. Mescolarle produce un criterio che sembra completo mentre applica metà di ciò che intendevi.

Una rotta non può separare due servizi su un indirizzo

L'instradamento nativo della VPN si basa sui prefissi: decide quali destinazioni passano per il tunnel e quali restano fuori. È lo strumento giusto per tenere una sottorete dentro e un'altra fuori, ed è cieco alle porte per costruzione. Un filtro del traffico sul profilo VPN aggiunge una seconda dimensione: fa corrispondere protocollo, indirizzo remoto e porta remota a ciò che può attraversare quell'interfaccia. Una regola IPsec lavora in un terzo punto ed esprime quali flussi richiedono protezione e con chi si autenticano. Le tre rispondono a domande diverse e nessuna sostituisce le altre.

Comincia scrivendo la frase che intendi. Consentire solo HTTPS è una frase di accesso, mentre richiedere IPsec per HTTPS è una frase di protezione, e le due portano a una configurazione diversa.

Restrizione di accesso e requisito di protezione divergono

Una restrizione di accesso dice cosa può usare l'interfaccia, e si applica consentendo un insieme e rifiutando tutto il resto. Un requisito di protezione dice quali flussi devono essere cifrati e autenticati, e si applica negoziando associazioni di sicurezza che vi corrispondano. Il primo produce una richiesta bloccata quando qualcosa non è nell'elenco, mentre il secondo produce una connessione che o porta la protezione richiesta o non si stabilisce. Trattare l'uno come l'altro è il modo in cui un criterio finisce per non bloccare nulla o non proteggere nulla.

La conseguenza pratica è che un elenco di filtri è un insieme chiuso. Una volta che un elenco esiste sul profilo, il traffico su quell'interfaccia che non corrisponde a nessuna voce viene rifiutato, quindi DNS, gli scambi di autenticazione e ogni dipendenza di cui l'applicazione ha bisogno richiedono voci proprie. Aggiungere una regola ampia per zittire i rifiuti riapre l'intera interfaccia e annulla la restrizione in silenzio. L'elenco deve essere corto quanto il requisito consente e completo quanto l'applicazione esige.

Costruisci l'elenco dei filtri come insieme completo

I profili VPNv2 portano l'elenco dei filtri separatamente dall'elenco delle rotte, e le sue voci sono proprietà del profilo, non comandi. Per l'esempio HTTPS la voce richiede protocollo 6, indirizzo remoto e porta remota, distribuiti tramite il canale di gestione o ProfileXML per il tipo di profilo in uso. La definizione del filtro del traffico VPNv2 di Microsoft afferma che le condizioni dentro una regola si combinano mentre identificatori di regola separati agiscono come alternative.

TrafficFilterList/0/Protocol            = 6
TrafficFilterList/0/RemoteAddressRanges = 10.60.4.20/32
TrafficFilterList/0/RemotePortRanges    = 443
RouteList/0/Address                     = 10.60.4.0/24

I valori di porta in quell'elenco descrivono la porta del servizio all'estremità remota, e la porta locale deve restare senza restrizioni perché la porta sorgente effimera del client non venga filtrata. Farlo al contrario produce una regola che non corrisponde a nulla e un rompicapo che porta via un pomeriggio.

Scrivi la rotta e il filtro come due decisioni separate. La rotta decide che questo server si raggiunge dal tunnel, e il filtro decide quali servizi possono usare quel percorso.

Dimostra entrambi gli esiti con due richieste

Prova il flusso consentito e il flusso negato separatamente, e leggi l'errore invece della pagina mancante. Un rifiuto che arriva in fretta è una decisione di criterio, mentre un timeout è più probabilmente una rotta mancante o un servizio che non ascolta. I comandi sotto eseguono entrambe le richieste e mostrano le regole in vigore.

Test-NetConnection 10.60.4.20 -Port 443
Test-NetConnection 10.60.4.20 -Port 445
Get-NetIPsecRule -DisplayName *Vpn*
Get-VpnConnection -Name Corp

Un rifiuto rapido nel test SMB con un test HTTPS riuscito è l'esito che il filtro doveva produrre. Un rifiuto su entrambe le porte significa che all'elenco manca qualcosa di cui la sessione ha bisogno, e un timeout su entrambe indica l'instradamento più che il filtraggio. Se i flussi protetti mostrano nessuna associazione di sicurezza nell'output IPsec, il requisito di protezione non è soddisfatto anche quando la connessione riesce. Leggi i quattro output insieme, perché ciascuno da solo sostiene una storia diversa.

Registra il profilo effettivo, l'insieme di regole e il criterio della controparte insieme ai risultati. Le note storiche di compatibilità sui client Windows più vecchi non descrivono ciò che le funzioni di profilo gestito di oggi supportano su un determinato gateway. Il comportamento specifico di una versione appartiene al registro, non al presupposto.

Articoli correlati