Para acesso geral, você terá que usar o MASQUARADE / SNAT (dependendo de seu endereço IP em C ser dinâmico ou estático).
Então, digamos que a situação atual é o seu computador A tem endereço IP estático a.a.a.a
, e seu computador B tem endereço IP estático b.b.b.b
. Ambos têm gateway padrão para o computador C . E o Someserver.com tem o endereço IP estático r.r.r.r
e a porta secreta é pppp
.
Você configuraria o computador C como roteador, que teria sua rota padrão para a Internet interface C (ele já faz isso, seja por configuração estática ou sendo dinamicamente configuração via PPPoE, etc). Isso por si só realizará 1.
Agora, você tem duas possibilidades:
-
faça o roteador computador A também. Então você muda a configuração do computador B para que sua rota padrão seja via computador A (e não computador C como antes), e configure o computador A assim:
iptables -t nat -s b.b.b.b -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a
que faria todos os pacotes TCP do IP de origem
b.b.b.b
irem ao IP de destinor.r.r.r
e a porta de destinopppp
fingirem que eles vêm dea.a.a.a
, realizando3
e tráfego de someserver.com retornará ao endereço de origem (a.a.a.a
), que seria decodificado pelo computador A e enviado de volta ao computador B . (realizando assim4
)Isso é mais fácil, mas requer que o computador B esteja executando o sistema operacional capaz de executar essas políticas de NAT.
-
altere o computador A para que o IP privado, como
10.0.1.100/24
e computador B , tenha o IP% privado10.0.2.100/24
. Então, no computador C , faça:ip addr add a.a.a.a/nn dev ifaceC ip addr add b.b.b.b/nn dev ifaceC iptables -t nat -s 10.0.1.100 -j SNAT --to a.a.a.a iptables -t nat -s 10.0.2.100 -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a iptables -t nat -s 10.0.2.100 -j SNAT --to b.b.b.b
em que
nn
é sua máscara de rede eifaceC
é o nome da sua interface C . Isso colocaria computador A e computador B em intervalos privados, permitindo assim que o computador C se conecte ao computador A paraa.a.a.a
(para que se comporte como antes) e NAT computador B paraa.a.a.a
(se dst =r.r.r.r
, dport =pppp
condição seja atendida) ou parab.b.b.b
(caso contrário, ).
Isso não requer nenhum suporte especial em computador A nem computador B , mas os coloca atrás de NAT , que pode afetar algumas outras coisas.
E, é claro, nesta idade, deve-se mencionar que acima só funcionará para bons endereços IPv4 ( o último dos quais são sendo rapidamente usado ) e não em IPv6