Cómo configurar un enrutador de cliente OpenVPN

13

Estoy intentando configurar un enrutador OpenVPN para poder conectar mi tableta (inalámbrica) y Blu-Ray (con cable) a un servicio VPN de pago en otro país en Ubuntu 12.10. Lo hice con éxito usando DD-WRT (demasiado lento) y una instancia virtual de PFSense (demasiado limitada).

Soy nuevo en Linux, pero estoy 90% completo con este proyecto. El hardware es de 2 puertos ethernet con cable, uno de los cuales está conectado a un enrutador doméstico tradicional y una tarjeta inalámbrica.

Hasta ahora tengo ..

  1. Configure mi conexión inalámbrica para que actúe como un verdadero punto de acceso maestro utilizando hostapd
  2. Creé un puente (creo) entre la LAN inalámbrica y la LAN local
  3. Configure un servidor DHCP que asigne con éxito direcciones al puente; tanto las inalámbricas como las cableadas las están obteniendo.
  4. Configure OpenVPN para que cree con éxito una conexión tunelizada durante el arranque.

El comportamiento actual enruta todo el tráfico desde mi máquina Ubuntu al servidor VPN. Los otros dispositivos NO tienen conectividad, y ese es el problema.

Mi pregunta / objetivo:

¿Cómo configuro el enrutamiento para que OpenVPN solo dirija el tráfico desde mi puente (dispositivos con 192.168.10.x) a través del túnel VPN y NO el tráfico desde la computadora Ubuntu real?

OpenVPN configura algunas rutas automáticamente, pero parece ignorar el puente que configuré.

He leído mucha documentación iptablesy route, para mí, tiene muy poco sentido. A pesar de los múltiples tutoriales, todavía no entiendo cómo leer los resultados del routecomando. También sospecho que esto se puede lograr con route-noexecy route-upen el archivo de configuración de OpenVPN, pero nada ha sido exitoso.

Mi conocimiento de dónde están los archivos de configuración y las configuraciones es limitado. Las tareas anteriores me tomaron al menos 30 horas de retoques, así que por favor, sea fácil conmigo :)

¡Gracias!

Editar

He publicado una solución a continuación que dirige el tráfico del puente, pero no evita que el tráfico en la computadora Ubuntu pase por la VPN.

jbrookover
fuente

Respuestas:

1

No estoy seguro de que esto sea ideal, pero al menos está funcionando. En un mundo perfecto, el tráfico en la computadora Ubuntu no se enrutaría a través de la VPN, solo aquellos dispositivos conectados a la computadora Ubuntu. De todos modos, aquí está la solución ...

En el openvpn.confarchivo

script-security 2
up "/path/to/external/script.sh"

En el /path/to/external/script.sharchivo

iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

En lo anterior, se tun0encuentra el túnel creado por OpenVPN, br0es el puente entre mi LAN inalámbrica local y local, y 192.168.10.0/24es el grupo de subred / DHCP para mi LAN local.

No tengo idea de qué hace ese script, pero lo combiné en algunos sitios en Conexión compartida a Internet.

Dejaré esta respuesta sin marcar en caso de que alguien quiera proporcionar una mejor o explicar cómo evitar que el tráfico en la computadora Ubuntu pase por la VPN.

jbrookover
fuente
0

Es más fácil configurar el enrutador para conectarse al servidor VPN para que todos los dispositivos de su red lo atraviesen. Puede hacerlo desde la interfaz web del software del enrutador.

Para permitir que los dispositivos conectados a su PC accedan a Internet, debe compartir Internet desde esa PC con otros.

islam
fuente
Más fácil, sí. Pero ya lo hice y fue demasiado lento.
jbrookover