Come creare un file .ovpn da importare nel client OpenVPN per IOS

Il client OpenVPN per IOS consente agevolmente di collegarsi ad un server OpenVPN. Per aggiungere un nuovo account nel client si possono caricare i files di configurazione via Itunes (con le recenti versioni di MacOs/IOS via File Manager) oppure facendoglielo scaricare da un url oppure ancora come allegato ad una email.

Per l’installazione tramite allegato ad un messaggio email è necessario creare un file .ovpn che contenga sia la configurazione che i certificati. Per la creazione consiglio di posizionare il seguente script nella cartella /etc/openvpn/easy-rsa del server:

!/bin/bash
#Script written by Eric Jodoin
#Default Variable Declarations
 DEFAULT="inline_client.conf"
 FILEEXT=".ovpn"
 CRT=".crt"
 KEY=".key"
 CA="ca.crt"
 TA="ta.key"
 kPath="./keys/"
#Ask for a Client name
 echo "Please enter an existing Client Name:"
 read NAME
 echo "Please enter an Name for the output file"
 read ovpnName
#1st Verify that client's Public Key Exists
 if [ ! -f $kPath$NAME$CRT ]; then
    echo "[ERROR]: Client Public Key Certificate not found: $kPath$NAME$CRT"
    exit
 fi
 echo "Client's cert found: $kPath$NAME$CRT"
#Then, verify that there is a private key for that client
 if [ ! -f $kPath$NAME$KEY ]; then
    echo "[ERROR]: Client 3des Private Key not found: $kPath$NAME$KEY"
    exit
 fi
 echo "Client's Private Key found: $kPath$NAME$KEY"
#Confirm the CA public key exists
 if [ ! -f $kPath$CA ]; then
    echo "[ERROR]: CA Public Key not found: $kPath$CA"
    exit
 fi
 echo "CA public Key found: $kPath$CA"
 #Confirm the tls-auth ta key file exists
 if [ ! -f $kPath$TA ]; then
    echo "[ERROR]: tls-auth Key not found: $kPath$TA"
    exit
 fi
 echo "tls-auth Private Key found: $kPath$TA"
#Ready to make a new .opvn file - Start by populating with the
 cat $DEFAULT > $ovpnName$FILEEXT
#Now, append the CA Public Cert
 echo "" >> $ovpnName$FILEEXT 
 cat $kPath$CA | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> $ovpnName$FILEEXT 
 echo "" >> $ovpnName$FILEEXT
#Next append the client Public Cert
 echo "" >> $ovpnName$FILEEXT 
 cat $kPath$NAME$CRT | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> $ovpnName$FILEEXT 
 echo "" >> $ovpnName$FILEEXT
#Then, append the client Private Key
 echo "" >> $ovpnName$FILEEXT 
 cat $kPath$NAME$KEY >> $ovpnName$FILEEXT 
 echo "" >> $ovpnName$FILEEXT
#Finally, append the TA Private Key
 echo "" >> $ovpnName$FILEEXT 
 cat $kPath$TA >> $ovpnName$FILEEXT  
 echo "" >> $ovpnName$FILEEXT
 echo "Done! $ovpnName$FILEEXT Successfully Created."

poi creare il file nella stessa cartella il file inline_client.conf ricordandosi di non inserire i riferimenti ai certificati e di indicare la direttiva key-direction 1. Avremo qualcosa tipo:

 tls-client
 remote XX.XX.XX.XX
 port 9443
 proto udp
 dev tun
 persist-tun
 resolv-retry infinite
 nobind

 persist-key
 explicit-exit-notify
 
 route-nopull 
 pull route
 route 10.10.0.0 255.255.0.0
 route 10.19.0.0 255.255.0.0
 dhcp-option DNS 10.10.7.100
 dhcp-option DNS 10.10.7.200
 pull ping
 comp-lzo
 key-direction 1

Dove XX.XX.XX.XX sarà l’IP del server VPN.

Bene, a questo punto diamo i privilegi allo script bash indicato all’inizio e poi richiamiamolo. Ci chiederà il nome del certificato ed il nome del file da generare e poi farà tutto in automatico.

Se invece lo volessimo fare manualmente, restano valide le raccomandazioni per il file inline_client.conf a cui dovremo aggiungere alla fine il contenuto dei files dei certificati, all’interno di appositi TAG. Queste le sezioni da creare alla fine del file:

<ca> 
##qui il contenuto del file ca.crt
</ca> 
<cert> 
##qui il contenuto del file di certificato utente.crt
</cert> 
<key>
##qui il contenuto del file di chiave utente.key
</key> 
<tls-auth>
##qui il contenuto del file ta.key
</tls-auth>

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta