Tabla de contenido:

Puerta de enlace VPN Raspberry Pi: 6 pasos
Puerta de enlace VPN Raspberry Pi: 6 pasos

Video: Puerta de enlace VPN Raspberry Pi: 6 pasos

Video: Puerta de enlace VPN Raspberry Pi: 6 pasos
Video: Crea una VPN en tu casa con Raspberry Pi 2024, Mes de julio
Anonim
Puerta de enlace VPN Raspberry Pi
Puerta de enlace VPN Raspberry Pi

Actualización 2018-01-07:

  • Se actualizaron las cosas que faltan y los cambios necesarios para la versión actual de Raspian.
  • También creó una guía específica para NordVPN.

Hay algunos usos diferentes para VPN. O desea proteger su privacidad y sus datos privados de miradas indiscretas o necesita obtener información de otro país. El abastecimiento de otro país puede ser muy útil para acceder a servicios que no se brindan en su país. En la actualidad, existen varios servicios de VPN y la mayoría de ellos ofrecen software fácil de usar para su computadora y aplicaciones para su tableta o teléfono. ¿Pero si tiene otros dispositivos que no son compatibles con el software que desea pasar por la VPN? Luego, construya una puerta de enlace que le brinde acceso a Internet a través de la VPN.

Si observa su configuración de red básica, tiene una "puerta de enlace predeterminada" que se utiliza para cualquier dirección IP que no se encuentre en su subred actual (muy simplificado). Entonces, si configura una puerta de enlace que puede enrutar el tráfico de Internet a través de una conexión VPN establecida, cualquier dispositivo habilitado para la red puede aprovechar el túnel VPN.

Mi caso de uso principal en mi apartamento de San Francisco es un túnel VPN a mi Suecia natal para poder transmitir canales de reproducción suecos en mis reproductores multimedia y televisores inteligentes. Este es un caso de uso bastante común para la mayoría de las personas que necesitan un túnel VPN. Dado que mis reproductores multimedia y televisores inteligentes no son compatibles con el software VPN, construí uno a partir de una Raspberry Pi.

Puedes comprar uno por menos de $ 40 en Amazon. Sin embargo, le recomiendo que compre un estuche y un adaptador de corriente decente también. Para este instructable necesitas:

  • Raspberry Pi 2 o 3
  • Un caso de tu agrado
  • Un adaptador de corriente decente
  • Un cable de red

Paso 1: elegir su servicio VPN

Elegir su servicio VPN
Elegir su servicio VPN

Lo importante al seleccionar un servicio VPN es que cumpla con sus requisitos. Para este caso de uso, necesitaba un servicio VPN con un punto de salida sueco, eso es lo más importante ya que necesito que los servicios suecos estén convencidos de que estoy en Suecia. A lo largo de los años, he usado varios proveedores diferentes y a continuación se detallan las cosas que tomo en consideración al seleccionar el proveedor de VPN para el caso de uso específico:

Prueba gratis

Quiero un período de prueba gratuito o una pequeña cantidad de datos de prueba para familiarizarme con el software o la aplicación. También quiero probar el rendimiento y la experiencia general antes de pagar por ello. También es bueno comprobar que mi idea funcionará antes de empezar a pagar.

Intimidad

Si la implementación es por cuestiones de privacidad, entonces es realmente importante lo que dice la política de privacidad. También es importante desde qué país opera la empresa y qué leyes protegen su privacidad. Los usuarios realmente preocupados por la privacidad deberían buscar un servicio que establezca que no se almacenan registros de tráfico y que permita pagos anónimos a través de Bitcoin, por ejemplo.

Tráfico permitido

Puede haber limitaciones sobre el tipo de tráfico que se le permitirá ejecutar. Los proveedores más serios suelen bloquear el tráfico de igual a igual. Esto no es solo para evitar problemas legales, sino para poder mantener el rendimiento para todos los usuarios. Sin embargo, existen muchos buenos proveedores que permiten el servicio de igual a igual y, al mismo tiempo, ofrecen un servicio de alta calidad. Pero si ese no es su principal recurso, le recomiendo seleccionar un servicio que no permita peer-to-peer.

Límite de datos

Nunca use un servicio que mantenga un límite de datos sobre sus usuarios que pagan. ¡Esto simplemente se agotará en el peor momento posible exactamente como los datos en su teléfono justo antes de la parte divertida en un videoclip!

Países de salida

Dependiendo del caso de uso, esto tiene una importancia diferente. Para un caso de uso como el mío, donde necesito terminar en un país específico, por supuesto que debe estar en la lista. También necesito que me permitan seleccionar en qué país salgo. Hay servicios en los que no puede seleccionar el país de salida, manténgase alejado de ellos. Puede terminar en un país con mal desempeño o leyes de privacidad. Incluso si no necesita un país específico, debe seleccionar un servicio con algunos países diferentes para mostrar para poder encontrar uno con buen rendimiento.

Tipo de software y soporte

Esta es una de las principales razones por las que prefiero los servicios con una prueba gratuita. Hay tantos proveedores con software defectuoso que tienen errores, son inseguros o simplemente no funcionan. Para una implementación de Raspberry Pi, necesito un proveedor que admita OpenVPN.

Mi selección

Para esta construcción fui con Tunnel Bear. Se ofrece una prueba gratuita de hasta 500 GB para poder probar que realmente puedo transmitir antes de pagar nada. Tienen su sede en Canadá que, junto a Suecia, tiene algunas de las leyes de privacidad más estrictas del mundo. No hay límite de datos en el servicio pago y también puedo tener varios dispositivos conectados a la vez. Por lo tanto, la protección para mi teléfono, tableta y computadora mientras viajo con wifi no segura también está ordenada. Se admite el nodo de salida en Suecia, en realidad se proporciona a través de Bahnhof, que es conocido por su fuerte privacidad en Suecia. Para los planes pagados, ofrecen soporte OpenVPN. No lo hacen para la prueba gratuita, pero fue suficiente ejecutar eso desde mi computadora portátil para asegurarme de que los servicios de transmisión funcionaran.

Paso 2: instala la Raspberry Pi

Para implementaciones como esta, utilizo el sistema operativo Raspbian Lite. Dado que no necesito la GUI en absoluto. Puede obtener la última versión aquí.

Utilizo Win32DiskImager para cargar el archivo.img en la tarjeta SD de la Raspberry Pi.

Una vez que la Raspberry Pi ha arrancado, busco en la lista DHCP de mis enrutadores para obtener la dirección IP y luego me conecto a través de SSH con Putty. El nombre de usuario y la contraseña estándar son pi / raspberry

Una vez conectado, ejecuto la herramienta raspi-config para cambiar la configuración básica.

sudo raspi-config

Las cosas más importantes a tener en cuenta en esta configuración son:

  • Expandir el sistema de archivos
  • Cambiar la contraseña

También puede cambiar el nombre de host de su Raspberry Pi si lo desea. Mi DHCP tiene contratos de arrendamiento muy largos y también puedo reservar una dirección específica. Si no tiene esa capacidad, debe configurar la Raspberry Pi para usar una dirección IP estática. Dado que otros dispositivos usarán esto como puerta de enlace predeterminada, es importante que siga usando la misma dirección IP. Aquí hay una publicación que escribí sobre cómo configurar una IP estática en Raspbian Jessie.

Entonces necesitamos actualizar todo a la última versión:

sudo apt-get updatesudo apt-get upgrade sudo apt-get dist-upgrade

Paso 3: Instale OpenVPN

Instalar OpenVPN
Instalar OpenVPN

Ahora necesitamos instalar OpenVPN en la Raspberry Pi.

sudo apt-get install openvpn

Luego, debemos asegurarnos de que el servicio se inicie correctamente.

sudo systemctl habilitar openvpn

Cuando finalice la instalación, debemos copiar los archivos de configuración y los certificados de OpenVPN en la caja. Esto se lo proporcionará su proveedor de VPN. En mi caso, al usar TunnelBear, encontré una publicación de blog sobre el soporte de Linux. En esa página hay un enlace al archivo zip que contiene todo lo que necesitamos.

El archivo contiene los archivos de certificado y un archivo de configuración.opvn para cada país al que puede realizar un túnel. Necesita todos los archivos de certificado y el archivo de configuración.opvn para el país de su elección, en mi caso Suecia. Descomprima los archivos necesarios y use winscp para cargar los archivos en su Raspberry Pi. El mismo nombre de usuario / contraseña que se usa para SSH lo llevará a / home / pi, simplemente coloque los archivos allí.

Luego volvemos al terminal SSH y movemos los archivos a la carpeta OpenVPN. El primer comando es solo para asegurarse de que estamos en la carpeta / home / pi.

cd / home / pi

sudo mv * / etc / openvpn /

Ahora necesitamos hacer algunas modificaciones a los archivos. Primero necesitamos cambiar el nombre del archivo de configuración de.ovpn a.conf. Cualquier archivo que termine en.conf en la carpeta / etc / openvpn se iniciará automáticamente cuando se inicie el demonio OpenVPN. Primero tenemos que entrar en ese directorio.

cd / etc / openvpn

Luego cambiamos el nombre del archivo de configuración. Puede nombrarlo como desee siempre que termine en.conf. Prefiero usar nombres de archivo sin espacios en blanco, en este caso voy con swe.conf.

sudo mv *.ovpn swe.conf

Luego, necesitamos un archivo de autenticación que contenga el nombre de usuario y la contraseña utilizados para el túnel VPN. Abra un editor de texto y escriba el nombre de usuario y la contraseña en líneas separadas. A este archivo lo llamaremos auth.txt.

sudo nano auth.txt

El contenido debería ser como este ejemplo:

nombre de usuario

contraseña

Luego use CTRL + O para escribir en el archivo y CTRL + X para salir del editor de texto nano. También necesitamos proteger el archivo auth.txt que contiene nuestras credenciales.

sudo chmod 600 /etc/openvpn/auth.txt

Luego, necesitamos editar el archivo de configuración para asegurarnos de que todas las rutas sean correctas y agregar una referencia al archivo auth.txt recién creado.

sudo nano swe.conf

Las líneas que deben cambiarse son las que se refieren a otros archivos, deben ser rutas absolutas. En este ejemplo esto es lo que estamos buscando:

ca CACertificate.crt

cert UserCertificate.crt clave PrivateKey.key

Los cambiamos a caminos absolutos como este:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt clave /etc/openvpn/PrivateKey.key

Luego, al final del archivo, agregamos una referencia al archivo auth.txt, así:

auth-user-pass /etc/openvpn/auth.txt

Una vez más usamos CTRL + O para guardar el archivo y luego CTRL + X para salir de nano. Ahora podemos reiniciar el demonio OpenVPN y ver que el túnel está funcionando.

reinicio de openvpn del servicio sudo

Si ejecuta el comando ifconfig, debería ver un adaptador tun0 además de sus adaptadores eth0 y lo si el túnel está activo. También puede ejecutar el comando este comando para verificar su IP pública:

wget https://ipinfo.io/ip -qO -

Si tiene problemas para instalar el túnel, primero intente reiniciar su Raspberry Pi y luego verifique la configuración en busca de errores.

Paso 4: Configurar el enrutamiento

Ahora necesitamos habilitar el reenvío de IP. Permite que el tráfico de la red fluya desde una de las interfaces de red y salga por la otra. Básicamente creando un enrutador.

sudo / bin / su -c "echo -e '\ n # Habilitar enrutamiento IP / nnet.ipv4.ip_forward = 1'> /etc/sysctl.conf"

Si ejecuta sudo sysctl -p, debería ver esto impreso en la pantalla:

net.ipv4.ip_forward = 1

Ahora el enrutamiento está habilitado y el tráfico puede pasar por Raspberry Pi, por el túnel y salir por Internet.

Paso 5: configurar firewall y NAT

Dado que tendremos varios clientes en el interior accediendo a Internet a través de una dirección IP pública, necesitamos usar NAT. Significa traducción de direcciones de red y hará un seguimiento de qué cliente solicitó qué tráfico cuando la información regrese por el túnel. También necesitamos configurar algo de seguridad alrededor de la Raspberry Pi y el túnel.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Habilitando NAT.

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACEPTAR

Permitir que cualquier tráfico de eth0 (interno) pase por tun0 (túnel).

sudo iptables -A FORWARD -i tun0 -o eth0 -m estado --state RELACIONADO, ESTABLECIDO -j ACEPTAR

Permitir que el tráfico de tun0 (túnel) vuelva sobre eth0 (interno). Dado que especificamos el estado RELACIONADO, ESTABLECIDO, se limitará a la conexión iniciada desde la red interna. Bloquear el tráfico externo que intenta iniciar una nueva conexión.

sudo iptables -A INPUT -i lo -j ACEPTAR

Permitiendo el tráfico de loopback propio de la Raspberry Pi.

sudo iptables -A ENTRADA -i eth0 -p icmp -j ACEPTAR

Permitir que las computadoras de la red local hagan ping a la Raspberry Pi.

sudo iptables -A ENTRADA -i eth0 -p tcp --dport 22 -j ACEPTAR

Permitiendo SSH desde la red interna.

sudo iptables -A ENTRADA -m estado --estado ESTABLECIDO, RELACIONADO -j ACEPTAR

Permitir que regrese todo el tráfico iniciado por Raspberry Pi. Este es el mismo director estatal que antes.

sudo iptables -P DROP ADELANTE

sudo iptables -P INPUT DROP sudo iptables -L

Si el tráfico no coincide con ninguna de las reglas especificadas, se eliminará.

sudo apt-get install iptables-persistent

sudo systemctl habilitar netfilter-persistent

La primera línea instala una paz de código que hace que las reglas de iptable que acabamos de crear sean persistentes entre reinicios. El segundo guarda las reglas después de cambiarlas. Esta vez basta con ejecutar el primero. Si cambia las reglas, ejecute la segunda para guardar. Las reglas iptables están en vigor tan pronto como las agregue si se equivoca y pierde el acceso, simplemente reinicie y las que aún no se hayan guardado se revertirán.

Paso 6: Conclusión

Ahora puede usar este túnel desde cualquier dispositivo o computadora en la misma red. Simplemente cambie la puerta de enlace predeterminada a cualquier dirección IP que tenga su Raspberry Pi. En mi caso, mis dos centros de medios Kodi (un dormitorio y un salón) utilizan esta conexión para que pueda transmitir mis canales de reproducción suecos. Por supuesto, hay otras cosas para las que también puedes usar esto.

Solo tenga en cuenta que, según el proveedor de VPN que elija y la velocidad de su conexión a Internet, es posible que el rendimiento sea lento.

Si tienes alguna pregunta o quieres que te aclare algo, ¡házmelo saber en los comentarios! Para obtener más publicaciones sobre tecnología, visite mi blogg Hackviking!

Recomendado: