Nun fío dun foro, ifconfig-noexec ofrécese como a solución que mantén viva unha sesión SSH cando se levanta un túnel. O razoamento soa plausible ata que miras que toca realmente a opción. Impide que OpenVPN configure o enderezo da interface do túnel e pásalle eses valores aos scripts; non di nada sobre a onde van as respostas da túa conexión de xestión. Crer o contrario produce un túnel sen enderezo utilizable e unha sesión SSH que segue morrendo.

Que delega realmente a opción

Por defecto, o cliente levanta o dispositivo do túnel e asigna os enderezos local e remoto que lle deu o servidor. Con ifconfig-noexec definido, ese paso omítese e os valores negociados expórtanse á contorna dos scripts para que outra cousa os poida aplicar.

A propiedade cambia de mans. No seu lugar non se inventa nada.

Así que a pregunta que responde a opción é quen configura a interface, e a pregunta que non responde é como atopan os paquetes o camiño de volta ata ti. Mantén esas dúas cousas separadas ou pasarás unha noite editando rutas para compensar unha interface sen enderezo.

Tres opcións parecidas con traballos distintos

A familia é doada de confundir porque os nomes difiren nunha palabra e os síntomas solápanse. Le o que suprime cada unha antes de escoller calquera delas.

OptionWhat stops happening
ifconfig-noexecOpenVPN's own tunnel-address configuration; values go to scripts instead
route-noexecAutomatic route addition and removal; route details go to a script
route-nopullServer-pushed routes and related options such as DNS are rejected

Son alternativas que hai que entender por separado, non un conxunto para pegar xuntas. Suprimir a configuración de enderezos non suprime os cambios de ruta, as regras de cortafogos nin as opcións empuxadas que levan DNS. Un script delegado tamén é libre de cambiar rutas, que é unha decisión que estás a entregar en vez de evitar.

Se un cliente de provedor envolve o motor, usa a súa integración soportada en vez de deixar unha directiva de baixo nivel nun perfil e esperar que o envoltorio a respecte. Os envoltorios adoitan rexerar o perfil ao conectar, así que unha edición manual desaparece sen erro. Comproba onde garda o cliente a súa configuración antes de pasar unha noite co ficheiro. Iso vale para cada fila da táboa, non só para a que viñeches buscar.

A sesión SSH que querías protexer

Unha conexión SSH ten un enderezo de orixe, un enderezo de destino e un camiño de resposta. Nun servidor que acaba de instalar unha ruta por defecto de túnel completo, a resposta ao teu enderezo público encaixa co túnel e a pasarela VPN descártaa.

Nada na configuración de enderezos da interface do túnel cambia iso.

O que o arranxa é unha ruta máis específica para o teu enderezo de xestión a través da pasarela previa ao túnel, ou unha regra de política que dirixa ese tráfico, ademais dos axustes de filtro que aplique o teu host. Os dous problemas ás veces aparecen xuntos, e así é como un se confunde coa cura do outro. Próaos por separado: levanta o túnel sen a opción, mira o enderezo da interface e o camiño de resposta, e despois decide cal dos dous está realmente roto.

Que ten que asumir un script delegado

Se de verdade queres que outro dono configure a interface, enumera o traballo: aplica o enderezo local e o remoto, levanta o dispositivo, restaura ou elimina o enderezo ao desmontar e fai o mesmo outra vez tras unha reconexión. Os valores dunha sesión correcta non deben estar fixados no código, porque o servidor pode dar outro par a próxima vez.

As variables de contorno que exporta o cliente son a única entrada soportada para ese traballo.

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

Dentro dun script route-up esas variables están dispoñibles; desde un traballo de cron ou unha consola manual non o están. Confirma que gancho do ciclo de vida usa a túa versión e confirma que o gancho se executa con privilexios abondos para cambiar a interface, xa que o cliente pode ter baixado xa a un usuario sen privilexios.

Proba todo o ciclo de vida, non unha soa sesión

Levanta o túnel, comproba o enderezo no dispositivo e despois reconecta e compróbao outra vez. Unha configuración que funciona unha vez e falla no segundo intento adoita significar que o paso delegado só se executa na primeira conexión.

Despois proba os dous criterios de aceptación xuntos: unha conexión SSH nova polo camiño de xestión previsto funciona, e unha aplicación permitida usa o túnel correctamente.

Unha sesión SSH antiga que sobrevive por casualidade mentres o túnel non ten enderezo non é un éxito, e é exactamente o estado que produce esta opción cando ninguén asume o traballo. Comproba primeiro o enderezo da interface, despois o camiño de resposta da xestión e despois a aplicación. Se dous dos tres están mal, a opción moveu traballo sen darlle un dono.

Artigos relacionados