Collegamento al server di accesso con Linux
Scelta del software client
La connessione al server di accesso OpenVPN da Linux richiede un programma client. Esso catturerà il traffico che si desidera inviare attraverso il tunnel OpenVPN, criptandolo e passandolo al server OpenVPN. E, naturalmente, il contrario, per decifrare il traffico di ritorno.
Pacchetti Linux discussi
Server di accesso OpenVPN | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
Il progetto OpenVPN 3 Linux è un nuovo client costruito sulla OpenVPN 3 Core Library. Questo client è il programma ufficiale OpenVPN Linux Client. Puoi trovare una panoramica delle caratteristiche, le domande frequenti e le istruzioni per installare il pacchetto openvpn3 sul nostro sito OpenVPN 3 per Linux.
Dopo aver seguito le istruzioni per installare il client, avrai bisogno di un profilo di connessione. Questo è un file generato dalla tua installazione di OpenVPN Access Server per il tuo specifico account utente. Contiene i certificati richiesti e le impostazioni di connessione. Vai all’interfaccia web del Client del tuo Access Server (l’indirizzo principale, non la parte /admin). Accedi con le tue credenziali utente. Ti verrà mostrato un elenco di file disponibili per il download. Scegliete il profilo bloccato dall’utente o il profilo auto-login, e vi verrà inviato un file client.ovpn. Salva questo file sul tuo sistema operativo Linux.
Una volta che hai spostato il file sul tuo sistema Linux, puoi importarlo.
openvpn3 config-import --config ${client.ovpn}
Puoi avviare una nuova sessione VPN:
openvpn3 session-start --config ${client.ovpn}
Puoi gestire una sessione VPN in corso:
openvpn3 sessions-list
E così via. Maggiori dettagli possono essere trovati qui: OpenVPN3Linux.
Programma CLI OpenVPN open source
Il programma client del progetto open source può anche connettersi all’Access Server. Il pacchetto è disponibile nella maggior parte delle distribuzioni ed è conosciuto semplicemente come openvpn. Supporta l’opzione di connettersi a più server OpenVPN simultaneamente, e viene fornito con un componente di servizio che può avviare automaticamente e silenziosamente qualsiasi profilo di auto-login che trova nella cartella /etc/openvpn, anche prima che un utente abbia fatto il login. Questo componente di servizio può essere impostato per partire automaticamente all’avvio con gli strumenti disponibili nella vostra distribuzione Linux, se supportati. Su Ubuntu e Debian, quando si installa il pacchetto openvpn, è automaticamente configurato per partire all’avvio.
Per installare il client OpenVPN su Linux, è possibile in molti casi utilizzare semplicemente la versione che si trova nel repository del software della distribuzione Linux stessa. Se si verificano problemi di connettività quando si utilizza un software obsoleto, può essere dovuto ad una possibile mancanza di supporto per le versioni TLS superiori nelle vecchie versioni di OpenVPN. Segui le istruzioni che trovi sul wiki della comunità open source openvpn se vuoi installare il client OpenVPN sul tuo sistema Linux.
Dopo l’installazione, avrai bisogno di un profilo di connessione. Questo è un file generato dall’installazione del server di accesso OpenVPN per il tuo account utente specifico. Contiene i certificati richiesti e le impostazioni di connessione. Vai all’interfaccia web Client del tuo Access Server (l’indirizzo principale, non la parte /admin). Accedi con le tue credenziali utente. Ti verrà mostrato un elenco di file disponibili per il download. Scegliete il profilo bloccato dall’utente o il profilo auto-login, e vi verrà inviato un file client.ovpn. Salva questo file sul tuo sistema operativo Linux da qualche parte. OpenVPN Access Server supporta i profili server-locked, user-locked e auto-login, ma il client OpenVPN da linea di comando è in grado di connettersi solo con profili di connessione user-locked o auto-login.
Supponiamo che tu stia per avviare la connessione attraverso la linea di comando come utente root, o attraverso il demone di servizio. Se vuoi che gli utenti non privilegiati siano in grado di effettuare una connessione, dai un’occhiata al wiki della comunità per maggiori informazioni su come implementarlo. Qui ci concentreremo sull’implementazione più semplice; eseguire la connessione come utente root direttamente, o tramite il demone di servizio.
Avviare una connessione con un profilo auto-login manualmente:
openvpn --config client.ovpn
Avviare una connessione con un profilo bloccato dall’utente manualmente:
openvpn --config client.ovpn --auth-user-pass
Se si usa Google Authenticator o un altro fattore di autenticazione extra, aggiungere il parametro auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Per avviare una connessione auto-login tramite il demone di servizio, mettere client.ovpn in /etc/openvpn/ e rinominate il file. Deve terminare con .conf come estensione del file. Assicuratevi che il demone di servizio sia abilitato a funzionare dopo un riavvio, e poi riavviate semplicemente il sistema. Il profilo di tipo auto-login verrà prelevato automaticamente e la connessione si avvierà da sola. Puoi verificarlo controllando l’output del comando ifconfig; dovresti vedere una scheda di rete tun0 nella lista.
Una caratteristica importante che manca nel client da linea di comando è la capacità di implementare automaticamente i server DNS che sono spinti dal server VPN. E’ possibile, ma richiede l’installazione di un programma di gestione DNS come resolvconf o openresolv, e potrebbe o meno entrare in conflitto con il software di gestione della rete esistente nel vostro sistema operativo. L’idea qui, comunque, è che tu usi uno script che viene eseguito quando la connessione va su, e quando va giù, che usa resolvconf o openresolv per implementare i server DNS per te. Il motivo per cui questo client non è in grado di gestirlo completamente da solo è principalmente perché in un sistema operativo come Windows, Macintosh, Android o iOS, c’è già un metodo unico stabilito per gestire i DNS. È quindi facile per noi creare un client software per quei sistemi operativi che già sanno come gestire i DNS. Ma Linux è disponibile in così tante varianti e supporta anche diversi programmi e metodi di implementazione dei server DNS, e quindi era solo ragionevole lasciare il supporto DNS incorporato fuori dal programma OpenVPN e invece fornire, dove possibile, uno script che gestisce l’implementazione DNS. Tale script potrebbe anche essere scritto da te per fare qualsiasi compito necessario per implementare i server DNS nella tua situazione unica.
Fortunatamente su Ubuntu e Debian, per esempio, c’è lo script /etc/openvpn/update-resolv-conf che viene fornito con il pacchetto openvpn che gestisce l’implementazione DNS per questi sistemi operativi. Basta attivare l’uso di questi seguendo le istruzioni:
Apri il tuo file client.ovpn in un editor di testo:
nano client.ovpn
In fondo aggiungi semplicemente queste righe:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
La prima riga abilita l’uso di script esterni per gestire i compiti di implementazione DNS. Le linee su e giù sono lì per implementare i server DNS spinti dal server VPN quando la connessione va su, e dopo per annullarla, quando la connessione va giù.
Programma di gestione della rete di Ubuntu
C’è anche la possibilità di connettersi attraverso la GUI utilizzando l’estensione openvpn per il plugin Gnome network manager. Ma questo è attualmente un po’ difficile da configurare. C’è per esempio il presupposto errato che tutte le VPN siano in grado di reindirizzare il traffico Internet, e le vecchie versioni potrebbero non capire il formato del file .ovpn, richiedendoti di dividere il certificato incorporato in un file separato. E si dovrebbe probabilmente scavare nelle opzioni per assicurarsi che un percorso predefinito del traffico Internet che passa attraverso il server VPN non sia sempre abilitato di default, soprattutto per i server in cui si dà accesso solo ad alcune risorse interne, e non all’intera Internet. Comunque il vantaggio di usare il componente GUI è che puoi avviare/arrestare la connessione dall’ambiente desktop su Linux.