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

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

A configuração que tenho é esta:

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

client01pode acessar a porta 9300 em server01(conexão A). server01só pode acessar a porta 9300em server02(conexão B)via ssh. Qual é a melhor maneira de fazer com que todo o tráfego na porta 9300server01para a 9300porta server02?

Posso fazer isso com sucesso com um túnel ssh de client01to server01to server02, mas não quero ter que executar ssh on client01. Quando faço ssh server01para server02encaminhar a porta 9300 ( ssh -g -L9300:localhost:9300 server02on server01), não funciona - estou usando o comando errado?

EDIT: adicionado que server02 só pode ser acessado via ssh

Responder1

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 de server01 por x.x.x.xe o endereço de server02 por y.y.y.ye pronto.

Tudo isso pressupõe, é claro, que você esteja executando o iptables no server01. Isso também pressupõe que o server02 esteja usando o server01 para rotear o tráfego de volta para a Internet. Se o server02 não estiver, isso não significa fazer o que você deseja.

Edite considerando a conectividade somente SSH entre as máquinas:

Sua linha de comando para o encaminhamento de porta SSH parece correta, exceto que você precisa de um espaço entre "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 em sua cadeia INPUT do iptables na tabela de filtros ( iptables -L INPUT) para ter certeza de que o tráfego será permitido.

Você também precisará que esse túnel seja mantido persistentemente.

informação relacionada