PI como enrutador VPN para máquinas locales

18

Me gustaría permitir que algunas de mis máquinas accedan a Internet a través de una conexión VPN. Mi idea es que el PI simplemente puede marcar y establecer una conexión y luego enrutar las solicitudes de las otras máquinas a través de él.

Estoy pensando que configurar un enrutador predeterminado del dispositivo a la IP del PI.

Si bien de alguna manera tiene experiencia con la configuración de la línea de comandos de multitud de cosas, ¿podría indicarme instrucciones sobre qué paquetes / servicios necesito?

Resumen de la configuración:

  • PI que se conecta a internet directamente a través del enrutador predeterminado
  • PI crea una conexión VPN (OpenVPN) y escucha en su interfaz local el tráfico
  • PI restablece la conexión en caso de fallas
  • otros dispositivos de red tienen una puerta de enlace predeterminada establecida en la IP del PI y todo su tráfico pasa a través de la VPN, siempre que esté activa (y no haya conexión a Internet si la VPN está inactiva).

No necesito servicios NAT o DHCP (DNS también puede pasar por la VPN).

petr
fuente
¿Cuál es el punto de? Si usa su Pi en su red local para crear una conexión saliente, ¿por qué no usa sus otras computadoras para crear una conexión saliente similar directamente, ahorrándole el costo de Pi y el dolor de cabeza de la instalación y configuración del software? La configuración de VPN convencional es la computadora en su red local, que escucha las conexiones entrantes y verifica las contraseñas y luego permite que la computadora remota use su red local directamente, no viceversa.
lenik
1
@lenik el punto es que tengo una multitud de máquinas que están usando la misma conexión VPN. Además, es mucho más simple configurar una sola máquina que seguir cambiando la configuración de varias máquinas asegurando que vuelvan a marcar, etc.
petr
1
Sin mencionar que usar otro dispositivo para hacer el enrutamiento hace que garantizar que TODO el tráfico pase por la VPN sea mucho más simple
2013
3
Algunos dispositivos también son incapaces de conectarse a las VPN. Estos dispositivos incluyen muchas consolas de juegos y otros dispositivos que no ejecutan sistemas operativos estándar que se pueden configurar fácilmente para conectarse a una VPN.
Kibbee
@lenik Esta configuración es común en equipos de redes de nivel empresarial. Está incorporado en enrutadores a partir de alrededor de $ 300 en adelante. El OP está buscando una solución por alrededor de una décima parte del precio ... como yo.
Philip Couling

Respuestas:

15

Tengo la misma configuración que tú:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

Primero, cambié mi configuración de red ( /etc/network/interfaces) en el RPi a una dirección estática

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Después de eso, debe configurar OpenVPN en el RPi:

sudo apt-get install openvpn

A continuación, debe configurar el archivo de configuración para la VPN /etc/openvpn/server.conf. He utilizado la muestra proporcionada por mi servicio VPN (Witopia) y el cambio dev tunde dev tun0y añadido redirect-gatewayal final.

Siguiente paso, modifique iptables para permitir NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Para hacerlo permanente, guárdelo así

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

Agregue esto al nuevo archivo:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

Guardar y hacerlo ejecutable con chmod +x /etc/network/if-pre-up.d/iptables. Ahora debe habilitar el reenvío de IP editando /etc/sysctl.confy descomentando la líneanet.ipv4.ip_forward = 1

Reiniciar y el RPi debería estar conectado a su VPN y estar listo para recibir tráfico entrante. Agregué una nueva opción a mi servicio dhcp en mi enrutador (que ejecuta OpenWrt) para especificar la puerta de enlace enviada al cliente. Agregué la línea list 'dhcp_option' '3,192.168.1.11'al archivo /etc/config/dhcpy reinicié el enrutador. Mi iPad, PC y AppleTV ahora se conectan a través del RPi para acceder a las URL externas.

Fuentes:

StebQC
fuente
1
Acabo de terminar de configurar una configuración similar el fin de semana pasado. También tuve que agregar "net.ipv4.tcp_ecn = 0" al archivo /etc/sysctl.conf. No estoy seguro de lo que hace, pero la puerta de enlace no funcionaría correctamente sin ella.
Kibbee
Esto funcionó para mí, con una modificación: la regla NAT debería seriptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh
0

Tratar

https://help.ubuntu.com/community/OpenVPN

Raspbian debería estar lo suficientemente cerca de Ubuntu para que la configuración sea la misma, y ​​acabo de comprobar que el paquete OpenVPN está disponible en el repositorio de Raspbian.

Sin embargo, tenga en cuenta que la mayoría de las instrucciones de VPN le dirán cómo crear un servidor para abrir su LAN a clientes VPN en Internet en lugar de viceversa, por lo que es posible que deba experimentar un poco con la configuración de enrutamiento.

Matt Thomason
fuente
Gracias, entiendo un poco mejor: de lo que no estoy seguro es de cómo hacer que el PI escuche las conexiones y las reenvíe a través de la VPN.
Petr
1
@petr Solo necesita ejecutar sysctl -w net.ipv4.ip_forward = 1, y hacer que sus otras máquinas usen el RPI como su puerta de enlace predeterminada, y el RPI se enrutará felizmente.
nos
0

No sé si esto es útil, pero estoy usando VPN en Raspberry Pi de un proveedor de VPN cuando viajo de EE. UU . A China , tienen un script dd-wrt que instalé y funcionó desde la primera vez. Por lo tanto, puede ahorrarse muchos problemas si busca un proveedor con un script dd-wrt ya hecho. Si alguien tiene curiosidad sobre el guión, puedo publicarlo aquí.

Michael Donnahew
fuente
0

Aquí está mi configuración que es muy similar a su necesidad; lo único que necesitas es instalar el cliente OpenVPN y hacer algunas configuraciones en Raspbian. ingrese la descripción de la imagen aquí

Lo describí en mi blog; Configuración de VPN Gateway con Raspberry PI

afelaho
fuente
¡Hola y bienvenido! En este momento no creo que la pregunta "¿podría indicarme instrucciones sobre qué paquetes / servicios necesito? ¿Podría indicarme instrucciones sobre qué paquetes / servicios necesito?" se aborda en la respuesta. ¿Podría por favor elaborar un poco más sin requerir que las personas sigan el enlace (que de hecho es solo la figura nuevamente)?
Ghanima
@Ghanima, gracias por tu comentario. He cambiado mi respuesta.
afelaho