Un pacchetto di provisioning crea una connessione IKEv2 e il profilo risultante negozia qualcosa di diverso dalla suite che avevi previsto. Il pacchetto ha fatto il suo lavoro; semplicemente non ha mai avuto un campo per il lavoro che hai dato per scontato. Tratta la suite crittografica come un passaggio di provisioning separato e verificabile.

Percorri i cinque punti qui sotto in ordine e tieni distinti gli esiti di accettazione.

Due tipi di criterio dietro nomi simili

Windows separa il criterio che protegge lo scambio di chiavi dal criterio che protegge il traffico. Il lato IKE è configurato da un metodo di crittografia e da un metodo di integrità. Il lato dati è configurato da costanti di cifrario e di trasformazione di autenticazione, e quelle costanti usano nomi propri. Una sola etichetta AES copiata nel campo sbagliato produce una connessione che si stabilisce con un criterio che nessuno ha approvato.

Il gruppo di scambio chiavi e la segretezza in avanti perfetta appartengono alla stessa negoziazione e devono essere accettabili per il gateway. Impostarli senza controllare l’estremità remota produce un errore in una fase più tarda di quella che stavi modificando, ed è per questo che questi errori sembrano problemi del gateway.

Costruisci un criterio completo, non due nomi di algoritmo

Scrivi ogni campo in modo esplicito, compresi quelli che ritieni valori predefiniti. Un criterio parziale applicato con un flag di forzatura diventa la configurazione salvata, e i valori che hai omesso sono quelli che la piattaforma aveva in quel momento. I valori che iniziano con lo stesso prefisso non sono intercambiabili tra i campi, e uno dei nomi di trasformazione noti è valido solo come trasformazione di autenticazione.

$policy = @{
    ConnectionName = 'Corp IKEv2'
    AllUserConnection = $true
    EncryptionMethod = 'AES256'
    IntegrityCheckMethod = 'SHA384'
    CipherTransformConstants = 'AES256'
    AuthenticationTransformConstants = 'SHA384128'
    DHGroup = 'Group19'
    PfsGroup = 'PFS2048'
    Force = $true
}
Set-VpnConnectionIPsecConfiguration @policy

Considera quel blocco come una suite illustrativa che entrambi i peer devono supportare, non come una raccomandazione. L’interruttore di forzatura sopprime un prompt; non approva un pacchetto che non hai esaminato.

Prima crea, poi applica — in un unico ambito

La connessione deve esistere prima che si possa impostare il suo criterio, e l’ambito deve coincidere a ogni passaggio. Un passaggio nel contesto macchina non può trovare il profilo privato di un utente qualsiasi solo perché il nome visualizzato è lo stesso. Le connessioni per tutti gli utenti, le connessioni utente e le loro directory di stato sono oggetti distinti con nomi distinti.

L’ordine conta più di quanto sembri in un pacchetto di provisioning, perché due comandi possono essere eseguiti più vicini di quanto richieda la creazione della connessione. Incapsula il lavoro successivo alla configurazione come comando di provisioning approvato con un contesto di esecuzione dichiarato, e lascia che il motore di provisioning lo sequenzi invece di inserire un ritardo ipotizzato. Un’attesa abbastanza lunga sul tuo hardware di prova è una condizione di gara con un ritardo allegato. Registra la dipendenza invece della durata.

I campi documentati di Configuration Designer descrivono un’impostazione VPN e non espongono ogni controllo IPsec nativo. Se il requisito è una distribuzione gestita, il provider del servizio di configurazione VPNv2 ha una sezione della suite crittografica proprio per questo scopo.

Nomina un unico proprietario del criterio

Un successivo aggiornamento del profilo di gestione può ricreare la connessione e sostituire ciò che ha applicato uno script, e la sostituzione sembrerà una regressione. Decidi se la suite è di proprietà del profilo, di uno script o del canale di gestione, e fai in modo che gli aggiornamenti ordinari seguano lo stesso percorso della prima installazione.

Due proprietari sono come nessuno quando i due non sono d’accordo. Scrivi il nome del proprietario nel registro delle modifiche del profilo. Il prossimo aggiornamento seguirà ciò che dice quel registro.

Verifica il risultato negoziato, non il pacchetto

Leggi il profilo salvato e il suo ambito, poi stabilisci una nuova connessione e confronta le proposte selezionate sul gateway. Conferma anche il comportamento di rinnovo delle chiavi, perché una stretta di mano iniziale può riuscire con una suite che una fase successiva rifiuta.

Get-VpnConnection -Name 'Corp IKEv2' -AllUserConnection | Format-List
Get-ChildItem 'C:\ProgramData\Microsoft\Network\Connections\Pbk' | Select-Object Name, LastWriteTime

Tre esiti di accettazione non sono lo stesso evento: il pacchetto è stato installato, il profilo esiste con il criterio previsto e i peer l’hanno negoziato. Tienili separati, così un campo mancante non venga mai riparato indebolendo l’autenticazione o abilitando un ripiego che nessuno ha scelto.

Articoli correlati