)
septiembre 28, 2022

Convierte un Raspberry Pi en una VPN para acceder a su red desde cualquier lugar

¿Por qué utilizar una VPN para acceder a su casa?

Hay muchos motivos por los que desea acceder a su red doméstica de forma remota y la mejor manera de hacerlo es con un VPN servidor. Algunos routers le permiten configurar un VPN servidor directamente dentro del router, pero en muchos casos, debe configurar usted mismo.

Un Raspberry Pi es una buena manera de conseguirlo. No requieren mucha energía para funcionar y tienen suficiente potencia para funcionar VPN servidor. Puede configurar uno junto al router y, básicamente, olvidaros-en.

Si tiene acceso a su red doméstica de forma remota, podrá acceder a sus archivos desde cualquier lugar. Puede ejecutar los equipos domésticos de forma remota. Incluso puede utilizar la conexión VPN de su casa desde la carretera. Una instalación como ésta permite que el teléfono, la tableta o el ordenador portátil actúen igual que en casa desde cualquier lugar.

Configure Pi

Antes de empezar a configurar la VPN, debe configurar su Raspberry Pi. Lo mejor es configurar Pi con una funda y una tarjeta de memoria de tamaño decente, 16 GB deberían ser más que suficientes. Si es posible, conecte el Pi en su router con un cable Ethernet. Minimizará los retrasos de la red.

Instalación Raspbian

El mejor sistema operativo que puede utilizar en su Pi es Raspbian. Es la opción predeterminada de la fundación Raspberry Pi y se basa en Debian, una de las versiones de Linux más seguras y estables disponibles.

Vaya al Página de descarga de Rasbiany tome la versión más reciente. Puede utilizar la versión «Lite» aquí, porque en realidad no necesita un escritorio gráfico.

Mientras se descarga, obtenga la versión más reciente de grabador para su sistema operativo. Una vez finalizada la descarga, extrae la imagen de Raspbian. A continuación, abra Etch. Seleccione la imagen de Raspbian de donde la has extraída. Seleccione su tarjeta SD (inserte la primera). Finalmente, escriba la imagen en la tarjeta.

Deje la tarjeta SD en el ordenador cuando haya terminado. Abra un gestor de archivos y vaya a la tarjeta. Debería ver un par de particiones diferentes. Busque la partición «arranque». Es lo que contiene un archivo «kernel.img». Cree un archivo de texto vacío en la partición «de arranque» y llámelo «ssh» sin ninguna extensión de archivo.

Finalmente, puede conectar su Pi. Asegúrese de conectarlo por último. No necesita ninguna pantalla, teclado ni ratón. Accederá de forma remota al Raspberry Pi en su red.

Dé unos minutos al Pi para configurarse. A continuación, abra un navegador web y vaya a la pantalla de gestión de su enrutador. Busque el Raspberry Pi y observe su dirección IP.

Tanto si es Windows, Linux o Mac, abra OpenSSH. Conectarse al Raspberry Pi con SSH.

$ ssh [email protected]

Viouslybviament, utilice la dirección IP real del Pi. El nombre de usuario es siempre Pi, Y la contraseña es frambuesas.

Configure OpenVPN

OpenVPN no es exactamente sencillo de configurar como servidor. La buena noticia es que sólo hay que hacerlo una vez. Por lo tanto, antes de explorar, asegúrese de que Raspbian esté completamente actualizado.

$ sudo apt update
$ sudo apt upgrade

Una vez finalizada la actualización puede instalar OpenVPN y la utilidad de certificado que necesite.

$ sudo apt install openvpn easy-rsa

autoridad certificadora

Para autenticar sus dispositivos cuando intentan conectarse al servidor, debe configurar una autoridad de certificación para crear claves de firma. Estas claves asegurarán que sólo sus dispositivos puedan conectarse a su red doméstica.

En primer lugar, cree un directorio para sus certificados. Muévete a ese directorio.

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

Buscar archivos de configuración de OpenSSL. A continuación, haga que el último con openssl.cnf.

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

En esta misma carpeta «ciertos» hay un archivo llamado «varas». Abra este archivo con el editor de texto. Nano es el predeterminado, pero no dude en instalar Vim, si está más a gusto.

Edite el archivo VarsEdite el archivo Vars

encuentra el KEY_SIZE variable primero. Está fijado en 2048 por defecto. Cambie a 4096.

export KEY_SIZE=4096

El bloque principal con el que debe tratar establece información de su autoridad certificadora. Le ayuda si esta información es exacta, pero todo lo que recuerde 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"

Cuando lo tenga todo, guarde y salga.

Este paquete Easy-RSA que ha instalado anteriormente contiene muchos scripts que le ayudan a configurar todo lo que necesita. Sólo es necesario que los ejecute. Comience añadiendo el archivo «varas» como fuente. Esto cargará todas las variables que acaba de definir.

$ sudo source ./vars

A continuación, limpie las claves. No dispone de una, así que no se preocupe porque el mensaje le indique que se suprimirán sus claves.

$ sudo ./clean-install

Crea una autoridad de certificaciónCrea una autoridad de certificación

Finalmente, cree la autoridad de certificación. Ya ha definido los valores predeterminados, por lo que sólo puede aceptar los valores predeterminados que presenta. Recuerde establecer una contraseña segura y responder «sí» a las dos últimas preguntas, siguiendo la contraseña.

$ sudo ./build-ca

Haga algunas claves

Crea la clave del servidorCrea la clave del servidor

Ha pasado todos estos problemas para configurar una autoridad de certificación para poder firmar claves. Ahora, es hora de hacer algunos. Comience creando la clave para su servidor.

$ sudo ./build-key-server server

Construye Diffie-HellmanConstruye Diffie-Hellman

A continuación, cree el PEM de Diffie-Hellman. Es el que utiliza OpenVPN para asegurar las conexiones de su cliente con el servidor.

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

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

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

Configuración del servidor

Tiene las llaves. La siguiente pieza en la configuración de OpenVPN es la configuración del servidor. Afortunadamente, no hay todo lo que hay que hacer aquí. Debian proporciona una configuración base que puede utilizar para empezar. Por lo tanto, 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

Vuelva a utilizar el editor de texto para abriros /etc/openvpn/server.conf. Las primeras cosas que debe encontrar son las ca., cierto, y clave Ficheros. Los debe establecer para que coincidan con las ubicaciones reales de los archivos que ha creado, que se encuentran todos / Etc / openvpn / ciertos / keys.

Claves de configuración del servidor OpenVPNClaves 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

encuentra el dh y cambie para que coincida con el Diffie-Hellman .pem que ha creado.

dh dh4096.pem

Defina también el camino de su clave HMAC.

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

encuentra el cifrar y asegúrese de que coincida con el siguiente ejemplo.

cipher AES-256-CBC

Existe el siguiente par de opciones, pero se comentan con un ;. Retire los puntos y coma delante de cada opción para habilitarlos.

push "redirect-gateway def1 bypass-dhcp"

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

busque el usuario y grupo opciones. Descomente-los y cambie el archivo usuario a «openvpn».

user openvpn
group nogroup

Finalmente, estas dos últimas líneas no se encuentran en la configuración predeterminada. Los deberá añadir al final del archivo.

Autenticación de configuración del servidor OpenVPNAutenticación de configuración del servidor OpenVPN

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

# Authentication Digest
auth SHA512

A continuación, limite las cifras que OpenVPN puede utilizar sólo a las más fuertes. Esto ayuda a limitar posibles ataques a cifrados 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

Esto es todo para la configuración. Guarde el archivo y salga.

Inicie el servidor

Antes de poder iniciar el servidor, debe hacerlo openvpn usuario que ha especificado.

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

Es un usuario especial sólo para ejecutar OpenVPN y no hará nada más.

Ahora, inicie el servidor.

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

Compruebe que ambos funcionen

$ sudo systemctl status openvpn*.service

Si todo parece bueno, actívelas al inicio.

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

Configuración del cliente

El servidor está configurado y en ejecución. A continuación, debe configurar la configuración del cliente. Esta es la configuración que usarás para conectar tus dispositivos al servidor. vuelve al ciertos carpeta y preparaos para crear las claves del cliente. Puede elegir crear claves separadas para cada cliente o una clave para todos los clientes. Para uso doméstico, una llave 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 para los clientes es muy similar a la del servidor. De nuevo, tiene una plantilla prefabricada para basarse en la configuración. Basta que lo modifica para que coincida con el servidor.

cambie a cliente directorio. A continuación, desempaquete 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 el editor de texto. A continuación, selecciona el archivo remoto opción. Suponiendo que todavía no utilice una VPN, busque en Google «¿Cuál es mi IP»? Tome la dirección que muestra y configure el archivo remoto La dirección IP de la misma. Deje el número de puerto.

remote 107.150.28.83 1194 #That IP ironically is a VPN

Claves de configuración del cliente OpenVPNClaves de configuración del cliente OpenVPN

Cambie los certificados para reflejar los que ha creado, tal como hicisteis con el servidor.

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

Busque las opciones del usuario y Descomente foto. Está bien ejecutar los clientes como nadie.

user nobody
group nogroup

Deja el comentario a tls-auth opción para HMAC.

tls-auth ta.key 1

Cifrados de cliente OpenVPNCifras de cliente OpenVPN

A continuación, busque el archivo cifrar y asegúrese de que coincida con el servidor.

cipher AES-256-CBC

A continuación, sólo hay que añadir las restricciones de resumen y cifrado de autenticación 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. uso alquitrán para empaquetar la configuración y los certificados, por lo que los pueda enviar 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 desee. SFTP, FTP y una unidad USB son buenas opciones.

Reenvío de puertos

Reenvío de puertosReenvío de puertos

Porque cualquier cosa funcione, debe configurar el router para reenviar el tráfico VPN entrante al Pi. Si ya utiliza una VPN, debe asegurarse de que no se conecte al mismo puerto. Si lo es, cambie el puerto de la configuración del cliente y del servidor.

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

Todos los routers son diferentes. Sin embargo, todos tienen que tener alguna forma de esta funcionalidad. Busque el archivo en el router.

La configuración es básicamente la misma en todos los routers. Introduzca los puertos inicial y final. Deben ser iguales que los que ha establecido en las configuraciones. A continuación, para la dirección IP, configure-a vuestra IP de Raspberry Pi. Guarde los cambios.

Conéctese con el cliente

Cada cliente es diferente, por lo que no hay una solución universal. Si utiliza Windows, necesitará el archivo Cliente Windows OpenVPN.

En Android, puede abrir su archivo tar y transferir las claves en su teléfono. A continuación, instale la aplicación OpenVPN. Abra la aplicación y conecte la información del archivo de configuración. A continuación, seleccione sus claves.

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

$ sudo apt install openvpn

Después, cambie a / Etc / openvpn, Y descomprima el archivo tar que ha enviado.

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

Cambie el nombre del archivo cliente.

$ sudo mv client.ovpn client.conf

Aún no inicia el cliente. Fracasará. Primero debe habilitar el reenvío de puertos en su router.

pensamientos finales

Ahora debería tener una configuración de trabajo. Su cliente se conectará directamente a través de su router al Pi. 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ímite, por lo que siempre puede conectar todos sus equipos a la VPN Pi.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.