OpenVpn [archivio]

OpenVPN è una soluzione Open Source che crea tunnel point-to-point TCP over UDP (evitando cosi’ attacchi di tipo spoofing) permettendo la creazione di VPN in userspace e scambio di chiavi e dati crittografati con algoritmo blowfish.

Il mio caso è quello di una vpn tls (con certificati ssl) a stella(connessione da un server centrale verso diversi clients), una vera e propria intranet attraverso una rete pubblica (internet).

Per prima cosa ho creato i certificati con openssl:

openssl genrsa -out ca.key
openssl req -new -key ca.key -out rich.ca
openssl x509 -req -in rich.ca -signkey ca.key -out ca.cert
openssl genrsa -out server.key
openssl req -new -key server.key -out rich.ser
openssl x509 -req -in rich.ser -CA ca.cert -CAkey ca.key -CAcreateserial -out ser.cert
openssl dhparam -out dh.pem 1024

dopo i due file di configurazione per la vpn,

quello del lato server:

dev tap #device utilizzato (da abilitare nel kernel)
proto tcp-server #protocollo di connessione
ifconfig 192.168.0.1 255.255.0.0 # IP del server all interno della vpn
tls-server # Specifica il tipo di server ssl (unico possibile per vpn a stella)

key ca.key
dh dh.pem
ca ca.cert
cert ca.cert
local 10.0.0.149 # IP locale “reale” della macchina che ospita il server vpn

lport 5002 #porta di comunicazione
verb 4 #verbosità dei logs

mode server #modalità vpn
duplicate-cn

;ifconfig-pool 192.168.0.10 192.168.0.50 #possibilità di ip automatico (tipo dhcp) allinterno del range descritto (io avevo necessita di ip statici indi non ho usato questa funzionalità)
mssfix 1450
client-to-client #i clients si vedono tra loro

;push “ping 10”
;push “ping-restart 60”
;ping 10
;ping-restart 120

comp-lzo #compressione dei dati

.. e quello del client:

remote *.*.*:* #ip publico remoto

rport 5002 #porta
proto tcp-client #protocollo

tls-client #modalita del client ssl
dev tap #device usato (anche qui da compilare nel kernel)

ifconfig 192.168.2.9 255.255.0.0 #ip statico per la vpn (nel caso di indirizzamento dinamico dhcp non serve questa linea)

key ca.key
ca ca.cert
cert ca.cert

pull
comp-lzo #compressione dati
verb 4 #verbosità dei logs

fatto questo basterà far partire la vpn dal server e dai rispettivi client

cd /etc/openvpn

#(path dei file di configurazione ma sopratutto delle chiavi e certificati)

openvpn –config filediconfigurazione.ovpn –daemon

questa vpn è stata provata con client su diverse piattaforme (anche windows)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.