Instalar y Configurar un Servidor VPN en Debian

OpenVPNPrimero de todo, cómo siempre, empezaremos por el principio. Qué es una VPN? Estas son las siglas que significan Red Virtual Privada (Virtual Private Network en inglés).

Lo que hace esta tecnología, básicamente, es conectar un ordenador (cliente) con una red (la del servidor). Esto tiene diferentes utilidades, en las empresas lo usan mucho para extender las redes privadas de sus diferentes sedes y conectarlas de manera segura. Pero lo que más nos interesa a nosotros, es que puede proporcionarnos cierta privacidad y seguridad. Aún así, montar un servidor VPN no sirve para tener más seguridad en la red en la que se instala. Está pensado para proporcionarla cuando estamos fuera de esta, con un portátil o el móvil, por ejemplo.

Para instalar este servidor, usaremos el paquete para Debian openVPN. A continuación explicaré algunas de las características que proporciona este servidor VPN.

OpenVPN está basado en SSL/TLS. Lo primero que haremos será crear un certificado CA (Cerificate Authority), que permitirá para que sólo se conecten clientes, a nuestro servidor VPN, que tengan certificados firmados por este CA. Después, crearemos el certificado del servidor y su llave, y por último el certificado y llave del cliente.

Pongámonos manos a la obra.

Instalación y Configuración

Tenemos que introducir estos comandos en la terminal.

  • su
  • aptitude install openvpn openssl
  • mkdir /etc/openvpn
  • cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/
  • cd /etc/openvpn

Explicación:

  • su: Sirve para usar el sistema cómo usuario root.
  • aptitude install openvpn: Sirve para instalar el programa que queremos, el servidor openvpn junto con openssl para crear certificados.
  • mkdir /etc/openvpn: Sirve para crear un directorio en /etc, que usaremos para guardar las configuraciones del servidor.
  • cp -r …: Sirve para copiar la configuración de ejemplo en el directorio que creamos antes. Así sólo tenemos que modificar algunos parámetros en vez de tener que crear toda la configuración desde cero.
  • cd /etc/openvpn: Sirve para cambiar de directorio.

Si ejecutamos los codigos en el directorio /etc/openvpn veremos algo parecido a esto:

lsA continuación editaremos el fichero vars, que es el que proporciona las diferentes variables para la creación de las llaves. Para editarlo, usaremos: nano vars. El valore que más nos interesa es el siguiente: export KEY_SIZE=1024. Por defecto no está mal, pero podemos cambiarlo a 2048 para que el cifrado sea más seguro. A cambio, la negociación TLS tardará un poco más, igual que el intercambio de llaves Diffie-Hellman.

Una vez hecho esto, ejecutamos los siguientes comandos:

  • . ./vars
  • ./clean-all
  •  ./build-ca

El primero ejecutará las variables, el segundo limpiará cualquier llave que tuviésemos hecha de antes y el tercero empezará a crear el CA. Cuando ejecutamos el último, nos saldrá algo parecido a esto:

Generating a 1024 bit RSA private key
…………++++++
………..++++++
writing new private key to ‘ca.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.

—–
Country Name (2 letter code) [KG]:
State or Province Name (full name) [NA]:
Locality Name (eg, city) [BISHKEK]:
Organization Name (eg, company) [OpenVPN-TEST]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:OpenVPN-CA
Email Address [me@myhost.mydomain]:

La parte más importante es la penúltima línea, el Common Name. Recomiendo ponerle un nombre lógico, cómo el nombre del servidor.
Hecho esto, ya habremos creado nuestro CA. Pasemos a la creación del certificado y la llave del servidor.

Crear certificado y llave del Servidor

Para hacerlo, en el mismo directorio (/etc/openvpn) ejecutaremos ./build-key-server server, donde el segundo server es el nombre que se le asignará. Cuando ejecutemos este comando, aparecerá un prompt muy parecido al anterior pero además nos preguntará si queremos firmar el certificado y si estamos seguros. A ambas preguntas responderemos que sí. Y ya tendremos el certificado y la llave.

Crear certificado y llave del Cliente

Sólo tendremos que ejecutar ./build-key cliente, donde cliente es el nombre lógico que le pondremos. Otra vez, nos volverá a salir un prompt parecido al anterior. Podemos ejecutar éste comando tantas veces cómo clientes queramos.

Crear parámetros Diffie-Hellman

Ahora sólo nos quedará crear los parámetros Diffie-Hellman. Esto lo haremos mediante el comando ./build-dh, y sólo deberemos ejecutarlo una vez.

Y así, ya hemos instalado y configurado un servidor con OpenVPN. Felicidades! Ahora sólo queda usar un cliente para conectarnos. Veremos cómo hacerlo desde el móvil y desde un ordenador con Debian.

 

Hecho esto, ya tendremos el servidor VPN instalado y configurado. Ahora vamos a configurar los clientes.

 Configuración del cliente

Esto varia según la distribución de Gnu Linux que utilices, pero los pasos son los mismos aunque la estética cambie.

En este caso hablare de Ubuntu, que trae de estándar el programa Network Manager (una aplicación que gestiona las conexiones de red). Network Manager puede manejar un VPN utilizando OpenVPN, pero para hacerlo de una manera más correcta y segura instalaremos un plugin que no se distribuye por defecto con Ubuntu con el siguiente comando:

$ sudo apt-get install network-manager-openvpn-gnome

howto-ubuntu.addA continuación, puede configurar un nuevo icono de VPN red de conexión, “Conexiones VPN” -> “Configuración VPN”. En la ventana que aparece, seleccione “Agregar”.

El VPN debe ser de tipo “OpenVPN”:howto-ubuntu.add-dialog-openvpn

howto-ubuntu.add-vpn-1
En el panel de configuración, debe configurar el servidor para conectarse y entregar los certificados obtenidos en el archivo ZIP que ha descargado (la clave privada es el archivo con un nombre y una extensión extraña. “Clave”, la clave pública es la que tiene la extensión “. crt”, el certificado CA es en cambio “ca.crt”).

howto-ubuntu.add-vpn-2

Por último, haga clic en “Opciones avanzadas” y seleccione la pestaña “Autenticación TLS”. Dentro de esta pestaña, active “Usar autenticación TLS adicional”. Como un archivo de clave usar el archivo “tlsauth.key” que recibió en el archivo ZIP, y elegir la opción “1” como valor llave de dirección.

Después de que hayas hecho esto, guarda y ya tendrás el VPN listo para usar.

Acerca de drymer

drymer
Futuro ingeniero, debianita y curioso. Promuevo la privacidad allí donde voy. Me gusta aprender y compartir, aunque no sepa mucho.

Visita también

Convertir un vídeo a divx compatible

Hola a todos, esta es mi primera contribución a este sitio y para empezar vamos …

Deja una respuesta

11 Comentarios En "Instalar y Configurar un Servidor VPN en Debian"

Notificarme las
avatar
JJ
Invitado

Este tutorial no es muy preciso, hay que instalar easy-rsa, wl contenido de la carpeta de hay que copiar no existe y habla de un .zip que en ningún momento se mencionó antes. Con ciertos conocimientos puedes más o menos guiarte durante la creación de la VPN, pero al final tengo un galimatías de claves y no sé cuál es cuál. ¿No revisáis lo que escribís?

Pepe P. Rodemasiado
Invitado

Estoy de acuerdo con JJ. En este momento intenté seguir los pasos y no veo que se logre el copiado de archivos de esa carpeta que ignoro de dónde los sacó.
Creo que es incompleto. Pero dado que no sé qué está fallando no puedo corregirlo yo. Creo que los Tutoriales son buenos en general si resultan realmente útiles. Y si dan por sentado que uno tiene archivos que figuran en otro post, lo mínimo sería incluir un link para que podamos seguirlo con cierta coherencia. Lo siento, me interesaba mucho este tutorial pero no me ha sido de utilidad por no estar redactado con certeza de que resulte.
Consejo, incluir a qué versión de Debian se refiere sería un plus.

Noel
Admin

Algunos de estos artículos están realizados por la comunidad, por ello puedes mejorarlo con un comentario o completarlo creando otro tutorial que explique todo. Por el momento esta es la mejor opción de la que disponemos, si te animas a mejorarlo ya sabes 😉

4v0ch
Invitado

Que buen tutorial te has tirado amigo!

trackback

Información Bitacoras.com

Valora en Bitacoras.com: Primero de todo, cómo siempre, empezaremos por el principio. Qué es una VPN? Estas son las siglas que significan Red Virtual Privada (Virtual Private Network en inglés). Lo que hace esta tecnología, básicamente, es conec…

wpDiscuz