Saltar al contenido
Inicio » Seguridad ⛔ » VPN » ¿Cómo convertir Raspberry Pi en una VPN?

¿Cómo convertir Raspberry Pi en una VPN?

Volvemos un día más con nuevos artículos en Bobbli. Vamos a conocer cómo montar una VPN en una Raspberry Pi.

¿Quieres saber cómo convertir Raspberry Pi a VPN? 🤔

Hay muchas razones por las que querría acceder a su red doméstica de forma remota, y la mejor manera de hacerlo es usar un servidor VPN. Algunos enrutadores en realidad le permiten configurar un servidor VPN directamente dentro del enrutador, pero en la mayoría de los casos deberá configurar uno usted mismo.

Como convertir Raspberry Pi en VPN

El Raspberry Pi es una excelente manera de lograr esto. No necesitan mucha energía para funcionar y tienen suficiente potencia para ejecutar un servidor VPN. Puede instalar uno junto a su enrutador y básicamente olvidarse de él.

Cuando tiene acceso remoto a su red doméstica, puede acceder a sus archivos desde cualquier lugar. Puede operar las ordenadores de su hogar de forma remota. Incluso puede usar su conexión VPN doméstica desde la carretera. Una configuración como esta permite que su teléfono, tablet o portátil funcionen desde cualquier lugar como si estuviera en su casa.

¿Cómo convertir Raspberry Pi a VPN?

Configurar Raspberry Pi

Deberá configurar su Raspberry Pi antes de comenzar a configurar la VPN. Lo mejor es armar la Pi con una carcasa y una tarjeta de memoria del tamaño adecuado, 16 GB deberían ser más que suficientes. Si es posible, conecte su Pi a su enrutador con un cable Ethernet. Minimizará cualquier latencia de red.

Instalar Raspbian

El mejor sistema operativo para usar en tu Pi es Raspbian. Es la opción predeterminada establecida por la fundación Raspberry Pi y se basa en Debian, una de las versiones de Linux más seguras y estables disponibles.

Vaya a la página de descarga de Rasbian y obtenga la última versión. Aquí puede usar la versión «Lite» porque en realidad no necesita un escritorio gráfico.

Al descargar, obtenga la última versión de Etcher para su sistema operativo. Una vez completada la descarga, extraiga la imagen de Raspbian. Luego abre Etcher. Seleccione la imagen de Raspbian desde donde la extrajo. Seleccione su tarjeta SD (Insertar primero). Finalmente, escribe la imagen en la tarjeta.

Deje la tarjeta SD en su computadora cuando haya terminado. Abra un administrador de archivos y explore la tarjeta. Deberías ver varias secciones diferentes. Busque la sección «arranque». Este con el archivo «kernel.img» en él. Cree un archivo de texto vacío en la sección de «arranque» y asígnele el nombre «ssh» sin la extensión de archivo.

Finalmente puedes conectar tu Pi. Asegúrate de enchufarlo al final. No necesitarás pantalla, teclado ni ratón. Accederá a la Raspberry Pi de forma remota a través de su red.

Dale al Pi unos minutos para configurarse. A continuación, abra un navegador web y vaya a la pantalla de administración de su enrutador. Encuentra la Raspberry Pi y anota su dirección IP.

Ya sea que esté en Windows, Linux o Mac, active OpenSSH. Conéctese a Raspberry Pi a través de SSH.

$ ssh [email protected]

Obviamente, use la dirección IP real del Pi. nombre de usuario Siempre pi y contraseña frambuesa.

Instalar OpenVPN

Configurar OpenVPN como servidor no es precisamente fácil. La buena noticia es que solo tienes que hacer esto una vez. Entonces, antes de cavar, asegúrese de que Raspbian esté completamente actualizado.

$ sudo apt update
$ sudo apt upgrade

Una vez completada la actualización, puede instalar OpenVPN y la utilidad de certificado que necesita.

$ sudo apt install openvpn easy-rsa

Certificar autoridad

Para autenticar sus dispositivos cuando intentan conectarse al servidor, debe configurar una autoridad de certificación para generar claves de firma. Estos conmutadores garantizarán que solo sus dispositivos puedan conectarse a su red doméstica.

Primero, cree un directorio para sus certificados. Muévelo a ese directorio.

$ sudo make-cadir /etc/openvpn/certs
$ cd /etc/openvpn/certs

Consulte los archivos de configuración de OpenSSL. A continuación, conecte el último con openssl.cnf.

$ ls | grep -i openssl
$ sudo ln -s openssl-1.0.0.cnf openssl.cnf

En la misma carpeta «certs» hay un archivo llamado «vars». Abre este archivo con tu editor de texto. Nano es el predeterminado, pero no dude en instalar Vim si se siente más cómodo con él.

Editar archivo Vars

Primero busque la variable KEY_SIZE. Está configurado en 2048 de forma predeterminada. Cámbielo a 4096.

export KEY_SIZE=4096

El bloque principal con el que tiene que lidiar crea información sobre su autoridad de certificación. Ayuda si esta información es precisa, pero cualquier cosa que pueda recordar está bien.

export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="HomeVPN"

Una vez que tengas todo, guarda y sal.

Este paquete Easy-RSA que instaló anteriormente incluye muchas secuencias de comandos que lo ayudan a configurar todo lo que necesita. Solo necesitas ejecutarlos. Comience agregando el archivo «vars» como fuente. Esto cargará todas las variables que acaba de establecer.

$ sudo source ./vars

A continuación, limpie las llaves. No tiene una clave, así que no se preocupe por el mensaje que dice que se eliminarán sus claves.

$ sudo ./clean-install
Crear autoridad de certificación

Finalmente, cree su autoridad de certificación. Ya ha establecido los valores predeterminados para que pueda aceptar los valores predeterminados que ofrece. Recuerde establecer una contraseña segura y responder «sí» a las dos últimas preguntas después de la contraseña.

$ sudo ./build-ca

Crear claves

Generar clave de servidor

Usted pasó por todos estos problemas para configurar una autoridad de certificación para poder firmar las claves. Ahora, es hora de hacer algunos. Comience por crear la clave para su servidor.

$ sudo ./build-key-server server
Construir Diffie-Hellman

A continuación, cree el PEM Diffie-Hellman. OpenVPN usa esto para asegurar las conexiones de sus clientes al servidor.

$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem

La última clave que necesita a partir de ahora se llama clave HMAC. OpenVPN usa esta clave para firmar cada paquete de información intercambiado entre el cliente y el servidor. Ayuda a prevenir ciertos tipos de ataques contra la conexión.

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

Configuración del servidor

Tienes las llaves. La siguiente pieza de la configuración de OpenVPN es la configuración del servidor en sí. Afortunadamente, no hay mucho más que necesites hacer aquí. Debian proporciona una configuración básica que puede usar para comenzar. Entonces comience por obtener este archivo de configuración.

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

Use su editor de texto nuevamente para abrir el archivo /etc/openvpn/server.conf. Lo primero que debe encontrar son los archivos ca, cert y key. Debe configurarlos para que coincidan con las ubicaciones reales de los archivos que crea, todos ubicados en /etc/openvpn/certs/keys.

Claves de configuración del servidor OpenVPN
ca /etc/openvpn/certs/keys/ca.crt
cert /etc/openvpn/certs/keys/server.crt
key /etc/openvpn/certs/keys/server.key  # This file should be kept secret

Busque la configuración dh y cámbiela para que coincida con el Diffie-Hellman .pem que creó.

dh dh4096.pem

También configure la ruta a su clave HMAC.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Encuentre la contraseña y asegúrese de que coincida con el ejemplo a continuación.

cipher AES-256-CBC

Hay algunas opciones siguientes, pero son un ; interpretado con. Quite los puntos y comas delante de cada opción para habilitarla.

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Busque las opciones de usuario y grupo. Eliminar comentarios y cambiar de usuario a «openvpn».

user openvpn
group nogroup

Finalmente, estas dos últimas líneas no están en la configuración por defecto. Deberá agregarlos al final del archivo.

Autorización de configuración del servidor OpenVPN

Configure el resumen de autenticación para especificar un cifrado más fuerte para la autenticación del usuario.

# Authentication Digest
auth SHA512

Luego, limite los cifrados que OpenVPN puede usar a solo los más fuertes. Esto ayuda a limitar posibles ataques contra contraseñas débiles.

# Limit Ciphers
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA

Todo para la configuración. Guarda el archivo y cierra.

Servidor de inicio

Antes de iniciar el servidor, debe crear el usuario openvpn que especificó.

$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn

Es un usuario privado solo para ejecutar OpenVPN y nada más.

Ahora inicie el servidor.

$ sudo systemctl start openvpn
$ sudo systemctl start [email protected]

Comprueba que ambos funcionan

$ sudo systemctl status openvpn*.service

Si todo se ve bien, habilítelo al inicio.

$ sudo systemctl enable openvpn
$ sudo systemctl enable [email protected]

Instalación del cliente

Su servidor ahora está configurado y funcionando. A continuación, debe establecer la configuración de su cliente. Esta es la configuración que utilizará para conectar sus dispositivos a su servidor. Vuelva a la carpeta Certificados y prepárese para generar las claves de cliente. Puede optar por generar claves individuales para cada cliente o una para todos los clientes. Una llave para uso doméstico debería estar bien.

$ cd /etc/openvpn/certs
$ sudo source ./vars
$ sudo ./build-key client

El proceso es casi idéntico al del servidor, así que siga el mismo procedimiento.

Configuración del cliente

La configuración de los clientes es muy similar a la configuración del servidor. Nuevamente, tiene una plantilla prefabricada para basar su configuración. Solo necesita cambiarlo para que coincida con el servidor.

Cambie al directorio del cliente. A continuación, descomprima la configuración de muestra.

$ cd /etc/openvpn/client
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

Abra el archivo client.ovpn con su editor de texto. A continuación, busque la opción remota. Suponiendo que aún no esté utilizando una VPN, busque en Google «¿Cuál es mi IP?» Haz una llamada. Obtenga la dirección que se muestra y establezca la dirección IP remota en ella. Deje el número de puerto.

remote 107.150.28.83 1194 #That IP ironically is a VPN
Claves de configuración del cliente OpenVPN

Cambie los certificados para reflejar los certificados que creó, como lo hizo en el servidor.

ca ca.crt
cert client.crt
key client.key

Encuentre opciones de usuario y elimine comentarios. Está bien ejecutar clientes como nadie.

user nobody
group nogroup

Descomente la opción tls-auth para HMAC.

tls-auth ta.key 1
Contraseñas de cliente de OpenVPN

A continuación, busque la opción de contraseña y asegúrese de que coincida con el servidor.

cipher AES-256-CBC

Luego simplemente agregue el resumen de autenticación y las restricciones de contraseña en la parte inferior del archivo.

# Authentication Digest
auth SHA512

# Cipher Restrictions
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA

Cuando todo parezca correcto, guarde el archivo y salga. Use tar para empaquetar la configuración y los certificados para que pueda enviarlos al cliente.

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

Transfiera este paquete al cliente como lo desee. SFTP, FTP y una unidad USB son excelentes opciones.

Reenvío de puertos

Reenvío de puertos

Para que cualquiera de estos funcione, debe configurar su enrutador para reenviar el tráfico VPN entrante al Pi. Si ya está utilizando una VPN, debe asegurarse de que no se está conectando al mismo puerto. Si es así, cambie el puerto en las configuraciones de su cliente y servidor.

Conéctese a la interfaz web de su enrutador escribiendo la dirección IP en su navegador.

Cada enrutador es diferente. Aún así, todos necesitan tener alguna forma de esta función. Encuéntrelo en su enrutador.

La configuración es básicamente la misma en todos los enrutadores. Introduzca los puertos de inicio y finalización. Deben coincidir entre sí y con el que estableció en sus configuraciones. Luego, para la dirección IP, configúrela en la IP de su Raspberry Pi. Guarde sus cambios.

Conectar con el cliente

Cada cliente es diferente, por lo que no existe una solución universal. Si está utilizando Windows, necesitará el cliente Windows OpenVPN.

En Android, puede abrir su tarball y transferir las claves a su teléfono. A continuación, instale la aplicación OpenVPN. Abra la aplicación y agregue la información en su archivo de configuración. Luego elige tus llaves.

En Linux, debe instalar mucho OpenVPN, como lo hace para el servidor.

$ sudo apt install openvpn

A continuación, cámbielo a /etc/openvpn y descomprima el tarball que publicó.

$ cd /etc/openvpn
$ sudo tar xJf /path/to/client.tar.xz

Cambie el nombre del archivo del cliente.

$ sudo mv client.ovpn client.conf

No inicie el cliente todavía. Fallará. Primero debe habilitar el reenvío de puertos en su enrutador.

Reflexiones finales sobre la conversión de Raspberry Pi a VPN

Una vez que sepa cómo convertir una Raspberry Pi a VPN, ahora debería tener una configuración que funcione. Su cliente se conectará directamente al Pi a través de su enrutador. Desde allí, puede compartir y conectarse a través de su red virtual siempre que todos los dispositivos estén conectados a la VPN. No hay límites, por lo que siempre puede conectar todas sus ordenadores a Pi VPN.

Espero que este artículo haya servido para aclarar todas tus dudas.

En Bobbli.com publicamos todos los días contenido actualizado, tutoriales y trucos sobre PC, iPhone, Android, Videojuegos, Social Media, Chrome, Amazon…