J’ai un serveur FTP (proftp) sur un système linux (ubuntu), celui-ci est configuré pour utiliser le mode passif.
Petit souci : ça ne marche pas.
Après avoir cherché quelques heures, je prends une poignée de minutes pour vous donner la solution.
Il faut ajouter une directive pour indiquer l’adresse publique du serveur (ici je triche avec 12.34.145.156)
MasqueradeAddress 12.34.145.156
Dans les virtualhosts, par exemple ceux que l’on range ici : /etc/proftpd/conf.d/virtuals_1464.conf (il me sert pour gérer le port 1464)
####################################################
# 1464
####################################################
<VirtualHost 192.168.100.1>
ServerAdmin informatique@ecolenormalecortot.com
ServerName « FTP serveur GEDDAR »
TransferLog /var/log/proftpd/sftp_1464_xfer.log
PassivePorts 17920 18760
MasqueradeAddress 12.34.145.156
MaxLoginAttempts 30
# Activer SFTP
SFTPEngine Off
…
et non pas dans le fichier de configuration général : /etc/proftpd/proftpd.conf
On peut rapidement deviner (après coup) le problème : lors de la connexion à ce serveur le message d’accueil donne un indice, mon serveur FTP étant derrière un parefeu à l’adresse locale 192.168.100.1
220 ProFTPD 1.3.5e Server (FTP serveur GEDDAR) [192.168.100.1]
Il faudrait en fait avoir :
220 ProFTPD 1.3.5e Server (FTP serveur GEDDAR) [12.34.145.156]
C’est justement l’effet de la directive utilisée.
Comme toujours : observer, il fallait y penser 😉