martes, 11 de mayo de 2010

openvpn

Instalación:

Bueno la instalación es bastante simple:

apt-get install openvpn openssl

Una vez instalado se deben generar las claves de servidor y de los clientes, pero antes se deben organiza los scripts de generación de estas llaves lo cuales en Debian se encuentran en:

/usr/share/doc/openvpn/examples/easy-rsa

En lo personal recomiendo copiar estas llaves a una hubicación de mas fácil acceso:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/

Luego:

cd /etc/openvpn/easy-rsa/

Vamos a editar el archivo var, esto para personalizar la futura generación de certificados y de identificar nuestra VPN. En si lo que vamos a editar son los últimos cinco datos:

export KEY_COUNTRY=nuestro_pais
export KEY_PROVINCE=nuestra_provincia
export KEY_CITY=nuestra_ciudad
export KEY_ORG="Nuestr_Organización"
export KEY_EMAIL="email_de_contacto

Luego de esto vamos a generar las claves del servidor:

. ./vars
./clean-all
./build_ca

Se nos haran varias preguntas, en al que hay que manternet la misma respuesta es en:

Common Name (eg, your name or your server's hostname)


Ahora vamos a crear un certificado de servidor firmado con la CA recien creada:

./build-key-server server

Se nos haran unas preguntas, recordando mantener Common Name como lo hemos hecho desde el principio y a las demas preguntas deberemos responder "y"

Ahora generaremos los parámetros Deffie Hellman, utilizados en el tunel SSL y únicos para nuestro servidor:

./build-dh

Una vez terminado este proceso los archivos generados estaran en:

/etc/openvpn/easy-rsa/keys

Ahora lo que sigue es configurar el tunel en si, esto se hace editando el archivo server.conf que en debian en un principio esta hubicado en:

cd /usr/share/doc/openvpn/examples/sample-config-files

Se encuentra comprimido asi que :

gunzip server.conf.gz

Lo ponemos en su debida hubicación y nos preparamos a editarlo:

cp server.conf /etc/openvpn/

luego

cd /etc/openvpn/

luego

vim server.conf

Los valores signifcativos son, la mayoria ya estan como los necesitamos, pero si debemos especificar la hubicación de los certificados, en este caso seria:

/etc/openvpn/easy-rsa/keys

La sentencia push según este link dice:

Provocará que el cliente cuando se conecte agregue una ruta adecuada para alcanzar la red de la oficina



Y la sentencia route:

Agregará una ruta del lado del servidor para alcanzar la red de la casa



En nuestro caso lo dejemos comentado.

Para habilitar que cliente de ambas redes se "vean" entre si, y no solamente al servidor, debemos descomentar la siguiente sentencia:

client-to-client

A las demas sentencias no hay necesidad de hacerles cambios.

Ahora lo que resta es crear los usuarios que se van a conectar a nuestro servidor:

cd /etc/openvpn/easy-rsa/

. ./vars

./build-key-pass usuario1

Igual que antes, se nos haran varias preguntas de las cuales recomiendo mantener Common Name, como se ha hecho desde el pricipio.

Luego en cada uno de nuestros clientes, en caso de ser Windows, desda aca podemos bajar el cliente VPN.

Una vez instalado este software en un cliente windows deberemos copiar en ej: c:/Archivos de Programa/OpenVpn/config los siguientes archivos

ca.crt
usuario1.crt
usuario1.key

Además de estos archivos el GUI trae unos archivos de ejemplo de los cuales debemos extrar el de cliente y editarlo de manera que apunte a la dirección IP de nuestro server, ademas de que apunte al nombre y hubicación correctos de los archivos ca,usuario1.crt y usuario1.key.


Luengo abajo al lado dercho del escritorio de Windows se nos creará un icono de OpenVPN, le damos "conectar" y todo debiria andar bien.
Haciendo ping hacia 10.8.0.1 podemod probar la conectividad con el servidor.

No hay comentarios: