Tunnellisation de la connexion FTP depuis le domicile où le serveur accepte uniquement les adresses IP locales

11

J'ai besoin d'accéder à un serveur FTP au travail, mais le serveur n'acceptera que les adresses IP locales. Je ne peux pas y accéder depuis ma machine domestique. J'ai pu ssh dans ma machine de travail Unix via PuTTY et à partir de là, j'ai réussi à ouvrir une connexion FTP de console au serveur FTP.

Je pourrais travailler à travers cela, mais je préférerais ne pas le faire car c'est très lourd pour moi. Je préfère tunneler une connexion FTP via la machine de travail via PuTTY afin que je puisse utiliser mon client FTP de choix, FileZilla, pour répondre à mes besoins FTP sur le serveur. Bien sûr, c'est via le port 21.

Je sais que PuTTY est capable de rediriger les ports via ssh, je ne sais pas comment l'utiliser.

Accueil -> Travail -> Serveur.

aléatoire
la source
Il n'y a rien de fondamentalement différent dans le téléchargement contre le téléchargement via une connexion proxy SOCKS. La grande différence est que votre connexion Internet à domicile est susceptible d'avoir de mauvaises performances de téléchargement (sortant) par rapport aux performances de téléchargement (entrantes). Nous aurions probablement besoin de plus de journaux pour pouvoir le diagnostiquer.
EightBitTony
Je suis arrivé à la conclusion que je suis probablement sur un autre problème entièrement et travaillerai sur la création d'une nouvelle question traitant de ce problème spécifique. Merci beaucoup pour votre aide EightBitTony!
Ben Jacobson
Pourrait vouloir enregistrer votre compte Server Fault avec les mêmes informations d'identification qu'ici afin de récupérer cette question @ben
random

Réponses:

13

Utilisez un proxy SOCKS.

Fenêtre PuTTY

Le port source est maintenant (localement) un proxy SOCKS. Configurez FileZilla pour l'utiliser comme proxy SOCKS (voir ci-dessous). Il ouvrira une connexion via celle-ci à l'hôte vers lequel vous vous connectez (votre machine de travail), puis se connectera à partir de là, à n'importe quelle adresse IP que vous lui fournissez. Fonctionne pour tout ce qui prend en charge SOCKS et qui comprend FTP.

Le reste de la configuration PuTTY reste le même - configurez les ports (comme indiqué), puis connectez cette session PuTTY à votre machine de travail via SSH.

Voici à quoi doit ressembler l'option FileZilla,

entrez la description de l'image ici

Lorsque vous définissez la cible de la connexion FTP, utilisez l'adresse IP et non le nom d'hôte, car la résolution DNS peut toujours se produire localement et vous ne le souhaitez pas.

Le tout est sécurisé et invisible - il ressemble à une connexion SSH de base à tout autre élément du réseau.

NB: Si vous voulez le faire à partir de la ligne de commande, vous pouvez utiliser PuTTY plink.exepour effectuer les opérations suivantes,

plink -ssh -D 9090 [email protected]

il réalise la même chose sans avoir à créer un profil PuTTY ou utiliser l'interface graphique.

EightBitTony
la source
J'aime cette façon de faire un peu plus que ma réponse. Vous pouvez définir le proxy SOCKS dans filezilla sous "Generic Proxy" et n'oubliez pas de l'utiliser en "mode passif".
Philip Couling
2

Tout d'abord, il est beaucoup plus facile / sans doute préférable d'utiliser SCP. Puisque vous avez SSH, il serait courant que vous ayez également un accès SCP. Mais je ne connais pas votre réseau donc à la question ...

Assurez-vous d'abord que votre client est configuré pour utiliser FTP en mode ACTIF. Je voulais suggérer d'utiliser le mode passif, mais vous ne pouvez pas contrôler les ports qui seront utilisés.

Deuxièmement, limitez le nombre de ports que votre client FTP utilisera en mode actif à une poignée. Moins de 10 serait bien. Et voici pourquoi.

Troisièmement, créez des ports distants pour tous ces ports.

Cela devrait le faire fonctionner

Philip Couling
la source
2

Voici comment parcourir le système de fichiers du serveur interne (derrière NAT), avec FileZilla ou avec Nautilus File Manager - en utilisant SFTP (session SSH sur le port TCP 22), via le serveur de passerelle (en dehors de NAT):

  1. Première exécution dans le terminal:

sudo ssh -L 9090: {nom d'hôte du serveur interne ou IP}: 22 root @ {nom d'hôte du serveur de passerelle ou IP}

  1. Créez ensuite une nouvelle connexion.

    Dans FileZilla:

    • Hôte: sftp: //127.0.0.1
    • Nom d'utilisateur / mot de passe: les informations d'identification du serveur interne .
    • Port: 9090 (même port que dans la commande de terminal).

Ou dans Nautilus:

sftp://127.0.0.1:9090/, vous serez invité à saisir les informations d'identification du serveur interne.

Vous devriez maintenant pouvoir parcourir le système de fichiers du serveur interne.


entrez la description de l'image ici

Remarque: Comme vous pouvez le voir, il ne nécessite pas de configurer le proxy SOCKS dans Putty ni dans FileZilla :)

Noam Manos
la source
Merci! C'est exactement ce que je cherchais!
lorenzo-s