¿Cómo guardar contraseñas VPN con NetworkManger para nmcli?

14

Hay muchas publicaciones sobre cómo poner contraseñas VPN /etc/NetworkManager/system-connections/<connection>. No puedo hacer que ninguno de ellos funcione en Ubuntu 12.04. Los campos en las preguntas y respuestas parecen sutilmente diferentes a los míos. El más cercano parecía ser: Cómo guardar las contraseñas de VPN con NetworkManger .

Prefiero nmclipedir contraseñas en la consola en lugar de en un widget GUI en el escritorio, pero eso parece imposible.

Entonces dos preguntas:

  1. ¿Están los /etc/NetworkManager/system-connections/<connection>archivos y sus campos documentados oficialmente en alguna parte? Parece que hay muchos 404 para enlaces de documentación de NetworkManager.
  2. ¿Qué tiene de malo mi archivo de conexión?

Aquí está mi archivo de conexión. He intentado muchas variaciones de configuración en este archivo, pero esto es lo mejor que pude encontrar (anónimo por supuesto):

[connection]
# Not sure if this helps or breaks anything. Fails regardless.
permissions=user:peter:;
id=My VPNC
uuid=a2cd97d5-7df1-4391-91d8-7e72931ec2de
type=vpn
autoconnect=false
timestamp=1396942441

[vpn]
service-type=org.freedesktop.NetworkManager.vpnc
NAT Traversal Mode=natt
ipSec-secret-type=save
IPSec secret-flags=0
xauth-password-type=save
Vendor=cisco
Xauth username=user
IPSec gateway=1.2.3.4
XAuth password-flags=0
IPSec ID=Ipsec
Perfect Forward Secrecy=server
IKE DH Group=dh2

[vpn-secrets]
XAuth password=password
IPSec secret=grouppassword

[ipv4]
method=auto

Permisos:

> ls -l /etc/NetworkManager/system-connections/My\ VPNC 
-rw------- 1 root root 527 Apr  8 10:11 /etc/NetworkManager/system-connections/My VPNC

Ejecutarlo da:

> sudo nmcli con up id  'My VPNC'
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/44
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

Editar: Aquí hay otra publicación similar (sobre Openconnect VPN): ¿Cómo puedo hacer que NetworkManager se conecte automáticamente a Openconnect VPN a través de nmcli sin solicitar un usuario y contraseña?

Peter V. Mørch
fuente

Respuestas:

11

Cuando configura su conexión VPN a través de la GUI, la contraseña se guarda en el llavero. Si guarda su contraseña en el archivo de conexión, así:

sudoedit /etc/NetworkManager/system-connections/MyConnectionExampleName

in this file:

    # 1 here means key-ring I  think, but with 0, the password below is  used
    [vpn]
    password-flags=0
    cert-pass-flags=0

    [vpn-secrets]
    password=my_secret_password
    cert-pass=my_secret_certificate_password
HackerBaloo
fuente
1
No funcionó para mí aquí ahora 15.04. Si corrí nmcli con up id MyVPNcomo mi propio usuario, el diálogo de contraseña todavía aparece en el escritorio de la máquina remota. Correr sudo nmcli con up id MyVPNdio primero (process:3320): libnm-glib-WARNING **: async_got_type: could not read properties for /org/freedesktop/NetworkManager/ActiveConnection/7: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't existy luegoError: Connection activation failed: Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/7' failed in libnm-glib.
Peter V. Mørch
4

Tuve el mismo problema, / var / log / messages estaba registrando un mensaje donde NetworkManager se quejaba de propiedades no válidas. Después de eliminar las propiedades de marca y tipo y dejar solo los registros [vpn-secrets], se pudo establecer la conexión.

ipSec-secret-type=save
IPSec secret-flags=0
xauth-password-type=save
XAuth password-flags=0

Paquete que he instalado:

NetworkManager-0.8.1-66.el6.x86_64

Resultado:

[connection]
id=My VPNC
uuid=a2cd97d5-7df1-4391-91d8-7e72931ec2de
type=vpn
autoconnect=false
timestamp=1396942441

[vpn]
service-type=org.freedesktop.NetworkManager.vpnc
NAT Traversal Mode=natt
Vendor=cisco
Xauth username=user
IPSec gateway=1.2.3.4
IPSec ID=Ipsec
Perfect Forward Secrecy=server
IKE DH Group=dh2

[vpn-secrets]
XAuth password=password
IPSec secret=grouppassword

[ipv4]
method=auto
Oscar
fuente
No funciono para mi. Como root obtuve: (process:2034): libnm-glib-WARNING **: async_got_type: could not read properties for /org/freedesktop/NetworkManager/ActiveConnection/4: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist Error: Connection activation failed: Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/4' failed in libnm-glib.Como usuario "yo", abrió el cuadro de diálogo de inicio de sesión en el escritorio remoto.
Peter V. Mørch
1
Puedo confirmar que esto funciona para Ubuntu 14.04 en una VPN de Cisco.
Dale Anderson
Funciona con Fritzbox 5490 y Ubuntu 16.04. ¿Dónde IPSec secretestá la clave IPSec Xauth passwordprecompartida y es la contraseña que ha elegido en Fritzbox? Asegúrese de no estropear la ortografía y la palabra clave mayúscula / minúscula de IPSec secrety Xauth password.
MadMike
3

En términos de resolver el error secreto de contraseña simple en 16.04 , solo necesita las dos líneas:

[vpn-secrets]
password=my_secret_password

Solo tocaría / agregaría otras líneas si fuera necesario

Lobo
fuente
1
También necesitaba configurarlopassword-flags=0
Pierre François
2

No cambiaría los archivos de configuración generados por la GUI. La próxima vez que haga clic en la GUI, sus entradas manuales desaparecerán. También una actualización del sistema puede frenarlo.

Puedes probar lo siguiente:

  • Permitir correr sudo nmclisin contraseña:

    Crear un archivo /etc/sudores.d/mynmcli(el nombre de archivo no importa)

    Host_Alias HOST = YOURHOSTNAME
    Cmnd_Alias NMCLI    = /usr/bin/nmcli
    YOURHOSTNAME HOST=(root) NOPASSWD:NMCLI
    
  • Crea un archivo de contraseña con:

    vpn.secrets.Xauth password:PASSWORD
    vpn.secrets.IPSec secret:SHAREDSECRET
    

    Ahora puede ejecutar la siguiente línea en un script manejado por corn:

    sudo nmcli con up id YOURVPN passwd-file /path/to/your/file
    

    (Para encontrar YOURVPN, escriba " nmcli con")

Funciona para mí en Ubuntu 16.10.

wolfi
fuente
1

Haz lo que Wolf dijo . Guarda el archivo.

Luego escribe

sudo service network-manager restart

y golpear Enter.

Ahora sus cambios están en vigor.

Hipócrita
fuente
0

Edite su conexión VPNC utilizando el cuadro de diálogo Conexiones de red.

En la pestaña VPN, las entradas de contraseña tienen un icono dentro de la entrada en el lado derecho. Haga clic en este icono y seleccione "Guardar la contraseña solo para este usuario".

gálatas
fuente