En algun fil d'un fòrum, ifconfig-noexec s'ofereix com la solució que manté viva una sessió SSH quan s'aixeca un túnel. El raonament sona plausible fins que comproveu què toca l'opció. Atura OpenVPN de configurar l'adreça de la interfície del túnel i lliura aquests valors als scripts; sobre on van les respostes a la vostra connexió de gestió no diu res. Creure el contrari produeix un túnel sense adreça utilitzable i una sessió SSH que igualment mor.

Què delega realment l'opció

Per defecte, el client aixeca el dispositiu de túnel i assigna les adreces local i remota que el servidor li ha donat. Amb ifconfig-noexec establert, aquesta passa se salta, i els valors negociats s'exporten a l'entorn de script perquè una altra cosa els apliqui.

La propietat es mou. No s'inventa res al seu lloc.

Així, la pregunta que respon l'opció és qui configura la interfície, i la pregunta que no respon és com troben els paquets el camí de tornada cap a vosaltres. Manteniu-ho separat o passareu una vetllada editant rutes per compensar una interfície sense adreça.

Tres opcions semblants amb feines diferents

La família és fàcil de confondre perquè els noms difereixen en una paraula i els símptomes se solapen. Llegiu què suprimeix cadascuna abans de triar-ne una.

OpcióQuè deixa de passar
ifconfig-noexecLa configuració pròpia de l'adreça del túnel per OpenVPN; els valors van als scripts en lloc seu
route-noexecL'addició i eliminació automàtica de rutes; els detalls de la ruta van a un script
route-nopullLes rutes empenyades pel servidor i les opcions relacionades com el DNS es rebutgen

Són alternatives per entendre individualment, no un conjunt per enganxar juntes. Suprimir la configuració d'adreça no suprimeix els canvis de ruta, les regles de tallafoc ni les opcions empenyades que porten DNS. Un script delegat també és lliure de canviar rutes, i això és una decisió que lliureu en lloc d'evitar.

Si un client de proveïdor embolcalla el motor, feu servir la seva integració admesa en lloc de deixar una directiva de baix nivell en un perfil i esperar que l'embolcall la respecti. Els embolcalls sovint regeneren el perfil en connectar, així que una edició manual desapareix sense cap error. Comproveu on guarda el client la seva configuració abans de passar una vetllada amb el fitxer. Això s'aplica a cada fila de la taula, no només a la que heu vingut a buscar.

La sessió SSH que volíeu protegir

Una connexió SSH té una adreça d'origen, una adreça de destinació i un camí de resposta. En un servidor que acaba d'instal·lar un túnel complet per defecte, la resposta a la vostra adreça pública coincideix amb el túnel, i la passarel·la VPN la descarta.

Res de la configuració d'adreça de la interfície del túnel no canvia això.

El que ho arregla és una ruta més específica per a la vostra adreça de gestió a través de la passarel·la prèvia al túnel, o una regla de política que dirigeixi aquest trànsit, més els paràmetres de filtre que apliqui el vostre amfitrió. Els dos problemes de vegades apareixen junts, i així és com un es pren per cura de l'altre. Proveu-los per separat: aixequem el túnel sense l'opció, mireu l'adreça de la interfície i el camí de resposta, i decidiu després quin dels dos està realment trencat.

Què ha d'assumir un script delegat

Si de debò voleu que un altre propietari configuri la interfície, enumereu la feina: apliqueu les adreces local i remota, aixequem el dispositiu, restaurem o elimineu l'adreçament en desmuntar, i feu el mateix un altre cop després de reconnectar. Els valors d'una sessió reeixida no s'han de codificar en dur, perquè el servidor pot donar un parell diferent la propera vegada.

Les variables d'entorn que exporta el client són l'única entrada admesa per a aquesta feina.

env | grep -E '^ifconfig_|^route_'

Dins d'un script route-up aquestes variables estan disponibles; des d'una tasca cron o un shell manual no ho estan. Confirmeu quin ganxo de cicle de vida fa servir la vostra versió, i confirmeu que el ganxo s'executa amb prou privilegis per canviar la interfície, ja que el client pot haver baixat ja a un usuari sense privilegis.

Proveu tot el cicle de vida, no una sola sessió

Aixequem el túnel, comproveu l'adreça al dispositiu, reconnecteu i torneu-la a comprovar. Una configuració que funciona un cop i falla al segon intent normalment significa que el pas delegat només s'executa a la primera connexió.

Després proveu tots dos criteris d'acceptació alhora: una connexió SSH nova pel camí de gestió previst funciona, i una aplicació permesa fa servir el túnel correctament.

Una sessió SSH antiga que sobreviu per casualitat mentre el túnel no té adreça no és un èxit, i és exactament l'estat que aquesta opció produeix quan ningú assumeix la feina. Comproveu primer l'adreça de la interfície, després el camí de resposta de gestió, i després l'aplicació. Si dos dels tres són dolents, l'opció ha mogut la feina sense donar-li cap propietari.

Articles relacionats