{{tag>sysadmin netadmin ftp todo}}
====== Serveur FTP : mode actif ou passif ======
Les modes (actif ou passif) désignent les deux **modes de transfert de données** entre le client et le **serveur FTP**.
C'est coté client qu'on spécifie quel mode sera utilisé pour les transferts de données entre le client et le serveur via une commande spécifique du protocole FTP.
===== Configuration du mode passif =====
Côté serveur, on peut en général configurer quelle plage de ports le serveur utilisera en mode passif. Ici on souhaite restreindre cette plage aux ports [49300, 49400].
===== Transfert en mode passif =====
==== Pare-feu côté client ====
En général le pare-feu du poste client est configuré pour autoriser les connexions initiées par le client lui-même. Dans ce cas, il n'y a pas de configuration spécifique à apporter côté client.
Pour les configurations plus restrictives, on peut cependant avoir besoin d'autoriser la plage de ports configurée pour le mode passif sur le serveur (pour l'exemple port 49300 à 49400). Pour cet exemple le serveur FTP à l'adresse IP 192.168.0.50
# Ajout d'une règle à netfilter via UFW autorisant le trafic du client vers le port de commande
# du serveur FTP (par défaut 21)
sudo ufw allow out log proto tcp from any to 192.168.0.50 port 21 comment 'Allow FTP to 192.168.0.50'
# Ajout d'une règle à netfilter via UFW autorisant les ports
sudo ufw allow out log proto tcp from any to 192.168.0.50 port 49300:49400 comment 'Allow FTP passive mode to 192.168.0.50'
Pour utiliser le mode passif, une fois connecté au serveur FTP, depuis le client, **il faut préciser qu'on utilise le mode passif**:
ftp ftp.example.com
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode
150 Starting data transfer.
-r--r--r-- 1 ftp ftp 62286 Mar 31 11:55 file_example.xml
. . .
226 Operation successful
===== Références =====
* https://fr.strephonsays.com/active-ftp-and-vs-passive-ftp-1233
* https://www.wistee.fr/serveur-ftp/ftp-actif-passif.html