Eu estou tentando construir uma espécie de portal cativo de um RPi3. Comecei criando um ponto de acesso seguindo estas instruções. A seguir, configurei o dnsmasq para apontar todo o tráfego em wlan0 para si mesmo. echo 'address=/#/172.24.1.1' >> /etc/dnsmasq.conf
Uma vez conectado, todo o tráfego é redirecionado de volta ao aplicativo do meu nó. Agora aqui é onde meu problema começa. Todo o tráfego é enviado para o meu aplicativo de nó, incluindo o tráfego originado do pi de framboesa, portanto, enquanto estiver na caixa, não consigo fazer telnet para nenhum site ou instalar aplicativos.
Acredito que o problema esteja nas regras de iptable.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Preciso de todo o tráfego originário do pi do framboesa para poder ir para a Internet (através de eth0
) e todo o tráfego que entra em wlan0
para continuar a redirecionar para a minha aplicação de nó.
ATUALIZAÇÃO:
Aqui estão os resultados de ip route sh
default via 10.1.10.1 dev eth0 metric 202
10.1.10.0/24 dev eth0 proto kernel scope link src 10.1.10.87 metric 202
172.24.1.0/24 dev wlan0 proto kernel scope link src 172.24.1.1
Quanto ao software de portal cativo que estou usando, a resposta é nenhuma. Eu estou usando um aplicativo Node JS que eu escrevi. É um aplicativo simples do Express JS que redireciona todos os caminhos para uma página.
dnsmasq.conf
interface=wlan0 # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere
#server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
bogus-priv # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
address=/#/172.24.1.1
Tabelas IP
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination