Usarei o texto como referência, pois os nomes das suas interfaces não correspondem à imagem e ao texto.
O roteador é o roteamento entre todas as suas interfaces onde ele tem um IP, então brd0
(home), brd1
(guest) e wan0
(que você esqueceu de adicionar no imagem), como esperado de um roteador.
Como você terá mais tarde a rota entre brd0
e wan0
, bem como entre brd1
e wan0
, você não pode simplesmente desabilitar o roteamento. Você pode usar duas regras iptables FORWARD
para proibir esse roteamento, uma para cada direção:
iptables -A FORWARD -i brd0 -o brd1 -j DROP
iptables -A FORWARD -i brd1 -o brd0 -j DROP
Se você quiser que a rede doméstica tenha acesso à rede convidada, mas não o contrário, as regras com estado podem fazer isso usando:
iptables -A FORWARD -i brd1 -o brd0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i brd1 -o brd0 -j DROP
A primeira regra provavelmente pode ser "fatorada" com regras semelhantes futuras, removendo os nomes das interfaces:
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Observação: os sistemas de uma rede ainda podem executar o ping do IP do roteador pertencente à outra rede (por exemplo, 192.168.20.2
, ping 192.168.10.1
seria bem-sucedido), pois não são roteados, portanto, não atravessam as regras FORWARD
, mas d ser um pouco exagerado para resolvê-lo (com as regras corretas na cadeia INPUT
). Eu apenas deixo como uma observação.
Nota 2: nada nesta resposta precisava estar lidando com o fato de que brd0
e brd1
são pontes: é tudo sobre roteamento.