Cómo conectarse automáticamente a VPN con Network-Manager

17

Tengo una conexión VPN que funciona. Ahora quiero que esta conexión VPN se active automáticamente cuando estoy en una determinada red inalámbrica. ¿Existe una forma gráfica no intrusiva usando el applet de administrador de red? Si no recuerdo mal, funcionó por un tiempo y ya no funciona.

Puse la conexión inalámbrica en cuestión a disposición de todos los usuarios por no tener que ingresar la contraseña cada vez.

El programa CLI utilizado es vpnc con Hybrid-Auth habilitado (compatible con Cisco VPN-client) del PPA de sroecker

EDITAR: Ya no puedo probar las respuestas (debido a eduroam) y dado que ninguna respuesta parece obtener la mayoría de los votos, por ahora voy a dejarla sin respuesta hasta que se vote de nuevo y luego voy a aceptar eso.

turbo
fuente
¿Cómo te va con esto?
rlemon
No lo necesitaba por mucho tiempo ahora. Quizás venga abril en la nueva universidad.
turbo
Possibel duplicado? askubuntu.com/questions/86365
fossfreedom
@fossfreedom no es un duplicado exactamente porque mi pregunta es sobre vpnc en lugar de openconnect.
turbo
Escribí una breve publicación de bloqueo sobre cómo bloquear su conexión a Internet a menos que la VPN esté en funcionamiento: mentat.za.net/blog/2015/01/24/vpn-only-internet
Stefan van der Walt el

Respuestas:

18

La solución sugerida por con-f-usedebería funcionar pero no funciona debido a un error de larga data:

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

Sin embargo, hay soluciones alternativas. Para las versiones recientes de NetworkManager, hay una utilidad de línea de comandos nmcli, que se puede editar y guardar como algo así como /etc/NetworkManager/dispatcher.d/vpn-up:

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_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

[No he probado esto, no dudes en probar y editar según los resultados]

Ver: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established tiene más información.

Hugo Heden
fuente
tenga en cuenta que en 13.04 tuve que poner ese script en /etc/network/if-up.d y corregir / etc / NetworkManager / system-connections / connection-name de acuerdo con askubuntu.com/questions/198136/… para evitar "No error "secretos de VPN válidos"
OlegYch
¡El hack de Arch wiki funciona de hecho! ¡Probé el script en el wiki del arco el 11 de julio de 2013, y modificarlo de 'nmcli ...' a 'su [usuario] -c "nmcli ..."' no funciona! siga las instrucciones como en el wiki y no se olvide de las felicitaciones chmod + x;)!
El error mencionado por Hugo Eden ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ) se solucionó hace más de 5 meses. Sin embargo, todavía lo estoy experimentando en Precise ... ¿Qué da?
iGadget
Esto no funcionó para mí, así que decidí investigar /var/log/syslogy vi el siguiente error: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': no ​​ejecutable por el propietario. La solución seríasudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov
8

En Ubuntu Trusty 14.04 VPN auto connect store en GUI en configuraciones de wi-fi individuales guardadas. Configuración del sistema - Red - verifique el Wi-Fi o Lan interesados ​​- Configuración (pestaña General) - seleccione "Conexión automática a VPN ..."

Dr.Osd
fuente
3

Si no recuerdo mal, funcionó por un tiempo y ya no funciona.

  • Esto puede ser obvio, pero a veces no pienso en ello. ¿Intentó la reinstalación como:

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Entonces: ingrese la descripción de la imagen aquí

Ahora quiero que esta conexión VPN se active automáticamente cuando estoy en una determinada red inalámbrica.

  • Hay una manera de suprimir el tipo de mensaje "no se pudo conectar" cuando los usuarios están en la red incorrecta, pero no pueden recordar cómo fue. No veo otra forma de conectarse automáticamente de forma gráfica. Tal vez tendrá que escribir un script haciendo la conexión cuando esté en dicha red wlan.

Espero que haya ayudado.

confundir
fuente
Todavía no he llegado a probar esto realmente. Lo marcaré respondido cuando lo haga. Promesa.
turbo
En mi experiencia, esto en realidad no funciona. Creo que esto es un error en NetworkManager
Conor Rynne
3
Sí, esto está roto, incluso en Precise. No se conecta automáticamente O_o
eggonlegs
Sí, roto. No funciona (Ubunutu 12.04).
user48956
3

Puedo confirmar que la siguiente solución funciona para mí. Estoy ejecutando Ubuntu 14.04 LTS.

Fui al icono de apagado y luego a la configuración del sistema.

Cuando se abre la pantalla de configuración, fui a 'Red' y a la red WiFi con la que estaba conectado. Hay una pequeña flecha a un lado del nombre de la red.

Captura de pantalla de configuración, está en árabe

Haga clic en ese icono y debería ver una opción llamada "configuración" u "opciones" (o algo similar) aquí:

Haga clic en configuración

Cuando se abra la siguiente ventana, simplemente vaya a la pestaña 'General' y debería ver una opción que le brinda la opción de conectarse automáticamente a una VPN. Elija la VPN que le gustaría conectarse cuando esté conectado a este WiFi y ¡auge! Cada vez que te conectes a esta red, Ubuntu también te conectará a esa VPN. :)

Para mí está funcionando. Espero que funcione para todos los demás también. No requiere ningún tipo de editor de texto o editor de código ni nada ...

Muhammad bin Yusrat
fuente
0

Utilice el siguiente script Python Gist # 1547663 .

El primer parámetro para el script es el nombre de la conexión VPN en NetworkManager y el segundo es el nombre de las redes separadas por comas que deben ignorarse (por ejemplo, usar la conexión VPN en el hogar es inútil).

Ejemplo para instalar y dejar que se ejecute en el momento del arranque:

git clone git://gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

Ahora, si se conecta a una red (wifi o ethernet), también intentará configurar la conexión VPN.

iElectric
fuente
1
Creo que este enfoque es menos elegante, debido a que un proceso de fondo está activo para esto todo el tiempo, mientras que podría estar impulsado por eventos como en la respuesta de @hugoheden.
gertvdijk
Hace más que su respuesta: también maneja la reconexión VPN y los casos en los que el usuario deshabilita manualmente la conexión vpn (lo que significa que no debería intentar reconectar VPN en ese caso)
iElectric
0

¡Ya no necesita ningún script de despachador! En 14.04 (Trusty Tahr) solo tiene que seguir los siguientes pasos después de configurar la opción de conexión automática en la GUI de NetworkManager.

Almacene vpn-secrets claramente en el archivo de configuración para la conexión VPN en /etc/NetworkManager/system-connections/YourVPNConnectionName .

Puede lograr esto configurando IPSec secret-flags=0y Xauth password-flags=0en el archivo de configuración. Luego, vaya a la GUI de NetworkManager y guarde nuevamente la configuración de conexión VPN. Ahora una sección llamada [vpn-secrets] debería estar presente en el archivo de configuración. ¡Verifíquelo dos veces y la conexión automática debería funcionar ahora!

abbrandl
fuente
0

Aunque la página del manual aparece nmcli con statuscomo un comando válido, la solución anterior proporcionada por Hugo Hedendevuelve un error"Error: Object 'status' is unknown, try 'nmcli help'"

Estoy usando nmcli 1.2.2 ( nmcli -v) y he probado y modificado lo siguiente /etc/NetworkManager/dispatcher.d/vpn-upy funcionó de maravilla.

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Nota: puede usar nmcli con showpara ver todos los nombres de conexión, ya que no siempre son los mismos que se enumeran en la GUI de conexiones de red

jw00druff
fuente
El OP pregunta por Ubuntu.
fosslinux
Kali y Ubuntu están basados ​​en Debian, por lo que la solución suele ser la misma. Simplemente seguí adelante y probé esto en una instancia de Ubuntu 15.10 y el error nmcli fue el mismo que mencioné anteriormente. La solución también funcionó igual. La versión nmcli instalada en el cuadro 15.10 es 1.0.4.
jw00druff
0

Si prefiere terminales, puede usar nmcli, lo hice usando los siguientes comandos:

Primero, encuentre y abra la conexión VPN que desea actualizar

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

Esto abrirá el indicador nmcli, desde aquí puede consultar los valores y establecerlos, de esta manera:

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

¡Y deberías haber terminado!

Gustaf
fuente
0

Puede agregar el uuid del perfil de VPN utilizando el campo "secundarios" en su conexión principal

Por ejemplo, /etc/NetworkManager/system-connections/Wired

[connection]
id=Wired
uuid=95ad54f8-9d72-3e65-a4a7-b106aa310eed
type=ethernet
secondaries=66ecf287-8b26-413b-86f2-caca7608bc67;

Referencia https://developer.gnome.org/NetworkManager/stable/nm-settings.html

Hai Nguyen
fuente