Como encaminhar portas através de ssh e nat para outra máquina

2

Eu tenho um problema ao usar encaminhamento de porta ssh e nat simultaneamente .

Situação:

A máquina A executa um servidor da Web na porta 8080 A máquina B é um pi de framboesa que funciona como um pequeno roteador. Possui duas interfaces de rede (eth0 e eth1). O eth0 está conectado à LAN e, através disso, à WAN. A eth1 é conectada somente à Máquina A. Ela executa o ddclient para a conexão do dyndns.

Meta:

Eu quero conectar a máquina A com segurança à porta 8080, etc., por meio do encaminhamento de porta ssh.

O que eu tentei:

Na minha máquina local (MacBook), usei:

ssh -L 5903:127.0.0.1:5901 [email protected]

ou

ssh -L 5903:127.0.0.1:5901 pi@machine-b-ip

e eu posso conectar ao servidor vnc na máquina B com (apenas para fins de teste):

vnc://127.0.0.1:5903/

Então, minha suposição era encaminhar a porta 8080 da minha máquina local para a máquina B e "nat" para a máquina A com as regras de iptable:

iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
iptables -A FORWARD --in-interface eth0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 -m tcp --dport 8080 -j DNAT --to-destination 192.168.110.101:8080

Minha outra configuração do iptables era:

iptables -t nat -A PREROUTING -p tcp -i eth0 -m tcp --dport 9090 -j DNAT --to-destination 192.168.114.151:8080
iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
iptables -A FORWARD --in-interface eth0 -s 192.168.178.20 -j ACCEPT
iptables -A FORWARD --in-interface eth0 -j DROP

Eu também habilitei ssh GatewayPorts na máquina B, mas toda vez que eu quiser conectar através de:

http://127.0.0.1:8080/

Eu recebo o erro "conexão recusada" e o log informa que "este serviço não está em execução". Mas se eu me conectar através de:

http://ip-machine-b:8080/

funciona.

Você pode me ajudar, por favor? Eu tentei várias soluções de encaminhamento de porta ssh remoto e local, sobre ssh multi hops e nat etc. mas não consegui obter uma solução de trabalho para mim.

Obrigado antecipadamente, Dominik.

    
por Dominik 31.03.2014 / 13:36

1 resposta

0

Você não deve precisar de todas as regras do Iptables para rotear a sua segunda caixa. você pode fazer uma coisa parecida com o que está fazendo com sua conexão VNC

ssh ssh -L 8081:192.168.x.x:8080 [email protected]

Onde 192.168.x.x é o endereço IP da Máquina A

Depois, você pode abrir um navegador da Web em sua máquina local e se conectar a

 http:127.0.0.1:8081

Isso permitirá que você se conecte ao site interno e o roteamento será tratado pelo ssh. Sua porta local do 8081 será encaminhada através do ssh para o servidor ssh. o servidor enviará a solicitação para MachineA na porta 8080

    
por 16.12.2014 / 21:14