Enrutar el tráfico LAN a través de eth0, no tun0, en mi punto de acceso VPN

Enrutar el tráfico LAN a través de eth0, no tun0, en mi punto de acceso VPN

¿Cómo puedo hacer que mi punto de acceso envíe tráfico 192.168.1.0directo eth0y todo el resto del tráfico tun0?

He configurado un punto de acceso VPN Raspberry Pi. Se encuentra en la misma subred que todos mis servidores 192.168.1.0y, al igual que los servidores, está conectado por cable a mi módem/enrutador. Luego, la Raspberry Pi tiene un dispositivo WIFI ( wlan0) para que los clientes se conecten, ejecuta su propia subred 192.168.2.0y usa iptablesreglas para reenviar todo el tráfico de sus clientes a wlan0través de mi conexión VPN ( tun0).

Configuré esto hacia adelante haciendo;

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT

Mi problema es que ahora un cliente conectado por wifi a mi punto de acceso no puede comunicarse con mis servidores. ¿Cómo puedo conseguir esto?

|                                            |       ¦
|                          __________________|_______¦_________
|                          |      Modem/Router/DCHP server    |
|                          |             192.168.1.254        |
|                          |_________________________¦________|
|                                            |       ¦
|                                            |       ¦
|                                  __________________¦_
|                                  |  8-port switch  ¦ |
|                                  |_________________¦_|
|                                    |             | ¦    
|                                    |             | -----------
|                ____________________|             |__________ ¦
|                |                                       eth0| ¦tun0
|        __________________                        ________________________
|        |    Server      |                        |  Pi VPN Access Point |
|        |  192.168.1.79  |                        |  eth0: 192.168.1.81  |
|        |________________|                        |  tun0: 10.X.X.X      |
|                                                  |  wlan0:192.168.2.1   |
|                                                  |______________________|
|                                                       |wlan0
|                                                       | 
|                                             __________|___________
|                                             |   Laptop           |
|                                             | wlan0: 192.168.2.2 |
|                                             |____________________|

He descrito la configuración de mi punto de acceso con más detalle en;http://www.snabela.net/index.php/2013/11/raspberry-vpn-access-point/

¿Qué debo hacer para poder realizar ssh desde la computadora portátil al servidor mientras todo el tráfico de Internet de los clientes del AP se envía a través de la VPN? ¿Puedo agregar otra regla de iptables?

Los puntos de acceso ifconfig -a salida:

eth0      Link encap:Ethernet  HWaddr b8:28:eb:f1:77:93  
          inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:124292 errors:0 dropped:0 overruns:0 frame:0
          TX packets:86097 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:136739836 (130.4 MiB)  TX bytes:15199088 (14.4 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:60 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6200 (6.0 KiB)  TX bytes:6200 (6.0 KiB)

mon.wlan0 Link encap:UNSPEC  HWaddr F8-1B-67-20-B3-61-00-00-00-00-00-00-00-00-00-00  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4760 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:630721 (615.9 KiB)  TX bytes:0 (0.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.4.43.179  P-t-P:10.4.43.178  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:108875 errors:0 dropped:0 overruns:0 frame:0
          TX packets:75807 errors:0 dropped:29 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:126611820 (120.7 MiB)  TX bytes:6303503 (6.0 MiB)

wlan0     Link encap:Ethernet  HWaddr f8:1b:67:20:b3:61  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:75019 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109376 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7219164 (6.8 MiB)  TX bytes:130045181 (124.0 MiB)

La salida route -n del punto de acceso:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.4.43.178     128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
10.4.0.1        10.4.43.178     255.255.255.255 UGH   0      0        0 tun0
10.4.43.178     0.0.0.0         255.255.255.255 UH    0      0        0 tun0
95.211.191.34   192.168.1.254   255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.4.43.178     128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

Respuesta1

Me arriesgaré a adivinar y diré que su política ADELANTE predeterminada es RECHAZAR o SOLTAR (consulte con iptables -L FORWARD). Si eso es correcto, todo su problema es esta línea:

sudo iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT

Lo que hace es ACEPTAR para REENVIAR cualquier cosa que entre wlan0y salga tun0. Lo cual no coincide con un paquete desde 192.168.2.2hasta 192.168.1.79, porque saldría eth0.

Lo más fácil es eliminar esa línea y reemplazarla con estas dos, para permitir el reenvío de todo en cualquier dirección entre sus interfaces internas:

sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -j ACCEPT

Si simplemente desea excluir su servidor de la VPN, agréguelo -o wlan0a la segunda línea. Por supuesto, si desea agregar requisitos más estrictos, como que el establecimiento de la sesión tenga que ir en una dirección particular o lo que sea, estas reglas son las que deben ajustarse. Diviértete y ten una consola a mano. ;-)

información relacionada