62 votes

Comment configurer vsftpd pour qu'il fonctionne en mode passif ?

Chaque fois que j'installe vsftpd en centos Je n'ai configuré que l'environnement jail pour les utilisateurs et le reste est une configuration par défaut de l'environnement jail. vsftpd . Je crée un utilisateur et j'essaie de me connecter avec filezila client ftp, mais je n'ai pas pu me connecter en mode passif. Je change toujours le transfer settings en mode actif pour réussir à se connecter à l ftp server sinon j'obtiens

 Error: Failed to retrieve directory listing

Existe-t-il donc un moyen de modifier une directive de la section vsftp.conf et nous pouvons nous connecter en mode passif au serveur ?

107voto

user9517 Points 113163

Pour configurer le mode passif pour vsftpd, vous devez définir certains paramètres dans vsftpd.conf.

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

Cela active le mode passif et le limite à l'utilisation des onze ports pour les connexions de données. Ceci est utile car vous devez ouvrir ces ports sur votre pare-feu.

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

Si après avoir testé tout cela fonctionne, sauvegardez l'état de votre pare-feu avec

service iptables save

qui mettra à jour le /etc/sysconfig/iptables fichier.

Pour faire cela sous CentOS 7, vous devez utiliser le nouveau firewalld, et non iptables :

Trouvez votre zone :

# firewall-cmd --get-active-zones
public
  interfaces: eth0

Ma zone est 'public', donc je mets ma zone en public, j'ajoute la gamme de port, et après cela nous rechargeons :

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

Que se passe-t-il lorsque vous établissez une connexion

  • Votre client établit une connexion avec le serveur vsftpd sur le port 21.

  • Le serveur répond au client en lui indiquant le port auquel il doit se connecter dans la plage spécifiée ci-dessus.

  • Le client établit une connexion de données sur le port spécifié et la session se poursuit.

Il y a une bonne explication des différents ftp. modes ici.

29voto

brain99 Points 1762

Pour activer le mode passif, définissez les options de configuration suivantes dans votre vsftp.conf :

pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx

Vous pouvez bien sûr modifier le port de début et de fin, et vous devriez remplacer les xxx par l'adresse IP publique de votre serveur.

En outre, vous devez ouvrir la plage de ports du mode passif dans votre pare-feu. Sous centos, vous pouvez charger le fichier ip_conntrack_ftp pour gérer les connexions ftp dans votre pare-feu. Modifier /etc/sysconfig/iptables-config et ajoutez ip_conntrack_ftp à l'option IPTABLES_MODULES. Ensuite, redémarrez iptables :

/sbin/service iptables restart

8voto

quanta Points 49664

A côté de la pasv_enable=YES spécifier une plage de ports dans laquelle VSFTP fonctionnera en mode PASV :

pasv_min_port=50000
pasv_max_port=50999
port_enable=YES

N'oubliez pas de configurer iptables pour autoriser la transmission de paquets sur ces ports :

iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT

6voto

Logan Points 1064

J'ai dû suivre les étapes suivantes pour que le mode passif de vsftp fonctionne sur CentOS 8 :

Activer le mode passif dans la configuration de vsftpd /etc/vsftpd/vsftpd.config :

pasv_enable=Yes
pasv_min_port=50000
pasv_max_port=50999

Activez le service ftp dans firewalld :

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

Comme mentionné dans un autre poste vous devez charger le module du noyau "nf_conntrack_ftp" (ce qui était déjà le cas dans CentOS 8) et activez "nf_conntrack_helper" dans les paramètres du noyau. :

echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper

Ajoutez cette ligne à /etc/sysctl.conf (o /etc/sysctl.d/10-nf_conntrack_helper.conf cuando /etc/sysctl.d/ est présent) pour un paramètre persistant de redémarrage :

net.netfilter.nf_conntrack_helper=1

Lorsque le suivi des connexions est activé, il n'est pas nécessaire de configurer les ports passifs dans le pare-feu local.

4voto

Généralement, ce n'est pas le serveur ftp, vsftpd, mais le pare-feu comme iptable qui empêche l'utilisation du mode passif (bloquant la connexion tcp nécessaire au transfert de données).

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