Estou tentando configurar um Raspberry Pi 3 como um portal bridge / cativo entre a porta Ethernet integrada, eth0, que será conectada a um roteador upstream e uma porta ethernet USB, eth1, que será conectada para um ou mais grandes pontos de acesso wi-fi ao ar livre. Eu acho que este é um problema geral de rede e não específico para a máquina física, é por isso que eu não postei isso no fórum do Raspberry Pi.
Eu segui este que me levou ao ponto de um laptop de teste conectado O eth1 é capaz de obter um endereço IP via DHCP e navegar em páginas da web remotas. Eu também segui este para instalar o nodogsplash. No entanto, quando o nodogsplash é iniciado, o laptop de teste deixa de obter páginas da web. Ele ainda pode obter endereços via DHCP, mas tenta ir para qualquer página da Web apenas fornecer "Esta página não pode ser exibida" e não há saída no log de nds. No laptop de teste, tentei especificamente acessar um site da porta 80 , conforme sugerido em os documentos e eu tentei acessar a porta 2050 do endereço do rPi na eth1 para tentar obter a página de destino diretamente, ambos novamente dizendo "Esta página pode seja exibido "
Se eu usar um laptop no lado eth0 e ir para a porta 2050 do endereço eth0 do rpi, ainda recebo um erro, mas recebo o redirecionamento aparecendo na barra de endereço e o log mostra
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:294) access: GET /
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:659) Locking client list
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:659) Client list locked
[5][Tue Aug 14 13:49:32 2018][3448](src/client_list.c:158) Adding 192.168.8.101 c4:17:fe:ba:8a:f7 token 2ec07530 to client list
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:661) Unlocking client list
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:661) Client list unlocked
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:599) originurl: http://192.168.8.135:2050/
[7][Tue Aug 14 13:49:32 2018][3448](src/http_microhttpd.c:611) splashpageurl: http://192.168.64.1:2050/splash.html?redir=http%3a%2f%2f192.168.8.135%3a2050%2f
Meu nodogsplash.conf, depois de remover as linhas comentadas, é
GatewayInterface eth1
FirewallRuleSet authenticated-users {
FirewallRule allow all
}
FirewallRuleSet preauthenticated-users {
}
FirewallRuleSet users-to-router {
FirewallRule allow udp port 53
FirewallRule allow tcp port 53
FirewallRule allow udp port 67
FirewallRule allow tcp port 22
FirewallRule allow tcp port 80
FirewallRule allow tcp port 443
}
GatewayAddress 192.168.64.1
MaxClients 1000
fw_mark_authenticated 30000
fw_mark_trusted 20000
fw_mark_blocked 10000
eth1 é configurado no dhcpcd.conf como
interface eth1
static ip_address=192.168.64.1/22
static routers=192.168.64.1
Como é um acampamento de reconhecimento que pode ficar bastante ocupado, acho que precisamos de mais de 250 usuários.
Minha configuração do iptables quando o nsd está ativo é
root@raspberrypi:/home/pi# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ndsRTR all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ndsNET all -- anywhere anywhere
REJECT all -- anywhere anywhere mark match 0x10000/0x30000 reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain ndsAUT (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain ndsNET (1 references)
target prot opt source destination
DROP all -- anywhere anywhere mark match 0x10000/0x30000
DROP all -- anywhere anywhere ctstate INVALID
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
ACCEPT all -- anywhere anywhere mark match 0x20000/0x30000
ndsAUT all -- anywhere anywhere mark match 0x30000/0x30000
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain ndsRTR (1 references)
target prot opt source destination
DROP all -- anywhere anywhere mark match 0x10000/0x30000
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DROP tcp -- anywhere anywhere tcp option=!2 flags:SYN/SYN
ACCEPT tcp -- anywhere anywhere tcp dpt:2050
ACCEPT all -- anywhere anywhere mark match 0x20000/0x30000
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain ndsTRT (0 references)
target prot opt source destination
Chain ndsTRU (0 references)
target prot opt source destination
root@raspberrypi:/home/pi#
A saída de iptables -t mangle -v -n -L
é
Chain PREROUTING (policy ACCEPT 61 packets, 3124 bytes)
pkts bytes target prot opt in out source destination
2 140 ndsOUT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
2 140 ndsBLK all -- eth1 * 0.0.0.0/0 0.0.0.0/0
2 140 ndsTRU all -- eth1 * 0.0.0.0/0 0.0.0.0/0
284K 86M MARK all -- * * 0.0.0.0/0 0.0.0.0/0 MARK or 0x10000
Chain INPUT (policy ACCEPT 59 packets, 2984 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 2 packets, 140 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 104 packets, 10096 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 104 packets, 10096 bytes)
pkts bytes target prot opt in out source destination
0 0 ndsINC all -- * eth1 0.0.0.0/0 0.0.0.0/0
Chain ndsBLK (1 references)
pkts bytes target prot opt in out source destination
Chain ndsINC (1 references)
pkts bytes target prot opt in out source destination
Chain ndsOUT (1 references)
pkts bytes target prot opt in out source destination
Chain ndsTRU (1 references)
pkts bytes target prot opt in out source destination
e se eu olhar para a saída de iptables -L -v
enquanto um navegador no laptop de teste tenta ir diretamente para a porta 2050 do roteador, vejo que a tentativa está bloqueada pela primeira regra em ndsRTR, que parece ser intrínseca em vez de gerado por qualquer uma das regras de firewall no nosplashdog.conf
Estou contra uma parede de tijolos agora. Alguém tem sugestões de como eu posso fazer isso funcionar?
Tags networking routing raspbian