VPN Linux
In quasi tutte le versioni più recenti di Linux derivate da RedHat o Ubuntu la gestione della rete viene effettuata dal Network Manager (NM), il quale dispone di helper grafici (o testuali, per gli amanti del duro metallo) che permettono di configurare sia i parametri fondamentali di rete (indirizzo IPv4/IPv6, maschera di rete, default gateway e via dicendo) sia la connessione a reti wireless o la creazione di tunnel VPN. Di seguito vengono descritte le procedure per la connessione ai server OpenVPN del dominio mib.infn.it tramite NM.
- creazione di una connessione
- connessione a sansone.mib.infn.it con autenticazione LDAP
- connessione a sansone.mib.infn.it con autenticazione tramite certifcato X.509
- certificato CA comune a tutte le configurazioni: Sectigo_intermediate.crt
- configurazione alternativa per la TLS Authentication
- comandi openssl utili
Creazione di una connessione
dal menu contestuale che si apre clickando sull'icona del Network Manager selezionare 'Edit connections' e quindi procedere alla creazione utilizzando il pulsante '+' e quindi scegliendo 'OpenVPN':
Configurazione della connessione al server sansone.mib.infn.it con autenticazione LDAP (username/password)
VPN tab:
VPN tab - Advanced - General tab:
VPN tab - Advanced - Security tab:
VPN tab - Advanced - TLS Authentication tab:
Configurazione della connessione al server sansone.mib.infn.it con autenticazione tramite certifcato X.509
VPN tab:
I campi 'User Certificate' e 'User private key' devono ovviamente contenere i nomi dei file contenenti il vostro certificato e la relativa chiave privata (che si raccomanda di proteggere sempre con una passphrase non banale - si vedano le istruzioni a fine pagine per estrarre certificato e chiave privata in formato PEM dal certificato in formato pkcs12).
VPN tab - Advanced - General tab:
VPN tab - Advanced - Security tab:
VPN tab - Advanced - TLS Authentication tab:
Configurazione alternativa per la TLS Authentication
Per aumentare ulteriormente la sicurezza della connessione (a prescindere dal tipo di autenticazione in uso) è possibile istruire il cliente a verificare l'identità del server remoto forzandolo a controllare l'esattezza del Subject del certificato presentato dal server stesso - il Subject deve corrispondere al seguente:
C=IT, L=Frascati, O=Istituto Nazionale di Fisica Nucleare, OU=Milano Bicocca, CN=sansone.mib.infn.it
e va copiato esattamente nel corrispondente campo del tab TLS Authentication dopo avere selezionato opportunamente 'Server Certificate Check':
Comandi openssl utili
1) estrazione del certificato personale in formato PEM (ASCII) a partire dal certificato in forma PKCS12 (estensione .p12):
% openssl pkcs12 -in personal-certificate.p12 -clcerts -nokeys -out usercert.pem
2) estrazione della chiave privata:
% openssl pkcs12 -in personal-certificate.p12 -clcerts -nocerts -out userkey.pem
3) estrazione del certifcato della CA che ha firmato il certificato:
% openssl pkcs12 -in personal-certificate.p12 -cacerts -nokeys -out cert_CA.pem