.: HosiriS :.

Informatica e non solo

VPN con molti client

Posted by hosiris su ottobre 15, 2010

Dopo aver creato la mia prima VPN non mi sono accontentato del risultato, d’altronde è il voler superare i propri limiti che ci permette di crescere.
Il mio scopo è di riuscire a far comunicare tutti i miei PC e di migliorare la sicurezza dei protocolli.

Cominciamo il nostro percorso pensando alla sicurezza della connessione: dobbiamo generare certificati e chiavi che ci permettono di riconoscere i PC coinvolti nella comunicazione.
I tool necessari si trovano nella cartella:

/usr/share/doc/openvpn/example/easy-rsa/2.0/

Per evitare che ad ogni aggiornamento le nostra configurazioni vengano perse, copiamo questa cartella su un’altra destinazione:

$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp /usr/share/doc/openvpn/example/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Spostiamoci nella cartella di openvpn e cambiamo utenza:

$ cd /etc/openvpn/easy-rsa
$ sudo su
# vi vars

in questo ultimo file andiamo a modificare la parte finale, inserendo le informazioni corrette.
Salviamo il file ed eseguiamo i seguenti passi:

# . ./vars
# ./clean-all
# ./build-ca

Adesso generiamo le chiavi e i certificati per il server ed i client:

# ./build-key-server server
# ./build-key client1
# ./build-key client2
# ./build-key client3

Infine generiamo i parametri Diffie-Hellman:

# ./build-dh

Al termine di tutto, nella certella di configurazione di openvpn del server saranno presenti i seguenti file:

  • server.key
  • server.crt
  • ca.crt
  • dh1024.pem

mentre sui client:

  • client{n}.key
  • client{n}.crt
  • ca.crt

A questo punto generiamo i file di configurazione sia sul server che sui client.


#Configurazione server (server.conf)
dev tun
port
proto udp
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.1.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
max-clients 10
keepalive 10 120
comp-lzo
persist-key
persist-tun
status status.log
verb 3


#Configurazione client (client.conf)
client
dev tun
ca ca.crt
cert client{n}.crt
key client{n}.key
#indirizzo IP srv
remote
resolv-retry infinite
nobind
persist-key
persist-tun
ping 15
verb 3
comp-lzo
# solo sul client per mappare le reti
route 10.0.0.0 255.255.255.0 10.1.1.1

Riavviate il servizio:

$ sudo /etc/init.d/openvpn restart

Qualora si presentino dei problemi il log si trova in /var/log/daemon.log.

Buon divertimento

Lascia un commento