Como posso fazer com que meu ponto de acesso envie tráfego 192.168.1.0
e eth0
todos os outros tráfegos tun0
?
Configurei um ponto de acesso VPN Raspberry Pi. Ele fica na mesma sub-rede que todos os meus servidores 192.168.1.0
e, assim como os servidores, está conectado por cabo ao meu modem/roteador. O Raspberry Pi então possui um stick WIFI ( wlan0
) para os clientes se conectarem, ele executa sua própria sub-rede 192.168.2.0
e usa iptables
regras para encaminhar todo o tráfego de seus clientes wlan0
através da minha conexão VPN ( tun0
).
Eu preparei isso 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 consegue 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 |
| |____________________|
Descrevi a configuração do meu ponto de acesso com mais detalhes em;http://www.snabela.net/index.php/2013/11/raspberry-vpn-access-point/
O que preciso fazer para poder fazer o ssh do laptop para o servidor enquanto todo o tráfego da Internet dos clientes do AP é enviado pela VPN? Posso adicionar outra regra de 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 route -n do ponto de acesso:
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
Responder1
Vou arriscar um palpite e dizer que sua política FORWARD padrão é REJECT ou DROP (verifique com iptables -L FORWARD
). Se estiver correto, todo o seu problema é esta linha:
sudo iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT
O que ele faz é ACEITAR para encaminhar qualquer coisa que entre wlan0
e saia tun0
. O que não corresponde a um pacote from 192.168.2.2
to 192.168.1.79
, porque isso sairia através de eth0
.
A coisa mais fácil a fazer é remover essa linha e substituí-la por estas 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 requisitos mais rígidos, como o estabelecimento de uma sessão ter que seguir 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. ;-)