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:
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
el tutorial esta mas clara que el agua, buen trabajo
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
Esa salida es la correcta para ../vars, cual es la salida de los otros comandos??
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
pues.. prueba con
source vars
Publicar un comentario