3 votes

Comment utiliser une IP spécifique avec vsftpd ?

Voici le scénario :

  • Nous avons un serveur AWS Ubuntu Server
  • Ce serveur fonctionne comme un client ftp
  • Maintenant, lorsque nous essayons de nous connecter au serveur ftp de la société XYZ en utilisant ce serveur AWS comme client, il envoie son IP locale lors de la connexion au serveur ftp, ce qui fait que la liste des répertoires ne fonctionne pas.
  • Le journal montre que nous sommes connectés au serveur FTP + nous sommes authentifiés correctement... la liste des ports est réussie + seule la liste des répertoires échoue.
  • nous pouvons fournir une IP spécifique dans le FTP en utilisant filezilla qui sera utilisé en sortant de la passerelle.
  • ici nous ne pouvons pas l'utiliser parce qu'il n'a pas de GUI & il va être utilisé par un php script.
  • Ce problème existait également sous Windows et nous l'avons résolu en donnant une IP élastique à FileZilla. Avant la solution, nous recevions l'erreur et le journal montrait ce qui suit Ceci. ce point est ajouté juste pour vous donner plus de détails. & c'est le même problème avec Ubuntu & nous voulons donner une IP élastique quelque part dans ftp pour que cela commence à fonctionner... nous l'espérons du moins. ;)

Mises à jour récentes

  • veuillez cliquer ici pour le fichier vsftpd.conf.

  • un peu plus de clarification :

    Dans ce cas, la machine "A" est notre serveur FTP (qui est un serveur AWS Ubuntu) pour un usage interne, en raison de nombreux autres processus et données qui sont régulièrement téléchargés sur ce serveur FTP (machine "A") et la machine "B" est le serveur FTP de notre client qui l'utilise pour ses besoins internes. Maintenant, nous devons extraire des données du serveur FTP de nos clients (c'est-à-dire de la machine "B") vers notre serveur (c'est-à-dire la machine "A"), puis les traiter. Après cela, nous devons remettre les données traitées sur le serveur FTP du client (c'est-à-dire la machine "B").

  • Les journaux du pare-feu des clients lorsque nous avons essayé de nous connecter avec la machine "B" comme indiqué dans l'image ci-dessous.

Firewall Log 1

Firewall Log 2

4voto

Cubiq Points 1425

Ajoutez à votre configuration vsftpd (/etc/vsftpd.conf) :

pasv_enable=YES
port_enable=YES
pasv_min_port=<port-start>
pasv_max_port=<port-end>
pasv_address=<your-machine-ip>
pasv_addr_resolve=NO

Dans la configuration de sécurité de votre instance, ouvrez les ports 20-21 pour FTP, activez également les ports passifs dans la plage que vous avez spécifiée ci-dessus (pasv_min/max_port, par exemple : 64000-64100).

Redémarrer vsftpd.

si cela ne fonctionne pas, vous pouvez essayer de remplacer les deux dernières lignes par :

pasv_address=<public-address>
pasv_addr_resolve=YES

4voto

Hugo Vieira Points 1232

C'est ce que je comprends de votre scénario :

  • Vous avez Machine A en Votre réseau avec un Serveur FTP et un Client FTP ;
  • Vous voulez tirer des fichiers de Machine B qui est dans Réseau du client ;
  • Il y a un pare-feu dans Votre réseau et éventuellement dans Réseau du client ;
  • Vous utiliserez un client FTP pour pousser et tirer des fichiers à partir de Machine B .

Network

Le FTP fonctionne selon deux modes :

- Mode actif -

En mode FTP actif, le client se connecte de un port non privilégié aléatoire (N > 1023) au port de commande du serveur FTP, le port 21. Ensuite, le client commence à écouter le port N+1 et envoie la commande FTP PORT N+1 au serveur FTP. Le serveur se reconnecte alors au port de données spécifié par le client (...)

  1. Client FTP dans machine "A" se connecte au serveur FTP dans machine "B" sur le port 21 ;
  2. Machine "A" envoie "ls" à machine "B" mais comme il s'agit d'un mode actif, le résultat de "ls" sera transmis au port N+1 (N>1023) de l'ordinateur. machine "A" ;
  3. Cela échoue parce que le client FTP dans machine "A" demande machine "B" pour se connecter à une IP privée. Même si l'IP est publique, les ports N+1 doivent être ouverts dans le pare-feu.

- Mode passif -

En mode FTP passif, le client initie les deux connexions au serveur, ce qui résout le problème des pare-feu qui filtrent la connexion au port de données entrant du serveur vers le client. Lorsqu'il ouvre une connexion FTP, le client ouvre localement deux ports non privilégiés aléatoires (N > 1023 et N+1). Le premier port contacte le serveur sur le port 21, mais au lieu d'émettre ensuite une commande PORT et de permettre au serveur de se reconnecter à son port de données, le client émet la commande PASV. Le résultat est que le serveur ouvre alors un port non privilégié aléatoire (P > 1023) et renvoie P au client en réponse à la commande PASV. Le client initie alors la connexion du port N+1 au port P du serveur pour transférer des données. (...)

  1. Client FTP dans machine "A" se connecte au serveur FTP dans machine "B" sur le port 21 ;
  2. Machine "A" envoie "ls" à machine "B" ;
  3. Cette fois, le résultat ne sera pas délivré au port N+1 de machine "A" . Au lieu de cela, machine "B" informe machine "A" que le résultat est en attente d'être récupéré dans une IP et un port donnés de machine "B" .
  4. Cela échoue lorsque cette IP est privée et que le port n'est pas ouvert dans le pare-feu du client. C'est pourquoi le client doit configurer son serveur FTP pour utiliser une IP publique et un port connu ( voir la réponse de Cubiq ).

Ce sont les solutions que vous avez :

  1. Utilisation du mode actif (considérant que machine "A" a l'IP 175.41.135.142) : Juste après la connexion et l'authentification, lancez cette commande : PORT 175,41,135,142,14,178 Vous devez ouvrir le port 3762 dans votre pare-feu. Le site ,14,178 provient de la conversion des octets en décimal ((14*256) + 178).
  2. Utilisation du mode passif : Pour que cette méthode fonctionne, le client doit avoir une configuration comme la réponse de Cubiq. Juste après la connexion et l'authentification, lancez cette commande : passif

Maintenant, vous devriez être capable de "ls".

Vous pouvez en savoir plus sur le fonctionnement du FTP ici : http://slacksite.com/other/ftp.html

Cette page est également utile pour comprendre les modes FTP : http://www.deskshare.com/resources/articles/ftp-how-to.aspx

0voto

B B Points 1
  • J'ai reçu le même message lorsque j'ai utilisé File Zilla. J'utilise Azure VM ; Ubuntu v20
  • J'ai activé VSFTPD ; paramètres par défaut (désactivé anon)
  • J'ai créé un nouvel utilisateur
  • J'ai testé ma connexion en utilisant DOS - elle a fonctionné sous DOS. Mais cela ne fonctionne pas dans mon FILE Zilla.
  • J'ai changé mon FILEZilla/Edit/Settings/FTP/PassiveMode/ en 'Fallback to Active Mode' - Cela a fonctionné pour moi.

arbitres : https://ubuntu.com/server/docs/service-ftp , https://ubuntu.com/server/docs/security-users

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X