PiVPN es la opción más fácil y rápida para configurar un servidor OpenVPN en tu Raspberry Pi

Escrito por Sergio De Luz
Redes

Si en nuestro hogar tenemos un servidor OpenVPN, podremos conectarnos de manera segura para acceder a los recursos compartidos que tengamos e incluso navegar por Internet saliendo por nuestra conexión a Internet. Sin embargo, configurar adecuadamente un servidor OpenVPN puede ser complicado, por este motivo nace el proyecto PiVPN, un software desarrollado para facilitar la instalación y configuración de este software.

¿Qué es PiVPN?

PiVPN es un proyecto que nos permitirá instalar OpenVPN y configurarlo de forma rápida y fácil, sin necesidad de crear certificados digitales manualmente. Este software es compatible con el sistema operativo Raspbian para Raspberry Pi, aunque al ser un script en bash seguramente lo puedas utilizar en otras distribuciones tanto para la Raspberry Pi como para distribuciones Linux de sobremesa como Debian.

Una de las características de PiVPN es que es muy flexible, esto significa que podremos configurar diferentes parámetros a través del propio asistente de instalación, como por ejemplo el puerto de escucha del servidor VPN, los detalles de los certificados digitales y de la Autoridad de Certificación, la fortaleza del cifrado y mucho más.

Este software también nos va a permitir añadir nuevos clientes OpenVPN con sus nuevos certificados, revocarlos, listar todos los que hayamos creado y muchas más opciones. Algo muy interesante es que tienen preconfigurada una seguridad bastante buena, la creación de los certificados se realiza con RSA de 2048 bits, se utiliza el cifrado AES para el canal de datos y SHA256 como algoritmo de firma.

Cómo instalar OpenVPN con PiVPN fácilmente

Para instalar y configurar nuestro servidor OpenVPN con PiVPN, lo único que tenemos que hacer es ejecutar el siguiente comando en el terminal con permisos de root:

curl -L https://install.pivpn.io | bash

Nosotros hemos probado PiVPN en una versión Debian 8, por lo que no estamos utilizando Raspbian. En cuanto ejecutamos el comando anterior, nos saldrá algo como esto:

En cuanto termine de descargar todo el software necesario, nos aparecerá el asistente de configuración a través de la consola de Linux, por lo que podremos ejecutarlo todo vía SSH sin ningún problema:

El propio script va a detectar posteriormente que el sistema operativo que estamos utilizando no es Raspbian, pero nos permitirá continuar sin ningún problema. El primer paso que va a realizar PiVPN es configurar una dirección IP estática en la Raspberry Pi, ya que de lo contrario podría cambiar si lo tenemos por DHCP y no tenemos configurado correctamente el Static DHCP del router. También nos permitirá elegir si queremos utilizar el protocolo UDP o TCP y el puerto de escucha, que por defecto es el 1194.

Este script también nos va a permitir elegir el nivel de seguridad RSA de los certificados digitales y de los parámetros Diffie-Hellmann. Lo máximo que soporta es 4096 bits que es una seguridad muy alta, la idónea en nuestra opinión. El propio asistente nos avisará que crear los parámetros Diffie-Hellmann en una Raspberry Pi puede tardar horas, y que si queremos descargarlo de servidores públicos, por seguridad es mejor que nosotros mismos creemos dichos parámetros.

En cuanto termine de crear dichos parámetros Diffie-Hellmann, terminará el asistente de configuración, tal y como podéis ver aquí:

Ahora podremos ejecutar PiVPN poniendo en consola:

sudo pivpn

Y nos aparecerá el menú, en el cual podremos dar de alta nuevos usuarios o darlos de baja:

Todos los certificados del servidor y cliente se encuentran en la siguiente ruta:

/etc/openvpn/easy-rsa/pki/

Una vez que ya tenemos todo, simplemente deberemos irnos a nuestro home donde aparecerá el fichero de configuración .ovpn que deberemos utilizar para conectarnos con los diferentes clientes.

Tal y como habéis podido ver, gracias al proyecto PiVPN tendremos la posibilidad de configurar un servidor OpenVPN con muy buena seguridad de forma rápida y fácil.

Os recomendamos visitar la página web oficial del proyecto PiVPN donde encontraréis toda la información. También podéis acceder a nuestro completo manual de cómo crear un servidor OpenVPN.


Continúa leyendo
  • John

    Hola, lo primero muchas gracias por el tutorial, me ha gustado estar trasteando y aprendiendo con la raspberry. Sin embargo, me ha surgido un pequeño problema, espero que puedas ayudarme. En principio tengo todo bien configurado, puertos y redirección en el router, no-ip bien asignada, y seguí las indicaciones del manual paso a paso pero no soy capaz de conectarme. Adjunto mensajes de log, he investigado antes de preguntar pero no he dado con la respuesta. Gracias de antemano y disculpa las molestias.
    ==========================LOG===================================
    OpenVPN 2.4.0 i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Jan 31 2017
    Windows version 6.1 (Windows 7) 32bit
    library versions: OpenSSL 1.0.2k 26 Jan 2017, LZO 2.09
    Enter Management Password:
    TCP/UDP: Preserving recently used remote address: [AF_INET] Mi IP PUBLICA:PUERTO
    UDP link local: (not bound)
    UDP link remote: [AF_INET] Mi IP PUBLICA:PUERTO
    TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
    TLS Error: TLS handshake failed
    SIGUSR1[soft,tls-error] received, process restarting

    • Tiene pinta de ser el ta.key que está mal configurado o no es la misma en ambos extremos. Échale un ojo por esa parte, sino, pégame aquí o por email (sección contacto) la config .conf del servidor y cliente, los certificados y todo eso no.

  • adrian ortiz

    Hola, ¿Se podrían montar dos VPNs en la misma raspberry?

    • Sí, pero usando puertos diferentes TCP/UDP, pero tendrás que usar diferente subred virtual 10.9.0.0 por ejemplo…es decir, sí, pero con configuración adhoc para tener 2 vpn.

      • adrian ortiz

        Ok, gracias.

Últimos análisis

Valoración RZ
8
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10
Valoración RZ
9
Valoración RZ
10
Valoración RZ
7
Valoración RZ
9
Valoración RZ
10