Anonim

¿Por qué usar una VPN para acceder a su hogar?

enlaces rápidos

  • ¿Por qué usar una VPN para acceder a su hogar?
  • Configurar el pi
    • Instalar Raspbian
  • Configurar OpenVPN
    • Autoridad certificada
    • Hacer algunas llaves
    • Configuración del servidor
    • Inicie el servidor
  • Configuración del cliente
    • Configuración del cliente
  • Reenvío de puertos
  • Conéctese al cliente
  • Pensamientos finales

Hay muchas razones por las que desea acceder a su red doméstica de forma remota, y la mejor manera de hacerlo es con un servidor VPN. Algunos enrutadores realmente le permiten configurar un servidor VPN directamente dentro del enrutador, pero en muchos casos, tendrá que configurar uno usted mismo.

Una Raspberry Pi es una excelente manera de lograr esto. No requieren mucha energía para funcionar, y tienen suficiente potencia para ejecutar un servidor VPN. Puede configurar uno al lado de su enrutador y, básicamente, olvidarse de él.

Cuando tiene acceso a su red doméstica de forma remota, puede acceder a sus archivos desde cualquier lugar. Puede ejecutar las computadoras de su hogar de forma remota. Incluso puede usar la conexión VPN de su hogar desde la carretera. Una configuración como esta permite que su teléfono, tableta o computadora portátil actúen como si estuvieran en casa desde cualquier lugar.

Configurar el pi

Antes de que pueda comenzar a configurar la VPN, necesitará configurar su Raspberry Pi. Es mejor configurar el 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 enrutador con un cable Ethernet. Minimizará cualquier retraso en la red.

Instalar Raspbian

El mejor sistema operativo para usar en su Pi es Raspbian. Es la opción predeterminada presentada 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. Puede usar la versión "Lite" aquí, porque en realidad no necesita un escritorio gráfico.

Mientras se está descargando, obtenga la última versión de Etcher para su sistema operativo. Una vez completada 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 computadora cuando esté lista. Abra un administrador de archivos y busque la tarjeta. Deberías ver un par de particiones diferentes. Busque la partición de "arranque". 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.

Finalmente puedes conectar tu Pi. Asegúrese de enchufarlo en último lugar. No necesitará una pantalla, teclado o mouse. Vas a acceder de forma remota a Raspberry Pi a través de tu red.

Dale al Pi unos minutos para que se configure. Luego, abra un navegador web y navegue hasta 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, abra OpenSSH. Conéctese a la Raspberry Pi con SSH.

$ ssh

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

Configurar OpenVPN

OpenVPN no es exactamente fácil de configurar como servidor. La buena noticia es que solo debes hacerlo una vez. Entonces, antes de profundizar, asegúrese de que Raspbian esté completamente actualizado.

$ sudo apt update $ sudo apt upgrade

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

$ sudo apt install openvpn easy-rsa

Autoridad certificada

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

Primero, cree un directorio para sus certificados. Mover a ese directorio.

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

Busque los archivos de configuración de OpenSSL. Luego, vincule el último con openssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.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 predeterminado, pero siéntase libre de instalar Vim, si se siente más cómodo con él.

Encuentre la variable KEY_SIZE primero. Está configurado en 2048 por defecto. Cámbialo a 4096.

export 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 precisa, pero todo lo 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 = "" export KEY_OU = "MyOrganizationalUnit" export KEY_NAME = "HomeVPN"

Cuando tenga todo, guarde y salga.

Ese paquete Easy-RSA que instaló antes contiene muchos scripts que ayudan a configurar todo lo que necesita. Solo necesitas ejecutarlos. Comience agregando el archivo "vars" como fuente. Eso cargará todas las variables que acaba de establecer.

$ sudo source ./vars

Luego, limpia las llaves. No tienes ninguno, así que no te preocupes por el mensaje que te dice que se eliminarán tus claves.

$ sudo ./clean-install

Finalmente, construya su autoridad de certificación. Ya configuró los valores predeterminados, por lo que 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

Hacer algunas llaves

Pasaste por todos esos problemas para configurar una autoridad de certificación para que puedas firmar las claves. Ahora es tiempo de hacer algunos. Comience por construir la clave para su servidor.

$ sudo ./build-key-server server

Luego, construye el PEM Diffie-Hellman. Es lo que OpenVPN usa 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 individual de información intercambiada entre el cliente y el servidor. Ayuda a prevenir ciertos tipos de ataques en la conexión.

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

Configuración del servidor

Tienes las llaves La siguiente pieza en la configuración de OpenVPN es la configuración del servidor en sí. Afortunadamente, no hay mucho que necesites hacer aquí. Debian proporciona una configuración básica que puede usar para comenzar. Entonces, comience obteniendo 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 nuevamente para abrir /etc/openvpn/server.conf. Lo primero que necesita encontrar son los archivos ca, cert y key. Debe configurarlos para que coincidan con las ubicaciones reales de los archivos que creó, 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

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

dh dh4096.pem

Establezca la ruta para su clave HMAC también.

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

Encuentre el cifrado y asegúrese de que coincida con el siguiente ejemplo.

cifra AES-256-CBC

Las siguientes dos opciones están ahí, pero están comentadas con un;. Elimine los puntos y comas delante de cada opción para habilitarlos.

push "redirección-puerta de enlace 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. Descomente y cambie el usuario a "openvpn".

usuario openvpn grupo nogroup

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

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

# Authentication Digest auth SHA512

Luego, limite los cipers que OpenVPN puede usar solo a los más fuertes. Esto ayuda a limitar los posibles ataques a cifras 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

Eso es todo por la configuración. Guarda el archivo y cierra.

Inicie el servidor

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

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

Es un usuario especial solo para ejecutar OpenVPN, y no hará nada más.

Ahora, inicie el servidor.

$ sudo systemctl start openvpn $ sudo systemctl start

Comprueba que ambos están corriendo

$ sudo systemctl status openvpn * .service

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

$ sudo systemctl enable openvpn $ sudo systemctl enable

Configuración del cliente

Su servidor ahora está configurado y en ejecución. A continuación, debe configurar su cliente. Esta es la configuración que usará para conectar sus dispositivos a su servidor. Regrese a la carpeta certs y prepárese para construir las claves del cliente. Puede elegir crear claves separadas para cada cliente o una clave para todos los clientes. Para uso doméstico, una clave 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 clientes es muy similar a la del servidor. Nuevamente, tiene una plantilla prefabricada para basar su configuración. Solo necesita modificarlo para que coincida con el servidor.

Cambie al directorio del cliente. Luego, 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 su editor de texto. Luego, encuentre la opción remota. Suponiendo que aún no está utilizando una VPN, Google busca "Cuál es mi IP". Tome la dirección que muestra y configure la dirección IP remota. Deje el número de puerto.

remoto 107.150.28.83 1194 # Que irónicamente IP es una VPN

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

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

Encuentre las opciones de usuario y descomentelas. Está bien ejecutar a los clientes como nadie.

usuario nadie grupo nogrupo

Descomente la opción tls-auth para HMAC.

tls-auth ta.key 1

Luego, busque la opción de cifrado y asegúrese de que coincida con el servidor.

cifra AES-256-CBC

Luego, simplemente agregue 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

Cuando todo se vea bien, guarde el archivo y salga. Use tar para empacar la configuración y los certificados, de modo 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 ese paquete al cliente como usted elija. SFTP, FTP y una unidad USB son excelentes opciones.

Reenvío de puertos

Para que todo esto funcione, debe configurar su enrutador para reenviar el tráfico VPN entrante al Pi. Si ya está utilizando una VPN, debe asegurarse de no conectarse en el 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 su dirección IP en su navegador.

Cada enrutador es diferente. Aún así, todos deben tener alguna forma de esta funcionalidad. Encuéntralo en tu enrutador.

La configuración es básicamente la misma en todos los enrutadores. Ingrese los puertos de inicio y finalización. Deben ser iguales entre sí y los que establezca en sus configuraciones. Luego, para la dirección IP, configúrelo en la IP de su Raspberry Pi. Guarda tus cambios.

Conéctese al 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, puede abrir su tarball y transferir las llaves a su teléfono. Luego, instale la aplicación OpenVPN. Abra la aplicación y conecte la información de su archivo de configuración. Luego selecciona tus llaves.

En Linux, debe instalar OpenVPN de manera muy similar a como lo hizo para el servidor.

$ sudo apt install openvpn

Luego, cambie a / etc / openvpn y desempaquete el tarball que envió.

$ 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.

Pensamientos finales

Ahora debería tener una configuración de trabajo. Su cliente se conectará directamente a través de su enrutador a la 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 todas sus computadoras a la VPN Pi.

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