Você está quase lá, só precisa ter certeza de que o tráfego voltará para B. Agora, você redirecionou o tráfego de B para o mundo exterior, mas A não sabe como obter tráfego para B. Você precisa de A para manter algum estado sobre as conexões que passam por ele. Para fazer isso, você desejará ativar NAT . Você já tem o primeiro passo, que é permitir o encaminhamento. Então você precisa adicionar algumas regras de firewall usando iptables
:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Isso diz: na tabela de conversão de endereços de rede, depois de descobrirmos o roteamento de um pacote na saída eth0 (o externo), substitua as informações de endereço de retorno com as nossas próprias para que os pacotes de retorno cheguem até nós. Além disso, lembre-se de que fizemos isso (como uma tabela de pesquisa que lembra essa conexão).
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Permite que os pacotes que venham da eth1 (a interface interna) saiam da eth0 (a interface externa).
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Use essa tabela de consulta que tínhamos de antes para ver se o pacote que chega na interface externa realmente pertence a uma conexão que já foi iniciada a partir do interno.