SNX su Linux: librerie a 32 bit e un resolver che si ripristina
SNX su Linux fallisce nel caricatore, nella tabella di routing o nel resolver, e ciascuno di questi guasti sembra un problema di accesso. Affrontate i quattro sintomi in ordine.
L’SSL Network Extender di Check Point fallisce su Linux in quattro modi riconoscibili, e tre di essi vengono letti male come un problema di accesso. O il binario non parte, o parte e non lascia alcuna rotta, o si connette e la risoluzione dei nomi muore, o il portale del browser funziona mentre la riga di comando no. Affrontateli in quest’ordine, perché ciascuno è la condizione d’ingresso del successivo.
Sintomo uno: il caricatore rifiuta prima dell’accesso
L’installer scaricato dal firewall lascia un binario a 32 bit con setuid-root in /usr/bin/snx. Su una distribuzione a 64 bit non viene eseguito finché l’architettura i386 non è abilitata e le librerie contro cui è linkato non esistono.
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libstdc++5:i386 libstdc++6:i386 libx11-6:i386 libpam0g:i386
ldd /usr/bin/snx | grep "not found"Un elenco not found vuoto è la porta per tutto ciò che segue. L’insieme esatto dei pacchetti cambia tra le versioni: un resoconto funzionante richiedeva libstdc++5:i386, libx11-6:i386 e libpam0g:i386, un altro richiedeva anche libstdc++6:i386. Leggete ldd invece di copiare un elenco di pacchetti da un tutorial scritto per un’altra distribuzione.
Se snx non si trova affatto, l’installer non è mai stato completato o si è installato altrove fuori dal vostro PATH. È un guasto diverso, e vale la pena confermarlo prima di aggiungere architetture al sistema. Verificate con command -v snx e guardate nella directory indicata dall’installer. Aggiungere pacchetti i386 a una macchina in cui il binario è semplicemente assente non ripara nulla.
Sintomo due: l’accesso riesce e nulla viene instradato
Un accesso riuscito crea tunsnx e modifica da solo la tabella di routing, quindi controllate cosa esiste davvero prima di cambiare qualsiasi altra cosa.
ip -br addr show tunsnx
ip route | grep tunsnx
snx -dUsate snx -d per smontare. Uccidere il processo lascia indietro l’interfaccia e le sue rotte, e il tentativo successivo fallisce allora per un motivo che non ha nulla a che vedere con le credenziali. Il primo accesso registra anche una firma del server sotto /etc/snx/, ed è per questo che uno script non presidiato può aver bisogno di un’esecuzione interattiva prima di poter funzionare. Cancellate quello stato solo quando intendete riapprovare il server.
Sintomo tre: i nomi si risolvono finché il tunnel non sale
Questo è quello che si rompe in silenzio. snx scrive i server DNS spinti direttamente in /etc/resolv.conf. Dove quel percorso è un collegamento simbolico dentro /run/systemd/resolve/, la modifica può andare persa al successivo evento del resolver, e dopo una disconnessione le voci spinte possono altrettanto bene restare.
Funzionano due sistemazioni, e la scelta dovrebbe essere deliberata invece di quella suggerita dal primo risultato di ricerca:
- Prendete il file: sostituite il collegamento simbolico con un file statico e installate
libnss-resolvepiù la sua variante i386, così il servizio dei nomi ha ancora un ripiego quando il file viene riscritto sotto di esso. - Mantenete systemd-resolved come proprietario e registrate il collegamento del tunnel:
resolvectl dns tunsnx 10.0.0.10, poiresolvectl domain tunsnx corp.example, e confermate conresolvectl status.
Annotate i server dei nomi precedenti alla VPN prima di connettervi. Se modificate il file a mano, rimuovere le voci spinte dopo fa parte della procedura, non è una pulizia facoltativa, perché un portatile che conserva il DNS aziendale dopo la disconnessione non riuscirà a risolvere nient’altro.
Sintomo quattro: il portale funziona e la CLI no
Le versioni recenti del firewall hanno spostato il middleware dal browser a un demone Java locale, così il portale parla con un agente locale sulla porta 14186. Quell’indirizzo richiede un’eccezione di certificato nel browser e un processo in esecuzione.
ps ax | grep cshell
/usr/bin/cshell/launcherLa riga di comando è un percorso separato: snx -s vpn.example.com -u user, con ~/.snxrc che conserva il server, il nome utente e la preferenza di riautenticazione. Una sessione del portale funzionante non dice nulla sulla correttezza dell’installazione della CLI, e il client nudo non gestisce i codici monouso.
La scorciatoia del container che costa più di quanto risparmia
snx controlla il modulo tun, lo carica quando manca, crea un’interfaccia di tunnel, riscrive le rotte e vi spinge il traffico. Riprodurre tutto ciò dentro un container significa montare /dev e /lib/modules e concedere capacità ampie, il che consegna al container la maggior parte dell’amministrazione di rete dell’host.
Quando serve davvero una sandbox, una macchina virtuale è il confine più pulito: il client riceve un kernel che può modificare, e l’host conserva la sua tabella di routing. Sceglietela prima di passare un pomeriggio su capacità che rimpiangerete di aver concesso.