Conéctate co cliente 2.x e o perfil funciona; entrega o mesmo ficheiro ao cliente 3.x e detense nunha petición de contrasinal. Pasa --auth-user-pass creds.txt a openvpn3 session-start e o resultado é o mesmo, porque o cliente máis novo non ten ningunha etapa que lea o ficheiro. A negativa é deliberada: as credenciais pertencen a unha sesión, e unha sesión créaa un servizo, non o proceso do teu terminal. Escolle entre a petición interactiva e o axudante de carga automática, e sabe que almacena cada un.

Por que o ficheiro gardado non ten onde ir

No deseño máis novo, a xestión da configuración e a xestión de sesións son servizos separados que falan polo bus do sistema. Esa separación é o que permite a un usuario corrente iniciar unha sesión sen que un daemon con privilexios lea no seu nome un ficheiro de contrasinais protexido. As credenciais baseadas en ficheiros non teñen cabida nese modelo, porque non hai ningún arranque do lado do daemon que as lese. A negativa é consecuencia da arquitectura, non unha función que falte.

Paga a pena nomear o patrón antigo para que sexa máis doado desaprendelo: un perfil fai referencia a un ficheiro de credenciais, e o daemon léo cando arranca o túnel. No modelo novo, as credenciais pertencen a unha sesión e fornecen cando esa sesión comeza. openvpn3 session-start --config work.ovpn pídeas, e --auth-user-pass creds.txt rexéitase porque nada nesa ruta abriría o ficheiro. Cada receita para 2.x que atopes supón unha etapa que xa non existe.

A configuración e os axustes locais do sitio tamén están separados, o que explica unha segunda sorpresa. Un perfil pode parecer completo mentres a conexión que produce carece de configuración de encamiñamento e de resolución. Esas pezas aplícanse como axustes locais do sitio, por separado do ficheiro importado.

A ruta da petición e a sesión que deixa

Fornecer o contrasinal cando comeza a sesión é o fluxo de traballo previsto. O cliente pregunta unha vez, entrega as credenciais ao backend da sesión e continúa:

openvpn3 session-start --config work.ovpn
openvpn3 sessions-list

Por esa ruta non se escribe nada no disco. A sesión tamén segue funcionando despois de pechar o terminal, o que sorprende a quen espera que o proceso morra coa súa shell. Ese é precisamente o sentido de trasladar a xestión de sesións a un servizo. A sesión sobrevive ao terminal que a pediu, e hai que detenla explicitamente.

Para unha estación de traballo cunha persoa diante, esta é tamén a opción máis segura, porque non hai ningún segredo gardado que protexer ou esquecer. Só é inadecuada onde non hai ninguén para escribir.

Automatización sen unha persoa no teclado

Onde unha máquina ten que conectarse sen unha persoa, o proxecto inclúe openvpn3-autoload. Le un directorio de perfís e un descriptor correspondente por perfil, e o descriptor fornece as credenciais en texto plano. O axudante é un binario aparte, normalmente en /usr/sbin/openvpn3-autoload, non unha opción de session-start. Configuralo significa crear o directorio, copiar o perfil co nome que o descriptor espera e escribir o descriptor.

Unha configuración por usuario ten este aspecto e execútase coa conta que posuirá a sesión. O modo do directorio mantén fóra os demais usuarios locais:

mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload

O descriptor nomea as credenciais e pide un inicio automático. Mantén o valor do contrasinal fóra do control de versións:

{
  "autostart": true,
  "user-auth": {
    "autologin": true,
    "username": "svc-vpn",
    "password": "change-this-value"
  }
}

Despois invoca o axudante unha vez e confirma que a sesión aparece. O segundo comando é a comprobación, non outro paso de configuración:

/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list

Ao arrincar, unha unidade empaquetada chamada openvpn3-autoload.service usa o directorio de todo o sistema /etc/openvpn3/autoload, non o de cada usuario. Ese lugar necesita propiedade de root e un modo máis estrito, e o descriptor segue contendo o contrasinal en texto claro. O compromiso é explícito: o contrasinal agora está no disco, así que trata ese directorio como un segredo, exclúeo das copias de seguridade fóra do host e escolle a ruta interactiva sempre que haxa unha persoa.

Fallos do bus que parecen fallos de contrasinal

Algúns fallos atribuídos ás credenciais non o son en absoluto. Un erro de permisos que nomea a ruta de activación do servizo significa unha de dúas cousas: o backend non está en marcha, ou quen chama non ten permiso para activalo. Ningunha edición do perfil cambiará ningunha das dúas. Comproba o estado do servizo e a política de bus incluída antes de tocar a configuración.

Os comandos seguintes separan as dúas cousas. O primeiro informa de se o backend está en marcha; o segundo mostra erros de bus recentes:

systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20

A outra lectura errónea frecuente é unha sesión que aparece e desaparece de inmediato. Ese patrón adoita significar que os axustes locais do sitio nunca se aplicaron, así que o túnel subiu sen os cambios de encamiñamento e de resolución que o fan útil. Le a secuencia en lugar da última liña: se a sesión se creou, se chegou a un estado conectado e se sobreviviu son tres feitos separados.

Cando o cliente antigo segue en uso

O cliente 2.x aínda acepta un ficheiro de credenciais, e un chaveiro pode responder á súa petición sen que o segredo chegue nunca ao disco. Un envoltorio resolve a entrada, así que o ficheiro nomea a busca en lugar do contrasinal. Este arranxo depende dun chaveiro desbloqueado, algo que un contedor sen sesión de inicio ou unha unidade que arrinca antes de que ninguén inicie sesión non poden ofrecer. A ferramenta de busca informa entón dunha colección na que non pode escribir, así que o erro parece un fallo de credenciais cando é un fallo do chaveiro.

Antes de construír nada diso, comproba se un axuste keepalive do perfil elimina por completo a necesidade de reiniciar. Unha sesión que se mantén nunca chega á petición que intentas automatizar.

Artigos relacionados