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 a \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.