Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Instalar y Configurar un Servidor VPN en Debian

15 junio, 2014

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.

Así mismo nos puede interesar encriptar nuestra conexión por medio de un VPN o por ejemplo leer una breve comparación entre diferentes protocolos que pueden ser OpenVPN vs IKEv2 vs PPTP vs L2TP/IPSec vs SSTP que nos pueden interesar para profundizar en el tema de la seguridad informática que nos llega de mano de un blog amigo llamado pcahora.

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.

Escrito por drymer

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

Suscribirse
Notificarme las
guest
11 Comentarios
Los más recientes
Los más antiguos Más votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram