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.
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].
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