Rota o tráfego da LAN através de eth0, não tun0, no meu ponto de acesso VPN

0

Como posso fazer com que meu ponto de acesso envie tráfego para 192.168.1.0 a eth0 e todos os outros tráfegos por meio de tun0 ?

Eu configurei um ponto de acesso VPN do Raspberry Pi. Ele fica na mesma sub-rede que todos os meus servidores, 192.168.1.0 e é, assim como os servidores, conectados por cabo ao meu modem / roteador. O Raspberry Pi então tem um pendrive WIFI ( wlan0 ) para os clientes se conectarem, ele executa sua própria sub-rede 192.168.2.0 e usa regras iptables para encaminhar todo o tráfego de seus clientes em wlan0 através da minha conexão VPN ( tun0 ).

Eu configurei isso adiante fazendo;

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

Meu problema é que agora um cliente conectado por wifi ao meu ponto de acesso não pode se comunicar com meus servidores. Como posso conseguir isso?

|                                            |       ¦
|                          __________________|_______¦_________
|                          |      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 |
|                                             |____________________|

Eu descrevi minha configuração de ponto de acesso mais detalhadamente em; link

O que preciso fazer para poder fazer o ssh de laptop para servidor enquanto todo o tráfego de Internet dos clientes do AP é enviado pela VPN? Posso adicionar outra regra iptables?

A saída ifconfig -a dos pontos de acesso:

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)

A saída da rota do ponto de acesso -n:

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
    
por SnabelaDotNet 05.12.2013 / 14:43

1 resposta

0

Vou arriscar um palpite e dizer que sua política FORWARD padrão é REJECT ou DROP (verifique com iptables -L FORWARD ). Se isso estiver correto, todo o seu problema é esta linha:

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

O que ele faz é ACEITAR por ENVIO de qualquer coisa que chegue em wlan0 e sair por tun0 . O que não corresponde a um pacote de 192.168.2.2 a 192.168.1.79 , porque isso sairia de eth0 .

O mais fácil é remover essa linha e substituí-la por essas duas, para permitir o encaminhamento de tudo em qualquer direção entre suas interfaces internas:

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

Se você simplesmente deseja excluir seu servidor da VPN, adicione -o wlan0 à segunda linha. É claro que, se você quiser adicionar mais requisitos mais rigorosos, como estabelecimento de sessão tendo que ir em uma direção específica ou qualquer outra coisa, essas regras são as que precisam ser ajustadas. Divirta-se e mantenha um console à mão. ; -)

    
por 06.12.2013 / 15:04