ifconfig-noexec non salva a túa sesión SSH: que fai en realidade
Suprime a configuración de enderezos da interface que fai o propio OpenVPN. Non reserva unha ruta de resposta para SSH, non desactiva todos os cambios de ruta nin achega o enderezo que falta.
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.
| Option | What stops happening |
|---|---|
ifconfig-noexec | OpenVPN's own tunnel-address configuration; values go to scripts instead |
route-noexec | Automatic route addition and removal; route details go to a script |
route-nopull | Server-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.