Por qué usar una VPN para acceder a su casa
Hay muchas razones por las que querría acceder a su red doméstica de forma remota, y la mejor manera de hacerlo es con un servidor VPN . Algunos enrutadores te permiten configurar un servidor VPN directamente dentro del enrutador, pero en muchos casos, vas a necesitar configurar uno tú mismo.
Un Pi de Frambuesa es una gran manera de lograr esto. No requieren mucha energía para funcionar, y tienen suficiente energía para ejecutar un servidor VPN . Puedes configurar uno al lado de tu router y básicamente olvidarte de él.
Cuando tiene acceso a su red doméstica de forma remota, puede acceder a sus archivos desde cualquier lugar. Puede ejecutar sus ordenadores domésticos de forma remota. Incluso puede utilizar la conexión VPN de su casa desde la carretera. Una configuración como ésta permite que el teléfono, la tableta o el portátil actúen como si estuvieran en casa desde cualquier lugar.
Configurar la Pi
Antes de que pueda empezar a configurar la VPN, va a necesitar configurar su Frambuesa Pi. Es mejor configurar la Pi con un estuche y una tarjeta de memoria de tamaño decente, 16 GB deberían ser más que suficientes. Si es posible, conecte su Pi a su router con un cable Ethernet. Minimizará los retrasos de la red.
Instalar Raspbian
El mejor sistema operativo para usar en tu Pi es Raspbian. Es la opción por defecto de la fundación Raspberry Pi, y está basada en Debian, una de las versiones de Linux más seguras y estables disponibles.
Vaya a la página de descargas de Rasbian , y obtenga la última versión. Aquí puede utilizar la versión «Lite», ya que no necesita un escritorio gráfico.
Mientras está descargando, obtenga la última versión de Etcher para su sistema operativo. Una vez finalizada la descarga, extraiga la imagen Raspbian. Luego, abra Etcher. Seleccione la imagen Raspbian de donde la extrajo. Seleccione su tarjeta SD (Insértela primero). Finalmente, escriba la imagen en la tarjeta.
Deje la tarjeta SD en su ordenador cuando haya terminado. Abra un administrador de archivos y busque la tarjeta. Debería ver un par de particiones diferentes. Busque la partición «boot». Es el que tiene un archivo «kernel.img». Cree un archivo de texto vacío en la partición «boot» y llámelo «ssh» sin extensión de archivo.
Por fin puedes conectar tu Pi. Asegúrate de enchufarlo al final. No va a necesitar una pantalla, teclado o ratón. Vas a acceder de forma remota al Raspberry Pi a través de tu red.
Dale unos minutos al Pi para que se prepare. A continuación, abra un navegador web y vaya a la pantalla de administración de su enrutador. Busca el Pi de Frambuesa y anota su dirección IP.
Tanto si está en Windows, Linux o Mac, abra OpenSSH. Conecta con el frambuesa Pi con SSH.
$ ssh [email protected]
Obviamente, utilice la dirección IP real de la Pi. El nombre de usuario es siempre pi, y la contraseña es frambuesa.
Configurar OpenVPN
OpenVPN no es exactamente fácil de configurar como servidor. La buena noticia es que sólo tienes que hacerlo una vez. Así que, antes de empezar, asegúrate 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 de certificación
Para autenticar sus dispositivos cuando intentan conectarse al servidor, debe configurar una autoridad de certificación para crear claves de firma. Estas claves garantizará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
Busque archivos de configuración de OpenSSL. A continuación, vincule la última con openssl.cnf.
$ ls | grep -i openssl
sudo ln -s openssl-1.0.0.0.cnf openssl.cnf
En esa misma carpeta «certs» hay un archivo llamado «vars». Abra ese archivo con su editor de texto. Nano es el valor por defecto, pero no dude en instalar Vim, si se siente más cómodo con él.
Busque primero la variable KEY_SIZE. Está configurado en 2048 de forma predeterminada. Cámbialo a 4096.
exportar KEY_SIZE=4096
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
El bloque principal con el que debe lidiar establece información sobre su autoridad de certificación. Ayuda si esta información es correcta, pero cualquier cosa que puedas recordar está bien.
exportar KEY_COUNTRY="US" export KEY_PROVINCE="CA" exportar KEY_CITY="SanFrancisco" exportar KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]" export KEY_OU="MyOrganizationalUnit" (MiUnidad Organizacional) export KEY_NAME="HomeVPN"
>
Cuando lo tenga todo, guarde y salga.
Ese paquete Easy-RSA que instaló antes contiene muchos scripts que le ayudan a configurar todo lo que necesita. Sólo tienes que ejecutarlos. Comience añadiendo el archivo «vars» como fuente. Esto cargará todas las variables que acabas de establecer.
$ sudo source ./vars
A continuación, limpie las llaves. No tienes ninguna, así que no te preocupes porque el mensaje te diga que tus claves serán borradas.
$ sudo ./limpiar-instalar>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Por último, cree su autoridad de certificación. Ya ha configurado los valores predeterminados, de modo que puede aceptar los valores predeterminados que presenta. Recuerde establecer una contraseña segura y responda «sí» a las dos últimas preguntas, siguiendo la contraseña.
$ sudo ./build-ca
Hacer algunas llaves
Te tomaste todas esas molestias para establecer una autoridad de certificación para poder firmar las llaves. Ahora, es el momento de hacer algo. Comience por construir la clave para su servidor.
$ sudo ./servidor de llaves construidas >Servidor de llaves.
A continuación, construya el PEM Diffie-Hellman. Es lo que utiliza OpenVPN para asegurar sus conexiones de cliente al servidor.
$ sudo openssl dhparam 4096> /etc/openvpn/dh4096.pem
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
La última clave que necesitará a partir de ahora se llama 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.
Configuración del servidor
Tienes las llaves. La siguiente pieza en la configuración de OpenVPN es la propia configuración del servidor. Afortunadamente, no hay mucho que hacer aquí. Debian proporciona una configuración base que puede usar para empezar. Así que, empieza por conseguir ese 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 de nuevo para abrir /etc/openvpn/server.conf. Lo primero que necesita encontrar son los archivos ca, cert y key. Necesita configurarlos para que coincidan con las ubicaciones reales de los ficheros que ha creado, que están todos en /etc/openvpn/certs/keys.
ca /etc/openvpn/certs/keys/ca.crt
cert /etc/openvpn/certs/keys/server.crt
key /etc/openvpn/certs/keys/server.key # Este archivo debe mantenerse en secreto
Busca la configuración dh y cámbiala para que coincida con el Diffie-Hellman.pem que has creado.
dh dh4096.pem
Configure también la ruta de acceso para su clave HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Encuentre el cifrado y asegúrese de que coincida con el ejemplo de abajo.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
El siguiente par de opciones están ahí, pero están comentadas con una ;. Elimine los puntos y coma delante de cada opción para habilitarlas.
<"redirect-gateway def1 bypass-dhcp" pulse "opción dhcp DNS 208.67.222.222" pulsar "opción dhcp DNS 208.67.220.220"
Busque las opciones de usuario y grupo. Descoméntelos y cambie el usuario a «openvpn».
usuario openvpn
grupo nogroup> grupo
Finalmente, estas dos últimas líneas no están en la configuración por defecto. Tendrá que añadirlos al final del archivo.
Configure el resumen de autenticación para especificar un cifrado más potente para la autenticación de usuario.
# Authentication Digest
auth SHA512>
Luego, limite los cipers que OpenVPN puede usar sólo a los más fuertes. Esto ayuda a limitar los posibles ataques a las cifras débiles.
# Cifrado de límites
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
Iniciar el servidor
Antes de que pueda iniciar el servidor, necesita hacer que el usuario de openvpn que especificó.
$ 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 están ejecutándose
$ sudo systemctl status openvpn*.service
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Si todo se ve bien, habilítelos al inicio.
$ sudo systemctl enable openvpn
sudo systemctl enable [email protected]>
Configuración del cliente
Su servidor ya está configurado y funcionando. A continuación, debe configurar la configuración de su cliente. Esta es la configuración que utilizará para conectar sus dispositivos al servidor. Vuelva a la carpeta certs y prepárese para crear la(s) clave(s) de cliente. Puede elegir entre 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 ./cliente clave construida
El proceso es casi idéntico al del servidor, así que siga el mismo procedimiento.
Configuración del cliente
La configuración para clientes es muy similar a la del servidor. Una vez más, tiene una plantilla prefabricada en la que basar su configuración. Sólo tiene que modificarla para que coincida con el servidor.
Cambiar al directorio de clientes. A continuación, desempaque la configuración de muestra.
$ cd /etc/openvpn/cliente
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client/client.ovpn
Abra el archivo client.ovpn con su editor de texto. Luego, busque la opción remota. Suponiendo que no estés usando una VPN, busca en Google «¿Cuál es mi IP?». Tome la dirección que muestra y configure la dirección IP remota. Deja el número de puerto.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Cambie los certificados para que reflejen los que usted creó, tal como lo hizo con el servidor.
ca ca.crt
cert client.crt
key client.key
Busque las opciones del usuario y descoméntelas. Está bien manejar a los clientes como si no fueran nadie.
usuario nadie grupo nogroup
> grupo
Descomente la opción tls-auth para HMAC.
tls-auth ta.key 1
A continuación, busque la opción de cifrado y asegúrese de que coincide con el servidor.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
A continuación, sólo tiene que añadir el resumen de autenticación y las restricciones de cifrado en la parte inferior del archivo.
# Authentication Digest
auth SHA512
# Restricciones de cifrado
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
.
Transfiera ese paquete al cliente de la forma que usted elija. SFTP, FTP y una unidad USB son buenas opciones.
Reenvío de puertos
Para que todo esto funcione, debe configurar su enrutador para que reenvíe el tráfico VPN entrante a la Pi. Si ya está utilizando una VPN, debe asegurarse de que no se está conectando en el mismo puerto. Si es así, cambie el puerto en las configuraciones de cliente y servidor.
Conéctese a la interfaz web de su router escribiendo su dirección IP en su navegador.
Cada enrutador es diferente. Aún así, todos ellos deberían tener alguna forma de esta funcionalidad. Encuéntralo en tu router.
La configuración es básicamente la misma en todos los routers. Introduzca los puertos de inicio y final. Deben ser los mismos que los demás y el que usted establezca en sus configuraciones. Luego, para la dirección IP, ajústela a la IP de su frambuesa Pi. Grabe las modificaciones.
Conectar con el Cliente
Cada cliente es diferente, por lo que no existe una solución universal. Si está en Windows, necesitará el cliente Windows OpenVPN .
En Android, puedes abrir tu tarball y transferir las llaves a tu teléfono. Luego, instale la aplicación OpenVPN. Abra la aplicación y conecte la información de su archivo de configuración. A continuación, seleccione las teclas.
En Linux, necesita instalar OpenVPN de forma muy parecida a como lo hizo para el servidor.
$ sudo apt install openvpn
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Luego, cambie a /etc/openvpn, y desempaque el tarball que ha enviado.
$ cd /etc/openvpn
sudo tar xJf /path/to/client.tar.xz
Renombrar el archivo de cliente.
$ sudo mv client.ovpn client.conf
No inicie el cliente todavía. Fracasará. Primero debe habilitar el reenvío de puertos en su enrutador.
Pensamientos de cierre
Ahora debería tener una configuración que funcione. Su cliente se conectará directamente a través de su router a la Pi. Desde allí, puede compartir y conectarse a través de su red virtual, siempre y cuando todos los dispositivos estén conectados a la VPN. No hay límite, por lo que siempre podrá conectar todos sus ordenadores a la VPN del Pi.