Eu tenho um roteador dd-wrt com duas interfaces Wi-Fi ( ath0
, ath1
). Eu quero que tudo o que está acontecendo ath0
não tenha nenhum tipo de acesso WAN. Apenas LAN (de e para o dispositivo).
Como eu faria isso da maneira mais fácil e robusta?
Antes eu tentei isso usando ath1 também adicionando um AP virtual, uma nova ponte para o AP e algumas configurações avançadas de roteamento e firewall. No entanto, isso era muito complicado e imaginei que deveria ser muito mais fácil usar minha ath0
interface (5 GHz) para essa finalidade.
Estou usando o OpenVPN como cliente, o que torna as coisas um pouco mais complicadas. Ao usar o firewall do iptables com a abordagem antiga, eu sempre teria que redefinir manualmente as configurações do firewall porque um arquivo em /etc/ está substituindo minhas regras ( -I
no topo) por causa da VPN, permitindo que tudo acesse a WAN desde que termine a VPN. Por causa do squashFS, não consegui encontrar uma maneira de evitar isso e sempre ter que sobrescrevê-lo manualmente depois de salvar as configurações/reinicializar o roteador não é tão bom. Também não tenho certeza se ele não irá sobrescrevê-lo novamente mais tarde.
Também não quero ath0
ter acesso VPN. Não posso usar iptables com um IP de origem porque deveria ser para todos os clientes nesse SSID/interface e assim que eles se conectarem, então não saberei um IP com antecedência.
Eu tentei pesquisar isso, mas não consegui encontrar nada que funcionasse para o meu caso, exceto a solução de AP/ponte virtual excessivamente avançada.
Supondo que você também tenha
ebtables
(ouebtables-nft
) além deiptables
no roteador, e que todas as interfaces (W)LAN sejam escravas de ponte para o mesmo mestre (digamos nomeadobridge0
):(Observe que o valor da marca
0xabcd
é arbitrário.)Isso faz com que todos os tráfegos que chegam ao roteador do "lado da LAN" "permaneçam dentro" do domínio de transmissão. A razão é que
ebtables
'INPUT
não inclui tráfegos que vão de um escravo/porta de ponte para outro (ou seja, encaminhamento L2). E para o que visa o próprio roteador (que vemath0
e é, portanto, marcado), não queremos que eles sejam encaminhados em L3 (ou seja, poder ir de "LAN" para "WAN"/VPN/...) .Como alternativa, você pode fazer isso sem depender de iptables ou marcação de pacotes também:
Embora não testado,
-d Unicast
é suposto manter o DHCP e assim funcionando. Se você também precisa de IPv6 (tráfego para o roteador em L3 ) para funcionar, você provavelmente precisa/quer uma cadeia extra para mais exceções (o que permitirá que você permita o DHCP com outra abordagem também), como:Mas, como você pode ver, a última abordagem é muito mais desajeitada.
PS Eu tenho zero experiência com todos os WRTs ou similares, então não tenho idéia de como se deve tornar as regras do xtables persistentes neles. (Para ser justo, no entanto, o AFAIK é específico da distribuição, mesmo em distribuições Linux "típicas".)