3 155
contributi
Wtf (discussione | contributi) |
Wtf (discussione | contributi) Nessun oggetto della modifica |
||
Riga 27: | Riga 27: | ||
Affidarsi a aziende poco serie, o peggio truffatori, in questo caso potrebbe infatti risultare peggio che non usare proprio alcuna VPN. | Affidarsi a aziende poco serie, o peggio truffatori, in questo caso potrebbe infatti risultare peggio che non usare proprio alcuna VPN. | ||
== Prima di cominciare == | == Creare una propria VPN == | ||
=== Prima di cominciare === | |||
La prima cosa da fare è verificare in <code>/dev</code> la presenza della directory <code>'''net'''</code> contenente il device virtuale <code>'''tun'''</code>. Se tutto ciò non ci fosse, crearlo con: | La prima cosa da fare è verificare in <code>/dev</code> la presenza della directory <code>'''net'''</code> contenente il device virtuale <code>'''tun'''</code>. Se tutto ciò non ci fosse, crearlo con: | ||
<pre> | <pre> | ||
Riga 45: | Riga 47: | ||
</pre> | </pre> | ||
===Openvpn | === Openvpn e Iptables === | ||
Diamo le opportune regole al firewall: | Diamo le opportune regole al firewall: | ||
<pre> | <pre> | ||
Riga 53: | Riga 55: | ||
</pre> | </pre> | ||
== Generazione delle chiavi == | === Generazione delle chiavi === | ||
Se non l'abbiamo già fatto: | Se non l'abbiamo già fatto: | ||
<pre> | <pre> | ||
Riga 68: | Riga 70: | ||
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. | ||
== | ==== Configurazione chiavi condivise ==== | ||
=== | |||
Spostiamoci sul server e creiamo in <code>/etc/openvpn</code> il file <code>server.conf</code> editandolo così: | Spostiamoci sul server e creiamo in <code>/etc/openvpn</code> il file <code>server.conf</code> editandolo così: | ||
<pre> | <pre> | ||
Riga 89: | Riga 90: | ||
remote www.hostremoto.net (che ovviamente corrisponderà al server) | remote www.hostremoto.net (che ovviamente corrisponderà al server) | ||
dev tap | dev tap | ||
rport | rport 5000shared-keys | ||
ifconfig 10.0.0.2 255.255.255.0 | ifconfig 10.0.0.2 255.255.255.0 | ||
secret /etc/openvpn/zmo.key | secret /etc/openvpn/zmo.key | ||
Riga 129: | Riga 130: | ||
=== Configurazione SSL/TLS === | === Configurazione SSL/TLS === | ||
==== Openvpn | ==== Openvpn e Openssl ==== | ||
Adesso, avvalendoci di SSL/TLS, configureremo un CA (''Certificate Authority'') che servirà 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. | Adesso, avvalendoci di SSL/TLS, configureremo un CA (''Certificate Authority'') che servirà 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> | <pre> | ||
Riga 225: | Riga 226: | ||
</pre> | </pre> | ||
== | === Avviare Openvpn come servizio === | ||
=== Lo script <code>/etc/init.d/openvpn</code> === | ==== Lo script <code>/etc/init.d/openvpn</code> ==== | ||
Questo script, che demonizza <code>openvpn</code>, una volta lanciato va a cercare nella dir <code>/etc/openvpn</code> il file con estensione <code>'''.conf'''</code> che dovrà corrispondere al file di configurazione. Dico questo poiché in varie documentazioni lo troverete con estensioni diverse (''es: .ovpn etc..'') che lo script non riconoscerebbe come valido. | Questo script, che demonizza <code>openvpn</code>, una volta lanciato va a cercare nella dir <code>/etc/openvpn</code> il file con estensione <code>'''.conf'''</code> che dovrà corrispondere al file di configurazione. Dico questo poiché in varie documentazioni lo troverete con estensioni diverse (''es: .ovpn etc..'') che lo script non riconoscerebbe come valido. | ||
<pre> | <pre> | ||
Riga 240: | Riga 241: | ||
</pre> | </pre> | ||
=== Openvpn & log === | ==== Openvpn & log ==== | ||
Per loggare l'output in un file qualunque (''anche se non esiste verrà creato'') aggiungere la riga al file <code>.conf</code>: | Per loggare l'output in un file qualunque (''anche se non esiste verrà creato'') aggiungere la riga al file <code>.conf</code>: | ||
<pre> | <pre> | ||
Riga 247: | Riga 248: | ||
Il file di log sarà più o meno forbito in base al valore che avremo dato al parametro <code>'''verb'''</code>. | Il file di log sarà più o meno forbito in base al valore che avremo dato al parametro <code>'''verb'''</code>. | ||
== Conclusioni == | === Conclusioni === | ||
Openvpn<sup>[[#Riferimenti|[2]]]</sup> permette la creazione di VPN da applicativo ad applicativo, non necessitando quindi di modifiche nel [[kernel]] come nel caso di VPN che implementino IPSEC. Gira sulle principali piattaforme allacciando quindi OS diversi. Anche se lo standard IPSEC è una realtà nei dispositivi di rete hardware, il livello di sicurezza che <code>openvpn</code> può raggiungere è indiscutibile. | Openvpn<sup>[[#Riferimenti|[2]]]</sup> permette la creazione di VPN da applicativo ad applicativo, non necessitando quindi di modifiche nel [[kernel]] come nel caso di VPN che implementino IPSEC. Gira sulle principali piattaforme allacciando quindi OS diversi. Anche se lo standard IPSEC è una realtà nei dispositivi di rete hardware, il livello di sicurezza che <code>openvpn</code> può raggiungere è indiscutibile. | ||
contributi