Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

Configurazione OpenVPN su Android 7.0 —

Mi son trovato in questi giorni a dover configurare una OpenVPN su Android, e qui ci va una breve premessa, la necessità e’ uscita perché mi è stato chiesto di poter usare sui devices mobili una app per collegarsi al nuovo gestionale Dynamics NAV di Microsoft.
Parlando coi tecnici dell’azienda che ci sta seguendo in questa pazzesca avventura (cambiare un gestionale fa sembrare “il giorno più lungo” un pic nic di educande) mi ha detto “guarda la roba più facile del mondo, creiamo un altra macchina virtuale con windows 2012 ci mettiamo IIS e la pubblichiamo anche in DMZ” dopo una decina di secondi di assoluto terrore  ho chiesto IIS? non Apache per windows? “no lavora solo su IIS”  ho detto OK si passa da una VPN e ovviamente la configuriamo noi. Il tecnico dall’altra parte ha detto potrebbe funzionare ma dobbiamo provare.

Anche su Android non ho mai messo le mani, ma essendo di derivazione Linux ero fiducioso di farla facile, quindi sono rimasto decisamente stupito quando ho scoperto che Android non supporta TAP e di conseguenza bisogna lavorare in TCP e con TUN, mi sono praticamente trovato nella stessa situazione che ho descritto qui nonostante tre anni abbondanti sian passati.
Anche in questo il primo passo da compiere è quello di andare su play  store e cercare e installare OpenVPN Connect, poi però a differenza di apple non serve importare il ca, e quindi serve soltanto generare i certificati e le chiavi per ogni client col solito
. ./vars e di seguito ./build-key android01-n per ogni client necessario.

Si tratta ora di creare il file .ovpn che contiene come per apple  sia le istruzioni relative alla connessione al server Openvpn che i certificati ca.crt, android01.crt e androi01.key  racchiusi tra tag in questo modo:

client
dev tun
proto tcp
remote 213.213.213.213 775  ### IP e porta  sono ovviamente farlocchi al 100%
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
<ca>
—–BEGIN CERTIFICATE—–
MIIDVTCCAr6gAwIBAgIJAJIIm5Kj+g2yMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNV
BAYTAklUMQswCQYDVQQIEwJNSTEOMAwGA1UEBxMFTWlsYW4xEzARBgNVBAoTClpp
bmNvbWV0YWwxFjAUBgNVBAMTDVppbmNvbWV0YWwgQ0ExIjAgBgkqhkiG9w0BCQEW
E3N1cHBvcnRAZHluYW1pY2EuaXQwHhcNMTAwNDAyMTIxMTM1WhcNMjAwMzMwMTIx
MTM1WjB7MQswCQYDVQQGEwJJVDELMAkGA1UECBMCTUkxDjAMBgNVBAcTBU1pbGFu
MRMwEQYDVQQKEwpaaW5jb21ldGFsMRYwFAYDVQQDEw1aaW5jb21ldGFsIENBMSIw
IAYJKoZIhvcNAQkBFhNzdXBwb3J0QGR5bmFtaWNhLml0MIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQCyVVR5XjbvF9KZpzc4OuqJkiI25+kdf8cgllS1+GHcorhQ
—–END CERTIFICATE—–
</ca>
<cert>
—–BEGIN CERTIFICATE—–
MIIDtTCCAx6gAwIBAgIBFDANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJJVDEL
MAkGA1UECBMCTUkxDjAMBgNVBAcTBU1pbGFuMRMwEQYDVQQKEwpaaW5jb21ldGFs
MRYwFAYDVQQDEw1aaW5jb21ldGFsIENBMSIwIAYJKoZIhvcNAQkBFhNzdXBwb3J0
QGR5bmFtaWNhLml0MB4XDTE1MDkyNDA2NTc0NloXDTI1MDkyMTA2NTc0NlowgZIx
CzAJBgNVBAYTAklUMQswCQYDVQQIEwJNSTEOMAwGA1UEBxMFTWlsYW4xEzARBgNV
BAoTClppbmNvbWV0YWwxHDAaBgNVBAsUE1N5c3RlbSAmIE5ldHdvcmtpbmcxDzAN
BgNVBAMTBmlwYWQwMTEiMCAGCSqGSIb3DQEJARYTc3VwcG9ydEBkeW5hbWljYS5p
cUQRn5xIhO4sraeLfRvUZgBOVkLlZOX3qj7jsx0FhJ/R7LEJw09wJjE=
—–END CERTIFICATE—–
</cert>
<key>
—–BEGIN PRIVATE KEY—–
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANqSCOiPCxxsqS9U
ytCHBuXwtNb34zpyH/biM8zrLZml9jiLmaFiQVN/0H5mcar4X0ii5/gXbU8nLFlv
sjvldBhwz7QlBrQoimg6SOgqWSiq1owMHkXSCqI7ZmtyEXgh7taGbS0SzUyeBOsZ
DhQbOUJCzFbTq/1ywYUHu9fj/8oNAgMBAAECgYEAghxuyynj3l7c8/0Q4sOOmrEI
—–END PRIVATE KEY—–
</key>

e sul server nella directory ccd creo il file android01 che contiene:

ifconfig-push 172.27.1.50 172.27.1.51
push “route 192.168.2.0 255.255.255.0”

Un restart al server OpenVPN per fargli digerire le modifiche e di nuovo spediamo usando la mail spediamo il file android01.ovpn al tablet una volta arrivata la mail si scarica l’allegato si apre  OpenVPN Connect e si sceglie OVPN Profile per importarlo, una volta fatto si fa scorrere il tastino che appare e dopo pochi secondi si e’ bellamente connessi.


Categorised as: Linux | Networking | Work

Comments are disabled on this post


Comments are closed.