Raspberry Pi como puerta de enlace de VPN

Después de su uso como Proxy y Cliente de TV aquí ahora otro posible uso para un Pi de frambuesacomo Puerta de enlace VPNEn este caso específico para proporcionar varios dispositivos con una conexión VPN. Práctico, si no todos los dispositivos soportan directamente la VPN.

Actualización desde el 14.05.2015: Tengo el Configuración de la puerta de enlace VPN para el uso de la Frambuesa Pi 2 actualizado una vez más. Por supuesto, la velocidad todavía depende del proveedor de VPN utilizado o de muchos otros factores.

Tablero del Pi 2 de Frambuesa: Más rendimiento gracias a Quadcore y 1 GB de RAM
Tablero del Pi 2 de Frambuesa: Más rendimiento gracias a Quadcore y 1 GB de RAM

Aunque ya hay un imagen acabadaque proporciona un Pi de Frambuesa como puerta de enlace OpenVPN, pero la configuración completa no resultó ser tan complicada al final como para no poder añadirlo al Pi de Frambuesa ya existente. Cuanto más rápido sea el Frambuesa (o el ordenador monoplaca usado de su elección), más rendimiento tendrá la VPN después.

Requisitos

Para usar el Pi de Frambuesa como una puerta de enlace OpenVPN se deben cumplir algunos requisitos:

  • Pi de frambuesa respectivamente Pi 2 integrado en la red con dirección IP fija (no es obligatorio)
  • Acceso a la VPN (uso IPredator respectivamente PureVPN)
  • Un entendimiento básico del enrutamiento y de Linux es ventajoso porque todo se hace en la consola

Cuando tienes todas las partes juntas puedes comenzar la instalación - el Instrucción del IPredator ayuda, aquí están las piedras angulares más importantes. Primero tienes que instalar openvpn:

~ # sudo aptitude install openvpn

Entonces necesitamos el archivo .conf del proveedor respectivo, que también contiene las configuraciones y claves necesarias. Este archivo debe ser copiado a /etc/openvpn puede ser copiado. En el mismo directorio creamos un archivo .auth (el nombre correcto de este archivo debe ser especificado en el archivo .conf bajo auth-user-pass ser registrado). El archivo .auth contiene sólo dos líneas con el nombre de usuario y la contraseña para la conexión VPN.

En el archivo .conf de la conexión VPN deben añadirse las siguientes entradas (pueden estar obsoletas dependiendo del proveedor, para PureVPN no es necesario):

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/actualizar-resolv-conf

redirect-gateway

La llamada del guión update-resolv-conf al establecer y cerrar la conexión VPN se asegura de que siempre se utilice el servidor DNS correcto, redirect-gateway asegura que los paquetes de datos de los clientes en la red se pasan más tarde a través de la conexión VPN. Si se realizan todos estos ajustes, se inicia la primera prueba: con el comando openvpn -config /etc/openvpn/meine-config.conf se establece una conexión VPN, en un segundo terminal se puede ver si funcionó correctamente. Ahí deberías ver... ifconfig mostrar un nuevo dispositivo tun0:

tun0 Link encap:UNSPEC Dirección de hardware 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          Dirección inet:x.x.x.x P-z-P:x.x.x.x Máscara:255.255.255.0
          MULTICAST MTU:1500 Métrico:1
          Paquetes RX:6005 errores:0 caídos:0 sobrecargas:0 fotogramas:0
          Paquetes de TX: 6335 errores: 0 caídos: 0 sobrecargas: 0 portadores: 0
          colisiones:0 longitud de la cola de envío:100
          RX bytes:1554591 (1.4 MiB) TX bytes:625622 (610.9 KiB)

Así que la conexión VPN funciona ya una vez, OpenVPN puede ahora activarse regularmente a través de /etc/init.d/openvpn start y también se inicia automáticamente después de un reinicio - ahora sólo los paquetes de datos de los dispositivos de la red local tienen que ser enrutados a través de esta conexión.

Preparar la puerta de enlace...

En primer lugar, el reenvío de paquetes debe ser activado. Ya que queremos que permanezca activo incluso después de un reinicio, en el archivo /etc/sysctl.conf quitar el signo de comentario delante de la siguiente entrada:
net.ipv4.ip_forward=1. Después de reiniciar el Pi una vez, entonces también sabemos si el Conexión VPN se construye automáticamente - si este es el caso, habilitar el reenvío en iptables (los siguientes ajustes funcionaron para mí al menos, pero iptables puede ser un poco difícil - si es necesario hay que experimentar un poco aquí)

~ # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
~ # iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Si quieres usar iptables con la misma configuración después de un reinicio, puedes usar el paquete iptables-persistent para instalar - esto guardará y recargará las entradas actuales de iptables

Uso de Wireguard

Usando iptables puedes redirigir el tráfico a la interfaz wireguard en lugar del dispositivo tun0 de la conexión OpenVPN. Si tienes una conexión wireguard, el siguiente comando te mostrará cómo se llama la interfaz de la red:

~ # ip a

En mi configuración, la interfaz es "wg0-cliente" - si quieres dirigir el tráfico a través de esta interfaz, las reglas de iptables tienen que ser ajustadas en consecuencia:

~ # iptables -t nat -A POSTROUTING -o wg0-cliente -j MASQUERADE

El reto hasta ahora es encontrar un servicio VPN adecuado que permita establecer una conexión wireguard en la línea de comando. Si conoces un servicio de VPN de cable adecuado, no dudes en compartirlo en los comentarios - el uso de una aplicación especial no suele funcionar.

Configuración de los dispositivos finales

Configuración de IP para el uso de la puerta de enlace OpenVPN
Configuración de IP para el uso de la puerta de enlace OpenVPN

Los dispositivos iOS utilizan la puerta de enlace OpenVPNLa dirección IP del Pi de Frambuesa ahora sólo debe ser introducida como el enrutador en los dispositivos finales. En mi caso es 192.168.0.44, en un dispositivo iOS 7 los ajustes se verán como a la izquierda. Tan pronto como esto se ha hecho, todos los paquetes de datos (excepto la resolución del DNS, que sigue siendo asumida por el enrutador en la red doméstica) se enrutan a través del Pi de Frambuesa y desde allí a través de la conexión VPN - fácilmente reconocible por la ubicación de, por ejemplo. wieistmeineip.comque Suecia afirma ser un país.

Frambuesa Pi 2 como puerta de enlace VPN

Speedtest Raspi 2 VPN gateway
Speedtest Raspi 2 VPN gateway

Con el nuevo y significativamente más poderoso Frambuesa PI 2 Modelo B esta configuración puede, por supuesto, llevarse a cabo de la misma manera. La velocidad depende principalmente del proveedor de VPN utilizado - y el servidor al que se conecta. Con un servidor en Suecia y PureVPN como proveedor, son posibles 15 Mbit/s (es decir, algo así como una conexión DSL media, las conexiones a los EE.UU. son mucho más lentas: aquí se alcanzan unos buenos 6,5 Mbit/s. Para Netflix esto es suficiente después de un poco de amortiguación.

Para acelerar la navegación en las páginas de EE.UU. también he creado un El caché de DNS en el Pi 2 de Frambuesa instalado: pdnsd almacena en caché las peticiones DNS que de otra manera serían enviadas a través de la conexión VPN y así asegura una "experiencia de navegación" más rápida cuando se utiliza la conexión VPN.

Raspi 2: Tráfico en la conexión VPN para el flujo de Netflix
Raspi 2: Tráfico en la conexión VPN para el flujo de Netflix

La velocidad de la puerta de enlace de OpenVPN y la conclusión

La velocidad de esta construcción depende naturalmente de varios factores: qué tan rápida es la conexión de red del Pi de Frambuesa, qué tan rápida es la conexión VPN, qué tan rápida es la conexión DSL a Internet, qué tan rápida es la WLAN. En mi escenario, un iPhone 5 conectado a través de una WLAN de 2.4 GHz obtiene una buena descarga de 6.7 Mbit/s a través de la puerta de enlace del Pi de Frambuesa y casi 600kb/s de carga. En lugar de IPredator puedes usar cualquier otro proveedor de OpenVPN, por ejemplo. PureVPN.

Como siempre con las instrucciones para el Pi o el Pi 2 de Frambuesa, que se basan en el estándar de Raspian, todo el asunto también podría realizarse con un PC x86 - sólo que con un consumo de energía significativamente mayor.

[amazon box="B07TF5PPPN"]

22 comentarios

  1. Gracias por el artículo. Lo instalé en mi Pi 2 sin ningún problema. Pero el VPN sobre el portal es extremadamente lento. Los pings de google.com también están a 400ms.
    El uso de la CPU y la memoria que pude excluir como causa hasta ahora. No es el servidor VPN en sí mismo, una conexión directa desde otro ordenador funciona muy rápido. El Pi sólo como una puerta de enlace sin VPN funciona sin problemas.
    ¿Tienes más consejos sobre dónde puedo ir a solucionar problemas?

      1. Pedí un Pi 2 de frambuesa, así que voy a revisarlo de nuevo y actualizar el artículo. Tal vez encuentre una configuración que lo permita con una velocidad razonable.

  2. Oferta genial @PureVPN

    PureVPN ofrece una cuenta de 2 años con un SmartDNS gratis por 1.95 Euros/mes durante 2 años.

    No hay registros.

    Tiene más de 500 servidores en 141 países. (Hasta 2 veces más rápido que el otro servicio de VPN)

    Uso simultáneo en hasta 5 dispositivos.

    GARANTÍA DE DEVOLUCIÓN DE DINERO DE 7 DÍAS.

    Una fuerte encriptación de grado militar.

    Transmisión sin censura con SmartDNS

    Un trato maravilloso. 🙂

    https://www.purevpn.com/bestvpnprovider-special.php

  3. El hilo es un poco más viejo, pero todavía tengo dos preguntas.

    Asumiendo que conecto el portátil a mi proveedor de VPN a través del RPi, pero el resto de los dispositivos habilitados para la red no lo hacen, ¿puedo seguir accediendo a los recursos compartidos de la red?
    ¿Así que el portátil sigue conectado regularmente a la red y sólo la conexión con el exterior está asegurada?

    2 Mi proveedor de VPN no me proporciona un archivo .conf sino un archivo .ovpn. ¿Tiene alguna idea de cómo incluirlo?

    Saludos y gracias

    1. 1. Sólo las conexiones a Internet deben ser enrutadas a través de la RPi Todo lo demás debería seguir siendo normal.

      2. El archivo .ovpn es tu archivo .conf.

  4. Probablemente una pregunta bastante estúpida y me apedrean inmediatamente hasta la muerte ( 😉 ), pero:

    ¿No es necesario un segundo adaptador LAN, como en otras configuraciones de routers?

    1. No, todo se hace a través de una interfaz. La "interfaz" externa obtiene su IP a través de OpenVPN, internamente la LAN permanece accesible a través de la dirección habitual.

      Por supuesto, dos interfaces también serían posibles, por ejemplo, con una memoria USB-WLAN

  5. Tengo todo listo y funcionando hasta ahora, pero:

    "con el comando openvpn -config /etc/openvpn/meine-config.conf se establece una conexión VPN", "OpenVPN puede ahora activarse regularmente a través de /etc/init.d/openvpn start y también se inicia automáticamente después de un reinicio"

    Me temo que no. Para mí es el /etc/openvpn/vpn.conf que obviamente no se usa, aunque lo introduzca en /etc/default/openvpn bajo AUTOSTART="vpn". ¿Qué tengo que hacer? (Actualmente tengo que iniciar la VPN manualmente una y otra vez)

    BTW: ¿Es posible configurar OpenVPN para usar más de un núcleo de procesador?

    Sugerencia: El reenvío de puertos también se define a través de iptables: por ejemplo, "iptables -t nat -I PREROUTING -i tun0 -p tcp -dport 10000 -j DNAT -to-destino 192.168.178.100".

    1. Intenta guardar el archivo de configuración con la extensión .ovpn. Puede que no reconozca el archivo correctamente, de lo contrario, hice la observación con otra configuración. Si funciona, entonces actualizo las instrucciones en consecuencia.

  6. Aloha,

    Siento "hacer un mal uso de la función de comentarios", pero...

    ¿Alguien ha sido capaz de configurar con éxito los puertos vía iptables usando la configuración descrita anteriormente y podrían ayudarme con mi configuración?

    [email protected]

  7. Para mí todo funciona muy bien con el Pi 2, obtengo entre 10 y 20 Mbit. Dirige todo el asunto para mi WG-WLAN. Mi ordenador, que NO se conecta a través de tu pi, ha estado haciendo cosas extrañas desde entonces. O bien la página web no se abre hasta la 2ª o 3ª llamada, o las fotos no se cargan parcialmente. Tuve problemas similares cuando se suponía que mi Synology NAS realizaba exactamente la misma función.

    1. Entonces probablemente ya hay algo que se interpone entre ellos. ¿Estás seguro de que no hay superposición de configuraciones de ADN?

  8. Hola Falk,

    ¿Puedes decirme exactamente qué hace iptables con estos comandos definidos en TuT?

    ¿Puedo deshacer todos los cambios que hice?

  9. ¿Qué debo hacer si no quiero tener una pasarela vpn sino que sólo quiero que el tráfico de salida de la frambuesa pase por el proveedor vpn?

    El RAS está conectado a mi router ( internet ) vía lan.

    1. De hecho, no debería ser tan complicado, no es una mala idea. El problema debería ser encontrar un servicio VPN adecuado que soporte Wireguard sin aplicaciones especiales, etc.

Deje una respuesta

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *