Encapsulando a conexão FTP de casa, onde o servidor aceita apenas IPs locais

11

Preciso acessar um servidor FTP no trabalho, mas o servidor aceitará apenas IPs locais. Não consigo acessá-lo na minha máquina doméstica. Eu pude fazer o ssh na minha máquina de trabalho Unix através do PuTTY e, a partir daí, abrir com êxito uma conexão FTP do console com o servidor FTP.

Eu poderia resolver isso, mas preferiria não, pois é muito complicado para mim. Eu preferiria encapsular uma conexão FTP através da máquina de trabalho via PuTTY, para poder usar meu cliente FTP de escolha, o FileZilla, para atender às minhas necessidades de FTP no servidor. Claro que isso é através da porta 21.

Eu sei que o PuTTY é capaz de encaminhar portas através do ssh, só não tenho certeza de como usá-lo.

Home -> Trabalho -> Servidor.

aleatório
fonte
Não há nada inerentemente diferente em carregar ou fazer download em uma conexão proxy SOCKS. A grande diferença é que sua conexão doméstica à Internet provavelmente terá um desempenho ruim de upload (saída) em comparação com o desempenho de download (entrada). Provavelmente precisaríamos de mais logs para poder diagnosticá-lo.
EightBitTony
Cheguei à conclusão de que provavelmente estou com outro problema completamente e vou trabalhar na criação de uma nova pergunta abordando esse problema específico. Muito obrigado pela sua ajuda EightBitTony!
Ben Jacobson
Pode querer registrar sua conta de falha no servidor com as mesmas credenciais que aqui para recuperar esta pergunta @ben
random

Respostas:

13

Use um proxy SOCKS.

Janela PuTTY

A porta de origem agora é (localmente) um proxy SOCKS. Configure o FileZilla para usá-lo como um proxy SOCKS (veja abaixo). Ele abrirá uma conexão por meio disso para o host ao qual você ssh (sua máquina de trabalho) e, em seguida, se conectará a partir daí, a qualquer endereço IP que você fornecer. Funciona para qualquer coisa com suporte a SOCKS e que inclui FTP.

O restante da configuração do PuTTY permanece o mesmo - configure as portas (como mostrado) e conecte a sessão do PuTTY à sua máquina de trabalho via SSH.

Aqui está a aparência da opção FileZilla,

insira a descrição da imagem aqui

Quando você coloca o destino da conexão FTP, use o endereço IP, não o nome do host, porque a resolução do DNS ainda pode ocorrer localmente e você não deseja isso.

A coisa toda é segura e invisível - parece uma conexão SSH básica com qualquer outra coisa na rede.

NB: Se você quiser fazer isso na linha de comando, poderá usar os PuTTY plink.exepara fazer o seguinte,

plink -ssh -D 9090 [email protected]

consegue a mesma coisa sem ter que criar um perfil PuTTY ou usar a GUI.

EightBitTony
fonte
Eu gosto dessa maneira de fazer um pouco mais do que a minha resposta. Você pode definir o proxy SOCKS no filezilla em "Proxy Genérico" e lembre-se de usá-lo no "modo passivo".
Philip Couling
2

Em primeiro lugar, é muito mais fácil / sem dúvida melhor usar o SCP. Como você tem SSH, seria comum você também ter acesso ao SCP. Mas eu não conheço sua rede, então, para a pergunta ...

Em primeiro lugar, verifique se o seu cliente está configurado para usar FTP no modo ATIVO. Eu queria sugerir o uso do modo passivo, mas você não pode controlar quais portas serão usadas.

Em segundo lugar, limite o número de portas que seu cliente FTP usará no modo ativo até um punhado. Menos que 10 seria bom. E aqui está o porquê.

Em terceiro lugar, crie portas remotas para todas essas portas.

Isso deve fazê-lo funcionar

Philip Couling
fonte
2

Veja como navegar no sistema de arquivos do servidor interno (atrás do NAT), com o FileZilla ou com o Nautilus File Manager - usando SFTP (sessão SSH na porta TCP 22), através do servidor de gateway (fora do NAT):

  1. Primeira execução no Terminal:

sudo ssh -L 9090: {IP ou nome do host do servidor interno}: 22 raiz @ {IP ou nome do host do servidor de gateway}

  1. Em seguida, crie uma nova conexão.

    No FileZilla:

    • Anfitrião: sftp: //127.0.0.1
    • Nome de usuário / senha: as credenciais do servidor interno .
    • Porta: 9090 (mesma porta que no comando do terminal).

Ou no Nautilus:

sftp://127.0.0.1:9090/, você será solicitado a inserir credenciais internas do servidor.

Agora você deve poder navegar no sistema de arquivos do servidor interno.


insira a descrição da imagem aqui

Nota: Como você pode ver, não é necessário configurar o Proxy SOCKS no Putty nem no FileZilla :)

Noam Manos
fonte
Obrigado! Era exatamente o que eu estava procurando!
lorenzo-s