Error al intentar conectarse a VPN al inicio

13

Esta pregunta ha sido actualizada. Por favor, vea el final de esta publicación.

Estoy tratando de configurar mi computadora Mythbuntu para conectarse a un servicio VPN cuando se inicia. Mi esperanza es que la computadora Mythbuntu siempre use la VPN para todas sus conexiones a Internet.

Me encontré con un guión que supuestamente va a hacer eso, y se ve así:

#!/bin/bash
while [ "true" ]
do
    VPNCON=$(nmcli con status)
    if [[ $VPNCON != "*MyVPNConnectionName*" ]]; then
        echo "Disconnected, trying to reconnect..."
        (sleep 1s && nmcli con up uuid df648abc-d8f7-4ce4-bdd6-3e12cdf0f494)
    else
        echo "Already connected !"
    fi
    sleep 30
done

Cuando ejecuto este script en mi máquina, aparece el siguiente error:

$ /home/mythbuntu/VPN_start.sh
Disconnected, trying to reconnect...
Error: Connection activation failed: Not authorized to control networking.

Pensé que podría ser un problema de permiso, así que intenté ejecutarlo con sudo:

$ sudo /home/mythbuntu/VPN_start.sh
[sudo] password for mythbuntu: 
Disconnected, trying to reconnect...
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

¿Cómo hago para que este script se ejecute sin errores para poder ejecutarlo en el arranque o iniciar sesión para asegurarme de que siempre me conecto por VPN?

Si alguien tiene un mejor guión o método, eso también sería suficiente como respuesta.


Estos son los contenidos de mi archivo / etc / NetworkManager / system-connections / MyVPN (algunos detalles se reemplazan con x caracteres para mayor privacidad):

[connection]
id=MyVPN
uuid=xxxxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxxxxx
type=vpn

[vpn]
service-type=org.xxxxxxxxxxxxxx.xxxxxxxxxxxxxxx.openvpn
username=xxxxxxxxxx
comp-lzo=yes
remote=us-xxxxxx.xxxxxxx.com
connection-type=password
password-flags=0
ca=/etc/openvpn/xxxxxxx.crt

[vpn-secrets]
password=xxxxxxxxxxx

[ipv4]
method=auto
never-default=true

Además, solo quiero agregar que cuando enciendo la VPN usando el applet en la esquina superior derecha del panel Xfce, no se conecta. Entonces, el problema no me parece ser uno de autorización incorrecta, sino de configuración cuando intento hacer esto desde la línea de comandos.

Actualizar:

No estoy completamente seguro de qué ha cambiado, posiblemente algo en la actualización a 12.10, pero ahora puedo iniciar mi servicio VPN desde la línea de comandos. Sin embargo, este comando solo funciona una vez cuando inicio la computadora por primera vez, y también debe ejecutarse con él sudo.

mythbuntu@mythbuntu:~$ nmcli con up id "Private Internet Access SSL"
Error: Connection activation failed: Not authorized to control networking.
mythbuntu@mythbuntu:~$ sudo nmcli con up id "Private Internet Access SSL"
[sudo] password for mythbuntu: 
mythbuntu@mythbuntu:~$

Como necesito usar sudopara ejecutar esto, no puedo ejecutarlo automáticamente al inicio.

¿Cómo lo consigo para poder iniciar mi VPN sin permisos de superusuario?

Preguntador
fuente

Respuestas:

8

El problema parece ser que su contraseña en el llavero no es accesible.

Fuente

La solución mencionada es abrir el archivo / etc / NetworkManager / system-connections / ConnectionName y configurar el

password-flags=0

y agregue las siguientes líneas al archivo

 [vpn-secrets]
 password=YourPassword

Luego reinicie el administrador de red para recoger el cambio:

 sudo restart network-manager

Para más información consulte la fuente

devav2
fuente
Gracias por esa información útil. Sin embargo, una parte en la que estoy atascado es que no tenía un /etc/NetworkManager/system-connections/ConnectionNamearchivo, por lo que cuando dice "editar bajo [vpn]", no estoy seguro de cómo manejar eso. ¿Puedo simplemente crear el archivo?
Interlocutor
sí / etc / NetworkManager / system-connections / <name-of-your-vpn-connection> y cambie el password-flagsformulario 1 a 0. Use nmcli conpara enumerar las conexiones.
devav2
Está bien, lo tengo ahora. Me di cuenta de que estaba cometiendo un error al encontrar el archivo correcto. Sin embargo, ahora que hice todas las ediciones sugeridas, desafortunadamente todavía recibo el mismo Not authorized to control networkingerror.
Interlocutor
Intente volver a abrir el editor de conexión de NetworkManager y vuelva a ingresar las contraseñas o secretos de VPN.
devav2
Abrí Network Manager y volví a ingresar la contraseña (estaba en blanco cuando abrí la interfaz). No vi nada más relacionado con "secretos". Guardé y luego volví a intentar el guión. Sigue siendo el mismo mensaje de error.
Interlocutor
2

Para iniciar VPN automáticamente al inicio

Suponiendo que tiene sus archivos de credenciales funcionando, debería poder usar una dispatcher.dsecuencia de comandos como la que originalmente tenía para iniciar su VPN. Modifiqué un poco tu script para que funcione con 2 conexiones (enrutador inalámbrico en casa y conexión por cable en el trabajo). La razón de esto es que quiero que inicie la VPN si no se inicia cuando alguna de mis conexiones a Internet requeridas está activa. En mi ejemplo, los configuré con nombres predeterminados, pero debe cambiarlos para que coincidan con sus propios nombres.

Ponga esto en el archivo /etc/NetworkManager/dispatcher.d/vpn-upy haga ejecutable conchmod +x

#! /bin/bash

REQUIRED_CONNECTION1_NAME="linksys"
REQUIRED_CONNECTION2_NAME="Wired connection 1"
VPN_CONNECTION_NAME="My VPN"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION1_NAME}\|${REQUIRED_CONNECTION2_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Para configurar certificados de cliente en NetworkManager

Si está utilizando un certificado de cliente con contraseña para autenticarse en su VPN, es un poco indocumentado.

Después de navegar por la especificación de configuración de NetworkManager 0.9 , no pude determinar cómo especificar un pase de certificado vpn en el archivo de configuración. Abrí seahorsey encontré mi ' secreto VPN ' (contraseña del certificado).

Se enumeró como algo así como ' VPN cert-pass secret for My VPN / org.freedesktop.NetworkManager.openvpn / vpn '. Al hacer clic en la pestaña de detalles me dio una pista para el setting-keynombre:

setting-name: vpn
setting-key: cert-pass
connection-uuid: 0badcafe-f00d-dead-beef-feedfacef00d

Para iniciar una VPN automáticamente como root en Ubuntu 12.04 (Precise Pangolin) usando NetworkManager 0.9.4.0:

Abra /etc/NetworkManager/system-connections/My VPNy agregue el cert-passsecreto VPN para que el archivo se vea así:

[connection]
id=My VPN
uuid=0badcafe-f00d-dead-beef-feedfacef00d
type=vpn
timestamp=1234567890

[vpn]
service-type=org.freedesktop.NetworkManager.openvpn
key=/home/<your-user>/path/to/certs/your.secure.key
ca=/home/<your-user>/path/to/certs/your.vpnca.crt
connection-type=tls
cert=/home/<your-user>/path/to/certs/your.crt
remote=your.vpn-server.com
cert-pass-flags=0
[vpn-secrets]
cert-pass=your-vpn-pass

[ipv4]
method=auto
never-default=true
TrinitronX
fuente
Gracias por esta respuesta Sin system-connectionsembargo, mi difiere del tuyo, así que no estoy seguro de aplicar tus ediciones. No tengo un keyo timestamp, y mi tipo de conexión es password, no tls. He agregado mi archivo a mi pregunta.
Interlocutor
Si está usando connection-type=password, probablemente debería estar usando password-flags=0ypassword=YourPassword debajo del [vpn-secrets]encabezado como lo sugiere devav2.
TrinitronX
Sin embargo, el error que está recibiendo sugiere que el usuario que está ejecutando VPN_start.sh no tiene permisos para administrar las redes. Si desea administrar las conexiones VPN como un usuario no root que no tiene permisos, es posible que deba agregar algunas políticas al /etc/dbus-1/system.d/org.freedesktop.NetworkManager.confarchivo.
TrinitronX
Si solo fuera una cuestión de permisos, ¿no funcionaría el script si lo ejecutara sudo? Como se señaló en mi pregunta, falla cuando lo ejecuto consudo también.
Interlocutor
¡Buen punto! No estoy seguro de por qué le daría este error si está ejecutando con sudo. No he podido probar su tipo de VPN yo mismo, ya que mi enrutador no parece ser fácilmente configurable para eso. Si la conexión VPN funciona bien cuando se inicia a través del applet NetworkManager, entonces no sé qué más verificar.
TrinitronX