Port Forwarding entre 2 máquinas da Internet

3

Este é o meu cenário:

Configuração

Existem 3 máquinas:

A : na internet: tem ip ( a.a.a.a ), tem porta pa open

B : meu servidor / gateway: possui ip ( b.b.b.b ), tem porta pb open

C : na internet: tem ip ( c.c.c.c ), tem porta pc open

Restrições

O proprietário da máquina A oferece um serviço pela porta pa que deve ser acessado na máquina C via porta pc . O problema é que o proprietário de A só pode permitir a conexão direta com o meu servidor, a máquina B na porta pb .

Note que A e C estão na internet , então, na verdade, tenho que atuar como um gateway entre duas máquinas na internet (a literatura que encontrei em a maioria dos documentos de firewall preocupa-se em atuar como um gateway entre a internet e sua rede local ).

Extras

A máquina B está executando o OpenSuse 11.4

Requisitos

Minha tarefa é garantir que eu forneça à máquina C o serviço oferecido por A através do meu servidor B , de forma que o tráfego de A:pa acabe em C:pc e o tráfego de C:pc acaba em A:pa .

Então, como posso conseguir isso, digamos, usando iptables ou outro utilitário Linux / Unix? É mesmo possível?

Solução Hipotética:

Aqui está uma ideia que tenho em mente, mas não tenho certeza se é legítima ou faz sentido:

iptables -t nat -A PREROUTING -p tcp --source a.a.a.a --source-port pa \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination c.c.c.c:pc

e

iptables -t nat -A PREROUTING -p tcp --source c.c.c.c --source-port pc \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination a.a.a.a:pa
    
por nemesisfixx 14.03.2013 / 19:21

1 resposta

1

Estou assumindo que C está se conectando a A: pa (não está bem claro). Você precisa executar tanto DNAT quanto SNAT em B para essas conexões de C:

iptables -t nat -A PREROUTING -p tcp -s c.c.c.c -d b.b.b.b --dport pb -j DNAT --to-destination a.a.a.a:pa
iptables -t nat -A POSTROUTING -p tcp -d a.a.a.a --dport pa -j MASQUERADE
    
por 14.03.2013 / 19:35