web-dev-qa-db-fra.com

Comment configurer vsftpd pour fonctionner avec le mode passif

Chaque fois que j'installe vsftpd sur centos, je configure uniquement l'environnement de prison pour les utilisateurs et le reste est la configuration par défaut de 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 la connexion au ftp server sinon je reçois

 Error: Failed to retrieve directory listing

Existe-t-il donc un moyen de modifier n'importe quelle directive dans vsftp.conf fichier et nous pouvons nous connecter en mode passif au serveur?

52
Toqeer

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 restreint à 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, enregistrez l'état de votre pare-feu avec

service iptables save

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

Pour ce faire, c'est CentOS 7, vous devez utiliser le nouveau pare-feu, pas iptables:

Trouvez votre zone:

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

Ma zone est "publique", j'ai donc défini ma zone sur public, j'ajoute la plage de ports, puis 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 se connecte au serveur vsftpd sur le port 21.

  • Le serveur répond au client lui indiquant à quel port se connecter à partir de 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 grande explication des différents ftp modes ici.

90
user9517

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 changer le port de début et de fin, et devez remplacer les xxx par l'adresse IP publique de votre serveur.

De plus, vous devez ouvrir la plage de ports en mode passif dans votre pare-feu. Sur centos, vous pouvez charger le ip_conntrack_ftp module pour gérer les connexions ftp dans votre pare-feu. Éditer /etc/sysconfig/iptables-config et ajoutez ip_conntrack_ftp à l'option IPTABLES_MODULES. Redémarrez ensuite iptables:

/sbin/service iptables restart
25
brain99

À côté de la pasv_enable=YES, spécifiez une plage de ports dans laquelle VSFTP exécutera le mode PASV:

pasv_min_port=50000
pasv_max_port=50999
port_enable=YES

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

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

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

4
user130370

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

Activer le mode passif dans la configuration 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 post vous devez charger le module du noyau "nf_conntrack_ftp" (ce qui était déjà le cas dans CentOS 8) et activer "nf_conntrack_helper" dans les paramètres du noyau :

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

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

net.netfilter.nf_conntrack_helper=1

Lorsque la piste de connexion est activée, il n'est pas nécessaire de configurer davantage les ports passifs dans le pare-feu local.

2
h18c