OpenVpn (acceda a su red local de forma confiable)

Primero, que es una VPN?, en este articulo-receta no se va a profundizar en lo que es una red privada virtual, mas bien en como montar OpenVpn , pero veamos segun la enciclopedia libre que es una vpn:

La Red Privada Virtual, en inglés Virtual Private Network (VPN), es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como por ejemplo Internet.

Ejemplos comunes son, la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, o que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo ello utilizando la infraestructura de Internet.

1) Instalar OpenVpn

Nos podemos bajar el .rpm o .deb de la pagina oficial o  utilizar nuestro gestor de paquetes de preferencia y que lo baje de los repositorios de nuestra distribucion:

apt-get install openvpn  |  yum install openvpn

2) Configuracion

Necesitamos  crear las llaves y certificados para el  servidor  y  los clientes,  OpenVpn trae algunos scripts que nos permiten realizar esta tarea:

cp -a /usr/share/doc/openvpn-2*/easy-rsa     /etc/openvpn

cd /etc/openvpn/easy-rsa

– Generamos el certificado CA

.   vars = Se inician las variables para trabajar con los scripts
sh clean-all = borramos archivos viejos, es como un make clean, para limpiar el directorio
sh build-ca = este comando nos permite general el certificado, es recomendado llenar todos los campos que nos pide

– Generacion del certificado y de la clave de encriptacion para el servidor

sh build-key-server  servidor

Al ejecutar el script nos pedira tambien algunos datos que no debemos obviar,  el campo Common Name no debe ser igual al que se coloco antes (con build-ca).

En /etc/openvpn/easy-rsa/keys/ se debieron haber creado los archivos  servidor.crt y servidor.key

Listos los archivos del servidor.

– Generacion del certificado y de la clave de encriptacion para el/los clientes

sh build-key cliente1

llenamos los datos que nos pide y nos generara dos archivos cliente1.crt y cliente1.key. El procedimiento es igual para n clientes teniendo en cuenta que el nombre debe ser diferente  (cliente1, cliente2….).

Por ultimo Generamos el parametro de Diffie-Hellman:

sh build-dh

3) Pasando las configuraciones a l servidor:

Al servidor vpn debemos pasar los archivos :

cp /etc/openvpn/easy-rsa/keys/  ca.crt   ca.key  server.key  server.crt   dh1024.dh  /etc/openvpn

Creando el servidor.conf
en
/usr/share/doc/openvpn-2….  podemos encontrar plantillas para  el archivo de configuracion del servidor y del cliente.

el archivo servidor.conf debe ir en /etc/openvpn  y debe verse algo asi:

port 1194
proto udp
dev tun
ca ca.crt
cert servidor.crt
key servidor.key
dh dh1024.pem
#Direcciones que se asignaran a los
#clientes, el server es .1
server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4

ya podemos iniciar el servidor  /etc/init.d/openvpn start

3) Pasando las configuraciones al cliente:

Al cliente vpn debemos pasar los archivos :

ca.crt   cliente1.crt  cliente1.key

el archivo cliente1.conf deberia quedar asi:

client
dev tun
proto udp
remote 201.219.41.38 1194 # ip publica del servidor vpn
resolv-retry infinite
nobind
#Las dos siguientes opciones no van en windows
user nobody
group nobody

persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 4

Si el cliente tiene como sistema operativo Gnu/linux, solo es pasar estos archivos al directorio /etc/openvpn e iniciar el servicio. Si el sistema operativo es Windows se deben pasar despues de haber instalado el cliente vpn \Program Files\OpenVPN\config .

Esta es una solucion  bastante eficiente para ingresar de una manera “segura” a nuestra red local, la he probado en  muchos casos y ha corrido bastante bien.

por ultimo agradecer a  http://www.ecualug.org por dar luz de esta configuracion ,  Estare atento a cualquier duda.

No Comments