Un post tecnico ogni tanto non fà male, quindi ecco un piccolo how-to per creare una VPN con OpenVPN sotto Debian.
Iniziamo con l’installazione di OpenVPN
apt-get update && apt-get install openvpn
Provvediamo poi a far si che il moduli per il device virtuale vengano caricati al boot
modprobe tun
echo "tun" >> /etc/modules
Passiamo dunque alla creazione dei certificati
cd /usr/share/doc/openvpn/examples/easy-rsa/
editiamo il file vars sostituendo i parametri per i certificati
. ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret ta.key
Ora spostiamo i file ca.crt, server.crt, server.key, dh1024.pem, e ta.key nella cartella /etc/openvpn/
Dentro quest’ultima directory andiamo a creare con un editor il file server.conf
dev tap #è l’interfaccia di rete virtuale che verrà utilizzata per la VPN
proto udp #di default OpenVPN utilizza il protocollo UDP
mode server #questa direttiva dice al software di funzionare in modalità server
ca ca.crt #qui di seguito inseriamo i vari certificati
cert server.crt
key server.key
dh dh1024.pem
tls-server
tls-auth ta.key 0<
server-bridge 10.0.0.1 255.255.255.0 10.0.0.2 10.0.0.250 #qui diciamo al server di utilizzare l’indirizzo 10.0.0.1 e di assegnare ai client indirizzi da 10.0.0.2 a 10.0.0.250
client-to-client #con questa direttiva permiettiamo ai client di potersi vedere
comp-lzo #attiva la compressione lzo
keepalive 10 120 #mantiene attiva la connessione
max-clients 50 #numero massimo di client
status openvpn-status.log #crea un semplice log di stato
verb 3 #imposta la verbosità del suddetto log
Ora facciamo partire il servizio e facciamo in modo che parta all’avvio
/etc/init.d/openvpn start
update-rc.d openvpn defaults
Ora passiamo alla configurazione dei client partendo dalla creazione della chiave
cd /usr/share/doc/openvpn/examples/easy-rsa/
./build-key client
Copiate su ogni client i file ca.crt, client.crt, client.key, ta.key e metteteli nella cartella delle configurazioni.
Ora creiamo il file .conf per il client
client #direttiva per il funzionamento in modalità cliet
remote xxx.xxx.xxx.xxx #indirzzo del server
dev tap #device virtuale
nobind
ca ca.crt #certificati
cert tommy.crt
key tommy.key
tls-auth ta.key 1
verb 3 #verbosità del log
proto udp #protocollo
comp-lzo #attiva la compressione
A questo punto la configurazione è terminata e tutto dovrebbe funzionare.