sábado, 8 de marzo de 2008

Configuración OpenVPN en Debian Etch

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.

7 comentarios:

Anónimo dijo...

Esta muy bueno el how to, sencillo y claro de entender.

Quizas solo corregir un par de varas:

hay un comando que esta mal escrito y es el de la parte en que generamos el certificado "ca" del servidor

"./build_ca" cambiar por "./build_ca"

y luego en la parte del common name recordar que para cada terminal que quiera entrar a la vpn debe tener un "common name" distinto.

por el resto esta excelente! "a camaronear se ha dicho!"

atte: Nethanael

Anónimo dijo...

el tutorial esta mas clara que el agua, buen trabajo

Leonardo dijo...

Hola amigos, pues no me funciona nada de los que dice este tuto, cuando le soy ../vars y los dos comandos siguientes no me funcionan.

Me dice cuando le doy ../vars "NOTE: when you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
"


Talvez me pueden ayudar

Unknown dijo...

Esa salida es la correcta para ../vars, cual es la salida de los otros comandos??

Anónimo dijo...

a mi tambien no me fucionan los comandos
./clean-all
./build-ca
la salida q me dan es
you must define KEY_DIR

y el comando ./vars me da
NOTE: when you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

Rene Vielma dijo...

pues.. prueba con
source vars

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.