128
contributi
mNessun oggetto della modifica |
|||
Riga 60: | Riga 60: | ||
Utilizzando queste chiavi su tutti gli host (''crittografia simmetrica'') otteniamo una notevole cifratura del nostro canale in maniera davvero rapida. | Utilizzando queste chiavi su tutti gli host (''crittografia simmetrica'') otteniamo una notevole cifratura del nostro canale in maniera davvero rapida. | ||
=Collegamento= | =Collegamento= | ||
==Configurazione shared-keys== | ==Configurazione shared-keys== | ||
Riga 120: | Riga 119: | ||
</pre> | </pre> | ||
In questo modo disporremo rapidamente di un canale cifrato relativamente sicuro, per lo scambio di dati privati. | In questo modo disporremo rapidamente di un canale cifrato relativamente sicuro, per lo scambio di dati privati. | ||
==Configurazione SSL/TLS== | |||
===Openvpn & Openssl=== | |||
Adesso, avvalendoci di SSL/TLS, configureremo un CA (''Certificate Authority'') che servira' a firmare i certificati degli host e a rendere disponibile il proprio; creeremo le rispettive chiavi (''una anche per il CA stesso'') facendo in modo che ognuno detenga una chiave e un certificato firmato. Infine, per lo scambio sicuro di tali dati, creeremo un Diffie-Hellman. | |||
<pre> | |||
apt-get install openssl | |||
</pre> | |||
===Configurazione CA=== | |||
Il CA risiedera' sul server, ma distinguiamo le entita' in questo modo: | |||
CA Server Client0 Client1...<br> | |||
Occupiamoci del CA; facciamogli generare una sua chiave (''.key''), un suo certificato (''.csr'') e facciamogli firmare il suo certificato (''.crt''). Dunque, sempre sul server, torniamo in /etc/openvpn (''la chiave precedentemente usata, zmo.key, non serve piu' ''). | |||
<pre> | |||
# openssl genrsa -out ca.key | |||
Generating RSA private key, 512 bit long modulus | |||
...++++++++++++ | |||
........++++++++++++ | |||
e is 65537 (0x10001) | |||
# openssl req -new -key ca.key -out ca.csr | |||
You are about to be asked to enter information that will be incorporated | |||
into your certificate request. | |||
What you are about to enter is what is called a Distinguished Name or a DN. | |||
There are quite a few fields but you can leave some blank | |||
For some fields there will be a default value, | |||
If you enter '.', the field will be left blank. | |||
----- | |||
Country Name (2 letter code) [AU]: | |||
</pre> | |||
...questa sezione compilatela a discrezione vostra. | |||
<pre> | |||
# openssl x509 -req -in ca.csr -signkey ca.key out ca.crt | |||
Signature ok | |||
subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd | |||
Getting Private key | |||
</pre> | |||
Ricapitolando dovremmo aver creato '''ca.crt ca.csr''' e '''ca.key'''. | |||
Bene, siamo sempre sul server. Per fare ordine, creiamo una dir e riponiamoci i file del CA creati: | |||
<pre> | |||
# mkdir CA && mv ca* CA | |||
</pre> | |||
===TLS-Server & TLS-Client=== | |||
Occupiamoci ora di server e client, la loro configurazione e' quasi uguale: | |||
Sul server: | |||
<pre> | |||
# openssl genrsa -out server.key | |||
# openssl req -new -key ca.key -out server.csr | |||
</pre> | |||
Facciamo firmare al CA il certificato del server: | |||
<pre> | |||
# openssl x509 -req -in server.csr -CA CA/ca.crt -CAkey CA/ca.key -CAcreateserial -out server.crt | |||
</pre> | |||
Sul server creiamo anche il Diffie-Hellman: | |||
<pre> | |||
# openssl dhparam -out dh.pem 1024 | |||
</pre> | |||
{{Box|Nota|L'input format di default adottato da dhparam e' PEM. Per usare DER usare il flag inform. Per una ulteriore consultazione del flag dhparam, fare riferimento a questa pagina: [http://www.mkssoftware.com/docs/man1/openssl_dhparam.1.asp openssl dhparam] | |||
}} | |||
Sui client: | |||
<pre> | |||
# openssl genrsa -out client.key | |||
# openssl req -new -key ca.key -out client.csr | |||
</pre> | |||
Spediamo il certificato al CA (''che risiede sul server''), facciamocelo firmare e rispedire in /etc/openvpn (''stessa procedura del server per la firma''). | |||
'''Server.conf''',br> | |||
Compilare cosi' il file per il server: | |||
<pre> | |||
dev tap | |||
ifconfig 10.0.0.1 255.255.255.0 | |||
tls-server | |||
dh dh.pem | |||
ca CA/ca.crt | |||
cert server.crt | |||
key server.key | |||
lport 5000 | |||
verb 4 | |||
</pre> | |||
'''Client.conf'''<br> | |||
Compilare cosi' il file per il client: | |||
<pre> | |||
remote www.hostremoto.net (che ovviamente corrispondera' al server) | |||
dev tap | |||
ifconfig 10.0.0.2 255.255.255.0 | |||
tls-client | |||
ca ca.crt | |||
cert client.crt | |||
key client.key | |||
rport 5000 | |||
verb 4 | |||
</pre> | |||
Una volta compilati i file, lanciamo openvpn su entrambe le macchine come precedentemente: | |||
<pre> | |||
openvpn config xxxx.conf | |||
</pre> | |||
=Demonizzare Openvpn= | =Demonizzare Openvpn= |
contributi