Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 1 del 22/07/2024 14.50.42

Nascondi questo messaggio


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Introduzione

Inserire una descrizione per questa nuova pagina leonardochiodi/TunnelIPsec_ikev2.

Lo scopo di questa pagina, è quello di creare un tunnel per la comunicazione site-to-site tra due hosts, basato sul nuovo standard di sicurezza ipsec/ikev2. "Internet key exchange version2 - IP security".

Uno degli scopi è di usare, quanto piu possibile strumento open source, senza fare uso di client di terze parti, o di strumenti proprietari. Useremo, in particolare, openSSL, ed il suo strumento "pki". Sceglierò di autenticare i due hosts che sono entrambi connessi ad internet, ma appartenenti a domini di rete distinti, attraverso l'uso di certificati SSL, e non della classica combinazione username/password. L'ente che fornirà la "garanzia" di autenticità di entrambi gli host, sarà quella che viene chiamata una "Certification Authority£. Questa certification authority verrà creata localmente, e sarà poi configurata su entrambi gli hosts. Logicamente, la prova che faremo sarà locale, ma esistono reali certification authority riconosciute con vari gradi di autorevolezza sui diversi domini di rete, e nessuno vieta all'utente di acquistare un vero certificato SSL per la connessione ma, per il momento quest'ultima ipotesi sarà marginale, in quanto vogliamo creare localmente anche la certification Authority (CA).

Una particolarità di questa procedura, è che creeremo i certificati del client anche in formato PKCS12, ovvero in un formato che sia idoneo allo smartphone.

Questo significa che anche uno smartphone sarà in grado di connettersi con connessione VPN protetta al server, usando il certificato.

La configurazione dunque è questa: ci sarà un server ed un client che stabiliranno tra di loro il tunnel ipsec/ikev2. In realtà la definizione di server/client è, in questo caso, impropria in quanto entrambi gli host potranno liberamente cominciare una comunicazione in qualunque momento, però per configurare la connessione è utile questa iniziale distinzione.

Dunque il client sarà di questo tipo:

CLIENT: Un host con installato il pacchetto openssl, e strongswan. Al momento il mio pacchetto è questo:

[code] ||/ Name Version Architecture Description +++-==============-================-============-================================= ii strongswan 5.9.5-2ubuntu2.3 all IPsec VPN solution metapackage ii openssl 3.0.2-0ubuntu1.16 amd64 Secure Sockets Layer toolkit - cryptographic utility [/quote]

Questo client è nattato. In particolare il nat è questo: Indirizzo IP locale: 192.168.31.11 Indirizzo IP interfaccia WAN del router: 5.94.x.x

Logicamente, devo censurare l'indirizzo IPv4 dell'interfaccia WAN, perchè è quella reale, e quindi sarei realmente raggiungibile. In ogni caso, questo indirizzo si può facilmente trovare ad esempio aprendo la pagina del browser su un sito come. https://www.mio-ip.it/

SERVER: Questo deve avere installati i medesimi pacchetti del client, ma NON è nattato. In particolare è raggiungibile attraverso un comune indirizzo IPV4 pubblico: 54.3.x.x Anche qui, ho dovuto, in parte censurare l'IP, perche l'interfaccia è raggiungibile. Nel mio caso, faccio esperimenti con un server OVH.

A questo punto generiamo la Certification Authority ed i certificati del server. In particolare la CA sarà identificata dal certificato della CA in formato X509 e dalla chiave della CA. Importante che questi due files non vadano smarriti, in caso contrario, chiunque ne venga in possesso, potrà generare certificati di accesso validi.

Genereremo poi il certificato e la chiave SSL del server.

[code] #!/bin/bash

openssl genrsa -out chiavePrivataCA.pem 2048

openssl rsa -passin pass:"" -in chiavePrivataCA.pem -out chiaveCA.pem

rm chiavePrivataCA.pem

sudo chmod 0600 chiaveCA.pem

ipsec pki --self \

  • --ca \ --lifetime 3650 \ --dn "C=IT, O=certificatoCA_desktop, CN=CA-desktop" \ --in chiaveCA.pem \ --type rsa \

    --outform der > certificatoCAX509.der

#Genero ora la chiave privata del server. #Questa, è quella che andrà aggiunta sia #si /etc/ipsec.d/private, che su ipsec.secrets ipsec pki --gen \

  • --type rsa \ --size 4096 \

    --outform der > chiavePrivata_OVH-server.der

chmod 600 chiavePrivata_OVH-server.der

ipsec pki --pub \

  • --in chiavePrivata_OVH-server.der \ --type rsa | \

ipsec pki --issue \

  • --lifetime 730 \ --cacert certificatoCAX509.der \ --cakey chiaveCA.pem \ --dn "C=IT, O=certificato_OVH_server, CN=OVH-server" \ --san "192.168.1.11" \ --san "5.94.x.x" \ --san "54.3.x.x" \ --flag serverAuth \ --flag ikeIntermediate \

    --outform der > certificato_OVH-server.der

[/code]

Questa la lista dei files generati:

certificatoCAX509.der chiaveCA.pem

Esplicativi ! identificano la CA.

Avremo poi:

certificato_OVH-server.der chiavePrivata_OVH-server.der

Questi ultimi due, identificheranno il server. Da notare una cosa importante nello script di generazione dei certificati del server.


CategoryHomepage CategoryNuoviDocumenti