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.


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 you@your.work.laptop.example

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


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


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 :)


Obrigado! Era exatamente o que eu estava procurando!
— lorenzo-s
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.