Qual é a melhor maneira de encaminhar o tráfego em uma porta específica para outra máquina?

1

A configuração que tenho é esta:

[client01] <-A-> [server01] <-B-> [server02]

client01 pode acessar a porta 9300 em server01 (conexão A ). server01 só pode acessar a porta 9300 on server02 (conexão B ) via ssh . Qual é a melhor maneira de fazer todo o tráfego na porta 9300 para server01 ir para a porta 9300 on server02 ?

Eu posso fazer isso com sucesso com um túnel ssh de client01 para server01 para server02 , mas não quero ter que executar ssh em client01 . Quando eu ssh de server01 a server02 porta de encaminhamento 9300 ( ssh -g -L9300:localhost:9300 server02 on server01 ), isso não funciona - estou usando o comando errado?

EDIT: adicionado que server02 só é acessível via ssh

    
por Ankit 18.10.2012 / 05:27

1 resposta

3

Você pode fazer isso com uma regra DNAT do iptables - algo como:

iptables -A PREROUTING -p tcp -d x.x.x.x --dport 9300 -j DNAT --to-destination y.y.y.y:9300

Substitua o endereço IP do server01 por x.x.x.x e o endereço do server02 por y.y.y.y e você está definido.

Isso tudo supõe, claro, que você está executando o iptables no server01. Isso também pressupõe que server02 está usando server01 para rotear o tráfego de volta para a Internet. Se server02 não é, então isso não está fazendo o que você quer.

Edite à luz da conectividade somente SSH entre as máquinas:

Sua linha de comando para a porta SSH parece bem, exceto que você precisa de um espaço entre o "L" e "9300". Você também precisará ter certeza de que o computador server01 aceitará conexões de entrada na porta 9300. Dê uma olhada na sua cadeia INPUT do iptables na tabela de filtros ( iptables -L INPUT ) para ter certeza de que o tráfego será permitido.

Você precisará manter esse túnel persistentemente também.

    
por 18.10.2012 / 05:56