Estou tentando projetar uma rede Wi-Fi convidada para minha rede existente, mas não tenho certeza de como proteger o ponto de acesso Wi-Fi convidado da rede pai, quando o ponto de acesso está contido na rede pai.
Tentei pesquisar isso, mas estou apenas obtendo resultados de hardware de consumidor que diz "clique nesta configuração" e normalmente assume que o roteador principal também é o próprio ponto de acesso wifi, tornando a segregação lógica muito mais fácil.
+----------+
| Internet |
+----+-----+
|
|
+-------+------+
| Linux Router | 10.0.0.0/24
+----------+ +--------------+
| | 10.0.0.1 | |
| +-------+------+ |
| Device A - 10.0.0.5 |
| |
| Linux Guest Wifi Router - 10.0.0.200 |
| + |
| | |
+----------------------------------------+
|
|
| Guest Subnet 10.0.1.0/24
+----+--------------------------+
| |
| Guest Device X - 10.0.1.5 |
| |
+-------------------------------+
O roteador principal é uma caixa linux dual NIC (ext/int) (Debian 7 com iptables) e nada mais. O ponto de acesso wifi convidado será um PI rasp que estou solicitando e presumo que a configuração necessária estará contida na caixa wifi convidado.
Mas não tenho certeza de como configurar o iptables (nftables?) No PI para garantir que a rede pai esteja inacessível, exceto para rotear para a Internet.
- Como o "Dispositivo convidado X" chega ao gateway do roteador principal (10.0.0.1) enquanto tem acesso negado ao dispositivo A (10.0.0.5).
- Como posso saber se o roteador principal não enviará nenhuma solicitação de 10.0.0.5 de volta para a sub-rede 10.0.0.0/24? Precisarei configurar o iptables no roteador principal para funcionar em conjunto com o roteador wifi?
Resultados desejados de 10.0.1.5:
- $ ping 10.0.0.5 – Destino inacessível/Sem rota para host etc.
- $ping 8.8.8.8 – OK
- $ ping 10.0.0.1 - (assumindo que está bem?)
- $ ping 10.0.0.200 – Desconhecido?
Discussão para solução potencial alternativa abaixo:
- Uma sugestão foi fazer um 2º IP no roteador principal e ter a rota wifi do convidado para esse IP. Então procurei documentos e encontrei isto:
Isso faria com que as coisas ficassem assim:
Internet
|
Linux Router
(eth1 10.0.0.1) (eth1:1 10.0.1.1)
| |
Reg Network Guest Wifi Router (10.0.1.2)
(DHCP) |
Guest Device (10.0.?.?)
Então, não tenho certeza sobre algumas coisas neste momento
- Como configuro a tabela de roteamento do roteador principal para evitar o tráfego da sub-rede 10.0.1.1 a 10.0.0.0/24? Ou esta é uma regra do iptables no roteador principal neste momento? Não tenho certeza se estou vendo como isso é diferente de ter o roteador wifi convidado em 10.0.0.0/24, já que o roteador principal ainda seria capaz de rotear para outros dispositivos nessa rede?)
- Presumo que o roteador Wi-Fi convidado precisaria de um servidor DHCP para os dispositivos convidados. Mas os dispositivos convidados usariam a sub-rede 10.0.1.0/24 com 10.0.1.1 como gateway ou eu configuraria outra sub-rede 10.0.2.0/24 para dispositivos convidados?
Responder1
Recapitulando a situação, para verificar se entendi corretamente:
O AP convidado se conecta ao roteador principal como parte da LAN ou WLAN privada. Além disso, você deseja uma rede de convidados separada da rede privada, mas que necessariamente usará a rede privada para acessar o roteador principal.
Breve esboço da possível solução:
A única maneira de fazer isso funcionar com segurança é fazer com que o roteador principal esteja ciente de que existem duas redes e separá-las adequadamente com iptables
regras. Então você deseja que seu roteador principal veja duas interfaces de rede, uma com 10.0.0.0/24 para o segmento privado e outra com 10.0.0.1/24 para o segmento convidado. Presumo que você saiba como configurar o roteador principal com isso, dados os comentários.
Isso significa que a conexão do AP convidado (RaspPi) ao roteador principal deve usar algum tipo de túnel. A variante mais fácil seria umaVLAN, que "sobrepõe" (possivelmente várias) LANs virtuais em sua LAN privada.
Concretamente, adicione no RaspPi e na caixa Debian uma interface de rede virtual com algo como
ip link add link eth0 name eth0.55 type vlan id 55.
(escolha uma tag VLAN) e use e configure eth0.55
como uma interface de rede normal. Depois que funcionar, você pode se adaptar /etc/network/interfaces
para que apareça automaticamente.
Editar
Para o firewall, você precisará iptables
de regras que impeçam as interfaces eth0
de eth0.55
se comunicarem entre si, então algo como
#!/bin/bash
PRIVIF=eth0
GUESTIF=eth0.55
iptables -P FORWARD ACCEPT
iptables -F FORWARD
iptables -A FORWARD -i $PRIVIF -o $GUESTIF -j DROP
iptables -A FORWAD -i $GUESTIF -o $PRIVIF -j DROP
(não testado). Ou torne-o ainda mais seguro com uma política de encaminhamento padrão DROP e, em seguida, enumere todos os encaminhamentos permitidos, preservando a funcionalidade NAT do roteador (se houver).
Existem muitos tutoriais online sobre firewalls e iptables
basta escolher o que você mais gosta.