Importar archivos de configuración de VPN a NetworkManager desde la línea de comandos

14

Uno puede importar .ovpnarchivos a NetworkManager a través de la herramienta GUI nm-connection-editor(haga clic derecho nm-applety haga clic en Edit connections): Add-> Import a saved VPN configuration....

Mi objetivo es hacer lo mismo pero a través de la línea de comandos usando herramientas como nm-cli. ¿Es posible de alguna manera?

petRUShka
fuente
¿Has hecho algún progreso con esto? Estoy tratando de hacer lo mismo, así que publicaré una respuesta si lo hago funcionar.
David Mason
@DavidMason, desafortunadamente, no. Estoy esperando tu solución.
petRUShka
Estoy buscando activamente una solución también.
Raspbeguy
Me gustaría ver una solución para importar por línea de comandos
davidbaumann

Respuestas:

10

Estoy usando nmcli versión 1.2.6 y puedo usarlo para importar configuraciones openvpn.

nmcli connection import type openvpn file ~/myconfig.ovpn

A partir de ahora, incluso en la interfaz de usuario de NetworkManager, mi VPN está visible.

Para configurar aún más la conexión, puede usar el showcomando para averiguar el nombre de la conexión y modifycambiar los valores de configuración.

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername
bastian
fuente
¿Alguna idea de cómo usar -vpn.datasi accidentalmente agregué algo incorrecto a los datos de configuración?
32r34wgf3e
@ 32r34wgf3e no lo sé. Cuando mi configuración es incorrecta, la elimino y hago una nueva configuración desde la línea de comandos como se describe en mi respuesta. Consejo: Almacene sus comandos en un archivo de texto para reutilizarlos más tarde.
bastian
5

Una solución alternativa que uso para superar la falta de funcionalidad que viene con nmcli en sistemas basados ​​en Debian es usar comandos para copiar un archivo de configuración VPN existente en la carpeta / etc / NetworkManager / system-settings a un nuevo archivo (como root, por supuesto) en la misma carpeta y realice reemplazos de cadena a los valores permitidos de usuario, puerta de enlace, nombre de usuario y contraseña en la nueva copia. Luego reinicio el administrador de red para aplicar los cambios.

Por ejemplo:

Un archivo de configuración típico en / etc / NetworkManager / system-settings puede verse así:

[connection]
id=<<id>>
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
type=vpn
permissions=user:<<permissions_user>>:;
autoconnect=false

[vpn]
password-flags=0
service-type=org.freedesktop.NetworkManager.pptp
require-mppe-128=yes
mppe-stateful=yes
user=<<user>>
refuse-eap=yes
refuse-chap=yes
gateway=<<gateway>>
refuse-pap=yes

[vpn-secrets]
password=<<password>>

[ipv4]
method=auto

... para que pueda crear un nuevo archivo de configuración que se parezca al anterior ...

cd /etc/NetworkManager/system-settings
cp "existing-working-vpn-config-file" "new-vpn-config-file"

... luego reemplace los valores '<< >>' anteriores con su propia configuración de VPN, por ejemplo:

sed -i "s/<<permissions_user>>/my_permissions_user/g" new-vpn-config-file
sed -i "s/<<user>>/my_user/g" new-vpn-config-file
sed -i "s/<<gateway>>/my_gateway/g" new-vpn-config-file
sed -i "s/<<password>>/my_password/g" new-vpn-config-file

... y finalmente reinicie el administrador de red con el siguiente comando:

service network-manager restart

Nota: La configuración de UUID no parece importar, incluso si no es única. No tengo idea de por qué. Las cosas simplemente funcionan.

Además, si está agregando un nuevo archivo en lugar de copiarlo, asegúrese de que los permisos del archivo estén configurados en 600 (lectura y escritura) y que el propietario sea root.

Pruébalo y dime lo que piensas. Funciona para mí, todo a través de la línea de comando.

Análisis difuso
fuente
0

Usé esto para ejecutar desde la raíz:

USER=japie
runuser -l $USER -c "sudo -S nmcli connection import type openvpn file ~/vpn_clients/flappie3-TO-IPFire.ovpn"

La conexión 'flappie3-TO-IPFire' (26d0b28e-9212-4e71-90dc-3911ddf231e5) se agregó correctamente.

djieno
fuente
¿Por qué usar runusersolo para que el usuario lo use sudo? Esto no agrega nada que no se haya mencionado anteriormente, por ejemplo, Importar archivos de configuración de VPN a NetworkManager desde la línea de comandos
Kusalananda
portátil se ejecuta scripts de inscripción como root
djieno
Claro, y japierunusersudo
cambias
si no agrega "sudo ...", el usuario / japie actual no tiene suficientes derechos para ejecutar nmcli
djieno
Entonces no cambie a ese usuario con runas... En resumen, lo que digo es que debería ser suficiente con nmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpn.
Kusalananda