Scegliere un protocollo per OpenConnect è un esercizio di abbinamento, non una ricerca di marchio. Un gateway che dice Juniper nella pagina di accesso può esporre Network Connect, Pulse o entrambi, e il valore predefinito del client non è nessuno dei due. Indovinare costa un accesso fallito e, peggio, un thread di supporto che incolpa le credenziali per una discrepanza di protocollo. Confermate il servizio prima di digitare un nome host in un profilo.

OpenConnect chiama nc il protocollo più vecchio e pulse quello più recente, ed entrambi vivono nello stesso binario. Il flag scelto cambia lo scambio di accesso, non l'instradamento dopo una connessione riuscita.

I due nomi di protocollo condividono una storia di prodotto

Il Network Connect di Juniper e il successivo client Pulse Secure sono protocolli diversi che una famiglia di apparati ha esposto nel tempo. OpenConnect ha sviluppato un gestore nc per il primo e un gestore pulse per il secondo. Sono percorsi di codice separati con formati di richiesta separati, quindi il supporto in uno non dice nulla dell'altro.

La differenza si vede subito nella conversazione di accesso: endpoint, campi del modulo e il modo in cui il client segnala un secondo fattore rifiutato variano tra i due gestori.

Scegliere sulla riga di comando è un cambio di una parola: openconnect --protocol=nc vpn.example.com per Network Connect, o openconnect --protocol=pulse vpn.example.com per Pulse. Entrambi i tentativi sono tentativi di connessione reali che possono riconfigurare rotte e DNS, quindi eseguiteli deliberatamente. Non mettete mai una password sulla riga di comando e non disattivate i controlli dei certificati per superare un errore di protocollo, perché così si nasconde la discrepanza invece di correggerla. Se dovete vedere cosa invia il client, --dump-http-traffic stampa lo scambio, che di solito identifica il gestore atteso dal gateway.

Adattate il protocollo a ciò che il gateway espone

L'apparato risponde solo al protocollo per cui è configurato. Un servizio solo Pulse rifiuta un accesso nc anche con credenziali valide, e un vecchio servizio Network Connect non ha alcun endpoint pulse a cui rispondere. Chiedete all'amministratore quale è abilitato e quale client supportano. Un apparato rinominato, una pagina wiki obsoleta e un portale web familiare sono tutte prove deboli.

Una volta noto il protocollo, confermate i requisiti circostanti: autenticazione con certificato o token, una selezione di gruppo di autenticazione e qualsiasi controllo di conformità dell'endpoint. Questi decidono se un client da riga di comando può completare l'accesso.

L'autenticazione può risolvere la questione prima del protocollo

Un'implementazione può richiedere un certificato client, un viaggio SAML attraverso il browser o un verificatore di host che ispeziona la macchina prima di concedere l'accesso. Il gestore pulse di OpenConnect documenta limiti di compatibilità per alcuni di questi flussi, e il gestore nc ha le proprie lacune. Una password che funziona nel browser dimostra che l'account è valido; non dimostra che una CLI o un plugin desktop arbitrario possa completare la stessa sequenza. Quando è in gioco un verificatore di host, il client ha bisogno di uno script wrapper fornito dall'amministratore. Senza di esso l'accesso si blocca dopo la prima risposta e sembra un errore di protocollo quando in realtà è un passo di conformità mancante.

La selezione del gruppo di autenticazione è l'altro punto di inciampo comune, perché un gateway con più gruppi si aspetta che il client ne nomini uno.

Sulla riga di comando, --authgroup="Employees" fornisce quella scelta, e ometterla può far finire la sessione in un gruppo predefinito che rifiuta l'account. Con i certificati, --certificate punta al certificato e alla chiave del client, e il gateway può comunque richiedere un token dopo. Provate l'intera sequenza una volta con output dettagliato prima di automatizzare qualsiasi cosa attorno.

Quando l'interfaccia desktop non può esprimere la scelta

Le interfacce grafiche portano i propri set di funzioni, e un plugin più vecchio può precedere il protocollo che vi serve. L'integrazione OpenConnect di NetworkManager memorizza la scelta nei suoi dati di connessione, così nmcli connection modify "Office VPN" vpn.data "protocol=pulse" può impostare ciò che l'editor non mostra. Verificate che la versione installata del plugin supporti la chiave prima di presumere che la modifica abbia avuto effetto.

Se un menu offre solo PPTP o L2TP, sceglierne uno non converte un servizio Pulse in quel protocollo. Installate l'integrazione approvata invece di passare a ciò che il menu elenca per caso.

Cosa registrare quando l'accesso continua a fallire

Registrate quattro cose: il protocollo scelto, le versioni del client e del plugin, il flusso di autenticazione previsto e il primo errore tornato con un codice di stato anziché un timeout. Quell'insieme separa un gestore sbagliato da un certificato mancante, un gruppo di autenticazione rifiutato o un controllo di conformità bloccato. L'output dettagliato vale la pena di conservarlo per lo stesso motivo, perché mostra la richiesta fallita e non solo il sintomo.

Tenete il comando o il profilo funzionante accanto al nome del gateway quando riesce. Altrimenti la prossima persona che si connette ripeterà la stessa ipotesi di marchio contro protocollo.

Articoli correlati