Proftpd - Erreur 425 No Route To Host en TLS

Salut à tous,

Voilà, je me configure un serveur PROFTPD qui fonctionne parfaitement lorsque je n’active pas les fonctions TLS dans proftpd.conf.
Néanmoins, dès que j’active les fonctions TLS, impossible pour moi d’afficher les dossiers sur mon client Filezilla, je rencontre une erreur 425 : No Route To Host.

Voici mon fichier proftpd.conf :

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6				off
# If set on you can experience a longer connection delay in many cases.
IdentLookups			off

ServerName			"Debian"
ServerType			standalone
DeferWelcome			off

MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayLogin                    welcome.msg
DisplayChdir               	.message true
ListOptions                	"-l"

DenyFilter			\*.*/

# Use this to jail all users in their homes 
DefaultRoot			~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RootLogin			off
RequireValidShell		off

# Port 21 is the standard FTP port.
Port				21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                  49152 65534

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress		1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			30

# Set the user and group that the server normally runs at.
User				proftpd
Group				nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask				022  022
# Normally, we want files to be overwriteable.
AllowOverwrite			on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd		off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder			mod_auth_pam.c* mod_auth_unix.c

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile			off

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on

# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime.  If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default. 
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf

#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
#   User				ftp
#   Group				nogroup
#   # We want clients to be able to login with "anonymous" as well as "ftp"
#   UserAlias			anonymous ftp
#   # Cosmetic changes, all files belongs to ftp user
#   DirFakeUser	on ftp
#   DirFakeGroup on ftp
# 
#   RequireValidShell		off
# 
#   # Limit the maximum number of anonymous logins
#   MaxClients			10
# 
#   # We want 'welcome.msg' displayed at login, and '.message' displayed
#   # in each newly chdired directory.
#   DisplayLogin			welcome.msg
#   DisplayChdir		.message
# 
#   # Limit WRITE everywhere in the anonymous chroot
#   <Directory *>
#     <Limit WRITE>
#       DenyAll
#     </Limit>
#   </Directory>
# 
#   # Uncomment this if you're brave.
#   # <Directory incoming>
#   #   # Umask 022 is a good standard umask to prevent new files and dirs
#   #   # (second parm) from being group and world writable.
#   #   Umask				022  022
#   #            <Limit READ WRITE>
#   #            DenyAll
#   #            </Limit>
#   #            <Limit STOR>
#   #            AllowAll
#   #            </Limit>
#   # </Directory>
# 
# </Anonymous>

# Include other custom configuration files
Include /etc/proftpd/conf.d/

Merci ! :smiley:

Y a-t-il un dispositif qui fait du NAT entre le client et le serveur ?
Le chiffrement empêche le NAT de fonctionner automatiquement avec le protocole FTP.

Bonjour et merci !
Mon serveur se trouve dans le réseau OVH, mais la connexion non sécurisée au FTP fonctionne, ce qui est étonnant

Cela ne me dit pas s’il y a du NAT entre le client et le serveur.
Le poste client est-il sur un réseau derrière un routeur NAT ou un pare-feu ?
Y a-t-il un pare-feu sur le client ou le serveur ?

Pas tellement. La plupart des NAT et pare-feu à état savent gérer le FTP non chiffré en examinant le contenu en clair de la connexion de commande, ce qui est impossible avec une connexion chiffrée.

Utilises-tu le mode FTP passif ou actif ? Je ne le vois pas dans le fichier de configuration du serveur. D’après le message d’erreur qui semble provenir du serveur et non du client je dirais mode actif, mais ce n’est pas le plus courant. Depuis un client derrière un NAT le mode passif passerait mieux.

Ah au temps pour moi,

Le poste client est en effet derrière un pare-feu. Et il y a un pare feu iptables sur le serveur et un pare-feu sur le client.
J’ai testé le mode passif et le mode actif mais aucun des deux ne me permet d’afficher le contenu de mes dossiers.

Mais la connexion et l’authentification fonctionnent ?
Confirmes-tu que le message d’erreur ci-dessus est en mode actif ?
Que donne le mode passif ? Cela ne peut pas être la même erreur.

La connexion et l’authentification fonctionnent sans souci.
Le message d’erreur ci-dessus est bien en mode actif.
L’erreur en mode passif est :

Réponse :	227 Entering Passive Mode (142,4,213,22,147,199).
Commande :	MLSD
Erreur :	Connection interrompue après 20 secondes d'inactivité
Erreur :	Impossible de récupérer le contenu du dossier

Je ne sais pas dire si cette erreur de time-out se produit avant, pendant ou après l’établissement de la connexion de données passive. Sur le serveur, il faudrait définir une plage de ports passifs dans la config de proftpd et l’autoriser en entrée dans les règles iptables, et le cas échéant en sortie sur le client.

Si tu veux essayer de faire marcher le mode actif, il faut

  • dans filezilla, fixer une plage de ports passifs
  • dans le routeur, rediriger cette plage de ports TCP vers l’adresse IP privée du client
  • dans le pare-feu du client, autoriser cette plage de ports TCP en entrée

Entendu, je vais tester ces différents points et voir ci cela fonctionne.
Si cela ne passe pas, je resterais en FTP normal sans TLS.
Merci !