Esta não é necessariamente uma resposta garantida porque não tenho a configuração que você descreveu.
Requisitos
- Todo o tráfego de saída da Internet da sub-rede gerenciada ou Linux / Main Computer ("LMC") para ir diretamente para a Internet via wlan0, usando SNAT ou MASQUERADE
- Todo tráfego de entrada na Internet que faz parte do tráfego de saída da Internet deve ser entregue diretamente, usando o rastreamento de conexão criado pelo SNAT ou pelo MASQUERADE (acima)
- Todo o tráfego de saída de sub-rede do LMC para ir direto
- Todo o tráfego de entrada na Internet desconhecido deve ser roteado para o DD-WRT "firewall confiável", o que assumiremos como 192.168.1.253
Acredito que podemos fazer isso com iptables
.
# Shortcuts
filter() { iptables -t filter "$@"; }
nat() { iptables -t nat "$@"; }
# Set the policy for INPUT and FORWARDING to DROP, OUTPUT to ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Empty all chains (erase all rules)
iptables -Z
# Enable forwarding
echo 1> net.ipv4.ip_forward
# SNAT outbound traffic on wlan0 (we will use MASQUERADE)
nat -A POSTROUTING -o wlan0 -j MASQUERADE
# Accept return traffic for our own outbound connections
filter -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Forward all unknown inbound traffic to DD-WRT box, eg 192.168.1.253
nat -A PREROUTING -i wlan0 -j DNAT --to-destination 192.168.1.253
Agora configure as tabelas de roteamento para que o seu "LMC" saiba como chegar ao DD-WRT e, por sua vez, a rota padrão do DD-WRT seja seu "LMC". Na verdade, tudo na sua rede deve ter "LMC" como sua rota padrão. O "LMC" em si deve ter seu ISP upstream como sua rota padrão.
Se você precisar de detalhes específicos, forneça alguns (exemplo) endereços IP e gateways.
Uma palavra de advertência: Não tenho certeza se isso é possível, conforme descrito na sua pergunta. Pode ser necessário NAT / rotear todo o tráfego através do DD-WRT (mesmo o tráfego de saída do "LMC").