OpenConnect vpnc-script: quin fitxer s'executa?
L'auxiliar que instal·la rutes i DNS és independent del client del túnel. Trobeu la ruta que fa servir el client en execució abans de substituir-lo per una còpia del fòrum.
OpenConnect pot completar l'apretada de mans del túnel i deixar-vos igualment sense ruta cap a la subxarxa privada, perquè el client i l'auxiliar que modifica l'estat de la xarxa local són dos programes diferents. L'autenticació demostra que la passarel·la ha acceptat la sessió; no demostra res sobre quina interfície, quines rutes o quins paràmetres del resolutor es van instal·lar després. La majoria d'informes confusos vénen de substituir l'auxiliar per una còpia d'una resposta antiga, cosa que canvia el comportament de cada connexió de la màquina. Localitzeu l'auxiliar que el client en execució invoca realment abans de modificar-ne cap part.
Dos programes, dues responsabilitats
El client posseeix el transport, l'autenticació i el dispositiu del túnel. Un auxiliar a part posseeix el que passa al sistema local un cop existeix el túnel: l'adreçament de la interfície, les rutes cap a les subxarxes que ha anunciat la passarel·la i la configuració del resolutor. documentació de l'auxiliar d'OpenConnect descriu aquesta separació i l'entorn que rep l'auxiliar. La distinció importa durant un error, perquè una contrasenya rebutjada i una ruta que falta no són el mateix incident encara que l'escriptori mostri un sol diàleg per a tots dos.
Tenir present aquesta separació també explica per què una connexió pot informar d'èxit mentre els noms privats encara no es resolen. El túnel està aixecat en tots dos casos i només difereix la fase d'integració local.
Localitzeu l'auxiliar que fa servir el client en execució
La ruta es fixa quan es construeix el paquet i es pot sobreescriure a cada invocació, així que el fitxer que recordeu d'una altra distribució pot no tenir res a veure amb aquesta connexió. Pregunteu al procés en execució en lloc de la documentació que tingueu oberta.
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Si la línia del procés porta un --script argument, aquest fitxer guanya sobre el valor predeterminat compilat. Rutes més antigues com /etc/vpnc/vpnc-script poden existir i quedar sense ús, i per això esborrar-les o editar-les no canvia res en una compilació recent. Reviseu també la data de modificació, perquè un auxiliar que ningú no ha tocat durant anys és un senyal fort que el valor predeterminat del paquet és qui fa la feina.
La integració amb NetworkManager és un tercer propietari, amb el seu propi auxiliar i els seus propis paràmetres de perfil. Afegir un segon script de rutes o de resolutor damunt d'aquesta integració duplica rutes i deixa un resolutor que dos programes afirmen gestionar. Trieu un sol propietari per connexió i desactiveu l'altre abans de provar.
Llegiu la primera operació fallada, no l'últim avís
La configuració de la interfície, la instal·lació de rutes, la selecció del resolutor i la neteja de l'estat obsolet són passos separats, i l'avís imprès al final sovint és una queixa de neteja i no l'avaria que va trencar la connexió. Llegiu cap amunt fins a la primera operació concreta que ha fallat. Un error de l'auxiliar que anomena un fitxer o una adreça val més que deu línies de soroll de desmuntatge.
Compareu el resultat local previst amb l'observat: el dispositiu del túnel existeix, una ruta cap a una adreça privada coneguda hi passa i el resolutor respon per un nom privat. Un auxiliar que encerta els dos primers i falla en el tercer apunta a la política del resolutor i no a l'encaminament. Un auxiliar que no configura el dispositiu gens probablement no es va executar mai, i això és una qüestió de permisos, no de xarxa. Confirmeu el bit d'execució i el compte de servei abans de reescriure cap lògica.
Verifiqueu la connexió, la reconnexió i la desconnexió
La configuració només és la meitat del contracte, perquè el mateix auxiliar ha de restaurar o eliminar l'estat que posseeix quan el túnel es tanca. Un auxiliar que afegeix rutes i no les elimina mai deixa la màquina amb una ruta obsoleta que sobreviu a la sessió.
ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'
Executeu les tres primeres línies mentre esteu connectats, desconnecteu i torneu-les a executar i confirmeu que la ruta i l'entrada del resolutor han desaparegut. La quarta línia mostra si l'auxiliar s'ha invocat de fet i quin camí executable ha fet servir el servei. Conserveu aquest parell de sortides al tiquet, perquè és el comparatiu abans i després el que fa evident un error de neteja.
Mantingueu l'auxiliar empaquetat i executable pel compte de servei, perquè un script que funciona a la vostra shell encara pot ser denegat sota una política de servei restringida. Quan un canvi sigui realment necessari, documenteu-ne la finalitat i el propietari i compareu-lo amb la versió empaquetada a cada actualització. Una bifurcació no explicada d'un auxiliar és una de les poques coses que poden fer fallar una connexió que funcionava un any després.