Come connettersi automaticamente alla VPN con Network-Manager


17

Ho una connessione VPN funzionante. Ora voglio che questa connessione VPN si attivi automaticamente quando mi trovo in una determinata rete wireless. Esiste un modo grafico non intrusivo utilizzando l'applet gestore di rete? Se ricordo bene ha funzionato per un po 'e non funziona più.

Ho reso disponibile la connessione wireless in questione per tutti gli utenti per non dover inserire la password ogni volta.

Il programma CLI utilizzato è vpnc con Hybrid-Auth abilitato (compatibile con VPN VPN client) dal PPA di sroecker

EDIT: non posso piu 'provare le risposte (a causa di eduroam) e dato che nessuna risposta sembra ottenere la maggioranza dei voti, la lascerò senza risposta per ora fino a quando uno non sarà votato, quindi lo accetterò.


come stai andando con questo?
rlemon,

Non ne ho avuto bisogno per molto tempo ormai. Forse vieni ad aprile nella nuova università.
turbo,


@fossfreedom non è un duplicato esattamente perché la mia domanda riguarda vpnc piuttosto che openconnect.
turbo,

Ho scritto un breve post su come bloccare la tua connessione Internet a meno che la VPN non sia attiva e funzionante: mentat.za.net/blog/2015/01/24/vpn-only-internet
Stefan van der Walt

Risposte:


18

La soluzione suggerita da con-f-usedovrebbe funzionare ma non funziona, a causa di un bug di vecchia data:

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

Ci sono soluzioni alternative però. Per le versioni recenti di NetworkManager, esiste un'utilità da riga di comando nmcli, che può essere modificata e salvata come qualcosa del tipo /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

[Non l'ho provato - non esitate a testare e modificare in base ai risultati]

Vedi: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established ha maggiori informazioni.


nota che nel 13.04 ho dovuto mettere quello script in /etc/network/if-up.d e correggere / etc / NetworkManager / system-connections / connection-name secondo askubuntu.com/questions/198136/… per evitare "No errore "segreti VPN validi"
OlegYch,

L'hack della wiki di Arch funziona davvero! Ho provato lo script su arch wiki l'11 luglio 2013 e modificandolo da 'nmcli ...' a 'su [user] -c "nmcli ..."' non funziona! segui le istruzioni come nel wiki e non dimenticare i saluti di chmod + x;)!

Il bug citato da Hugo Eden ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ) è stato corretto a monte oltre 5 mesi fa. Tuttavia, lo sto ancora sperimentando in Precise ... Cosa dà?
iGadget,

Questo non ha funzionato per me, quindi ho deciso di esaminare /var/log/sysloge ho visto il seguente errore: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': non eseguibile dal proprietario. La soluzione sarebbe:sudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov

8

In Ubuntu Trusty 14.04 VPN l'archivio di connessione automatica sulla GUI su singole impostazioni Wi-Fi salvate. Impostazioni di sistema - Rete - controlla Wi-Fi o LAN interessati - Impostazioni (scheda Generale) - seleziona "Connessione automatica a VPN ..."


3

Se ricordo bene ha funzionato per un po 'e non funziona più.

  • Questo potrebbe essere ovvio, ma a volte non ci penso. Hai provato la reinstallazione come:

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Quindi: inserisci qui la descrizione dell'immagine

Ora voglio che questa connessione VPN si attivi automaticamente quando mi trovo in una determinata rete wireless.

  • C'è un modo per sopprimere il tipo di messaggi "impossibile connettersi" quando i tuoi utenti si trovano nella rete sbagliata, ma non riescono a ricordare come è andata. Non vedo altro modo per connettersi automaticamente in modo grafico. Forse dovresti scrivere uno script facendo la connessione quando ti trovi in ​​detta rete wlan.

Spero che abbia aiutato.


Non sono ancora venuto a provarlo. Segnerò la risposta quando lo farò. Promettere.
turbo,

nella mia esperienza questo non funziona davvero. Credo che questo sia un bug in NetworkManager
Conor Rynne,

3
Sì, questo è rotto, anche in Precise. Non si collega automaticamente O_o
eggonlegs,

Sì, rotto. Non funziona (Ubunutu 12.04).
user48956

3

Posso confermare che questa seguente soluzione funziona per me. Sto eseguendo Ubuntu 14.04 LTS.

Sono andato all'icona di spegnimento e quindi alle impostazioni di sistema.

Quando si apre la schermata delle impostazioni, sono passato a "Rete" e alla rete WiFi con cui ero connesso. C'è una piccola freccia su un lato del nome della rete.

Schermata delle impostazioni, è in arabo

Fai clic su quell'icona e dovresti vedere un'opzione chiamata "impostazioni" o "opzioni" (o qualcosa di simile) qui:

Fai clic su Impostazioni

Quando si apre la finestra successiva, vai semplicemente alla scheda 'Generale' e dovresti vedere un'opzione che ti dà un'opzione per connettersi automaticamente a una VPN. Scegli la VPN che desideri connettere quando sei connesso a questo WiFi e boom! Ogni volta che ti connetti a questa rete, Ubuntu ti connetterà anche a quella VPN. :)

Per me funziona. Spero che funzioni anche per tutti gli altri. Non richiede alcun tipo di editor di testo o editor di codice o altro.


0

Utilizzare il seguente script Python Gist # 1547663 .

Il primo parametro dello script è il nome della connessione VPN in NetworkManager e il secondo è il nome separato da virgole delle reti che dovrebbero essere ignorate (ad es. L'uso della connessione VPN a casa è inutile).

Esempio per installare e lasciarlo funzionare all'avvio:

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

Ora se ti connetti a una rete (WiFi o Ethernet), proverà anche a configurare la connessione VPN.


1
Penso che questo approccio sia meno elegante, a causa di un processo in background sempre attivo per questo, mentre potrebbe essere guidato dagli eventi come nella risposta di @hugoheden.
gertvdijk,

Fa più della sua risposta: gestisce anche la riconnessione VPN e i casi in cui l'utente disabilita manualmente la connessione VPN (il che significa che in quel caso non dovrebbe provare a riconnettere VPN)
iElectric

0

Non hai più bisogno di script di dispatcher! In 14.04 (Trusty Tahr) devi solo seguire i seguenti passi dopo aver impostato l'opzione autoconnect nella GUI di NetworkManager.

Archivia chiaramente i segreti vpn nel file di configurazione per la connessione VPN in /etc/NetworkManager/system-connections/YourVPNConnectionName.

È possibile ottenere ciò impostando IPSec secret-flags=0e Xauth password-flags=0nel file di configurazione. Quindi vai alla GUI di NetworkManager e salva nuovamente le impostazioni di connessione VPN. Ora una sezione chiamata [vpn-secrets] dovrebbe essere presente nel file di configurazione. Controllalo bene e la connessione automatica dovrebbe funzionare ora!


0

Anche se la pagina man viene elencata nmcli con statuscome un comando valido, la soluzione sopra fornita da Hugo Hedenrestituisce un errore"Error: Object 'status' is unknown, try 'nmcli help'"

Sto usando nmcli 1.2.2 ( nmcli -v) e ho testato e modificato il seguente per /etc/NetworkManager/dispatcher.d/vpn-upe ha funzionato come un fascino.

#! /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: è possibile utilizzare nmcli con showper visualizzare tutti i nomi delle connessioni in quanto non sempre uguali a quelli elencati nella GUI delle connessioni di rete


L'OP chiede di Ubuntu.
Fosslinux il

Kali e Ubuntu sono entrambi basati su Debian, quindi la soluzione è spesso la stessa. Sono appena andato avanti e l'ho provato su un'istanza di Ubuntu 15.10 e l'errore nmcli era lo stesso di cui avevo parlato sopra. Anche la soluzione ha funzionato allo stesso modo. La versione nmcli installata sulla scatola 15.10 è 1.0.4.
jw00druff,

0

Se preferisci i terminali, puoi usarli nmcli, l'ho fatto usando i seguenti comandi:

Innanzitutto, trova e apri la connessione VPN che desideri aggiornare

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

Questo aprirà il prompt di nmcli, da qui puoi interrogare i valori e impostarli, in questo modo:

===| 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.

E dovresti aver finito!


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.