# [proftpd] MLSD, PassivePorts et Livebox (résolu)

## pti-rem

Bsr tous

J'essaie de mettre à disposition un service FTP avec proftpd (avec un certificat TLS maison pour le chiffrement)

Le message de connexion d'un client indique en abrégé :

 *Le client Filezilla wrote:*   

> Statut : Le serveur a envoyé une réponse passive avec une adresse non routable. Adresse remplacée par celle du serveur.
> 
> Commande : MLSD
> 
> Erreur : Connection interrompue après 20 secondes d'inactivité
> ...

 

C'est un grand classique auquel je ne suis pas habitué. Il me semble.

J'ai établi une règle NAT dans ma box pour diriger le port 2221 en entrée sur mon serveur protfpd qui écoute sur le port 21

On a aussi essayé de faire du 21 de bout en bout et c'est pareil.

Je ne sais pas trop quoi faire.

```
n73sm ~ # emerge -pv proftpd

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] net-ftp/proftpd-1.3.5b::gentoo  USE="acl caps doc ipv6 ldap ncurses nls pam pcre ssl tcpd -authfile -ban -case -clamav -copy -ctrls -deflate -diskuse -dso -dynmasq -exec -ident -ifsession -ifversion -kerberos (-libressl) -log_forensic -memcache -msg -mysql -postgres -qos -radius -ratio -readme -rewrite (-selinux) -sftp -shaper -sitemisc -snmp -softquota -sqlite {-test} -trace -unique_id -vroot -xinetd" LINGUAS="en_US fr_FR -bg_BG -it_IT -ja_JP -ko_KR -ru_RU -zh_CN -zh_TW" 0 KiB
```

```
# This is a sample ProFTPD configuration file for Gentoo Linux (rename

# it to 'proftpd.conf' for actual use). It establishes a single server

# and a single anonymous login.

ServerName "ProFTPD Default Server"

ServerType standalone

DefaultServer on

RequireValidShell off

AuthPAM off

AuthPAMConfig ftp

## AJOUTS

<IfModule mod_facts.c>

    FactsAdvertise off

</IfModule>

<IfModule mod_ctrls_admin.c>

    AdminControlsEngine off

</IfModule>

##

# Listen on the standard FTP port 21.

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.

# FROM THE END

PassivePorts                  49152 49156 

# 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           IP.WAN.POINTÉE.DOT

# New directories and files should not be group or world writable.

Umask 022 022

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

MaxInstances 30

# The server will run under ftp/ftp.

User ftp

Group ftp

# Every FTP sessions is "jailed" into the user's home directory.

DefaultRoot ~

# Generally files are overwritable.

AllowOverwrite on

AllowStoreRestart on

# Autoriser la reprise d'un upload de fichier (resuming)

AllowRetrieveRestart on

# Autoriser la reprise d'un téléchargement de fichier

# Pour les commandes RETR (téléchargement)

TransferRate    RETR            600:0

SystemLog /var/log/proftpd.log

TransferLog /var/log/xferlog

# Disallow the use of the SITE CHMOD command.

<Limit SITE_CHMOD>

  DenyAll

</Limit>

<Limit LOGIN>

    AllowUser untel

    AllowUser unautre

    DenyAll

</Limit>

<Limit WRITE>

   DenyAll

</Limit>

<Directory /home/untel>

   <Limit STOR RNFR DELE>

      DenyAll

   </Limit>   

</Directory>

<Directory /home/unautre>

   <Limit STOR RNFR DELE>

      DenyAll

   </Limit>   

</Directory>

TLSEngine                         on                               # Basicly to turn on TLS/SSH

TLSLog                            /var/log/tls.log                 # Path to logfile

TLSProtocol                       SSLv23                           # Wich Types of SSL that is approved

TLSOptions                        NoCertRequest                    # In here to make client less buggy.

TLSRSACertificateFile             /etc/ssl/certs/proftpd.cert.pem  # Path to certificate file

TLSRSACertificateKeyFile          /etc/ssl/certs/proftpd.key.pem   # Path to key file

TLSVerifyClient                   off                              # Turned off to accept clent certificates without verifying it "Less buggy"

TLSRequired                       on                               # Wether Clients has to have SSL/TLS to be able to logged in.

                                                                   # Set this to "off" if you don't want client's to have to use SSL/TLS
```

Last edited by pti-rem on Thu Jun 16, 2016 12:12 pm; edited 8 times in total

----------

## pti-rem

https://forum.ubuntu-fr.org/viewtopic.php?pid=9182001#p9182001

 *cedricbab #13 Le 09/05/2012, à 07:53 wrote:*   

> Ce problème vient de la mauvaise reconnaissance de l'instruction MLSD par proftpd.
> 
> La solution est ici: http://forum.ubuntu-fr.org/viewtopic.php?pid=9095201
> 
> Il faut fermer et réouvrir filezilla pour qu'il envoie l'instruction LIST à la place de MLSD.

 

Accueil » Forum » Installation de logiciels et changements de version » Filezilla pas de connexion

https://forum.ubuntu-fr.org/viewtopic.php?pid=9095201

 *Gouzi31 #5 Le 03/05/2012, à 21:02 wrote:*   

> Luttant depuis hier sur ce problème j'ai enfin trouvé une solution. Le problème vient en effet de la commande MLSD qui est utilisé par filezilla alors que d'autres clients utilisent LIST (qui fonctionne).
> 
> J'ai donc trouvé une astuce qui indique au client qu'il doit exécuter LIST et pas MLSD. Le site suivant (en anglais) explique l'installation et la configuration d'un serveur ftp tutorial.
> 
> Pour résumer il suffit d'ajouter les lignes suivantes dans le fichier de configuration de proftpd ou en utlisant l'onglet configuration dans gadmin-proftpd
> ...

 

J'ai ajouté aussi (il faut que je recherche pourquoi, je ne me souviens plus):

```
<IfModule mod_ctrls_admin.c>

    AdminControlsEngine off

</IfModule>
```

----------

## pti-rem

Je me trompais partiellement sur l'interprétation de mon problème.

C'est la Livebox 3 et son firewall qui me pose problème pour ouvrir une plage de ports TCP pour proftpd. (PassivePorts 49152 65534)

Je ne peux pas me permettre de personnaliser ce firewall pour des raisons familiales. Il reste en «moyen»

J'ai donc mis mon l'ip de mon serveur proftpd en DMZ ; alors, tout passe bien maintenant.

Mais j'ai certainement à m'occuper avec iptables... (bonjour)

édition : j'ai vite retiré mon IP locale de la DMZ, rien qu'avec un scanner de ports j'ai compris que c'était risqué. Et que je ne maîtrise pas.Last edited by pti-rem on Mon Jun 13, 2016 5:31 pm; edited 1 time in total

----------

## pti-rem

J'ai réussi à faire fonctionner proftpd pour mes deux clients Filezilla en n'ouvrant que quelques ports (les 5 premiers) dans la plage 49152 - 65534 et en conservant mon firewall de livebox au niveau moyen

----------

## Syl20

Le mode "DMZ" d'une box (de quasiment tous les FAI français, en tout cas) peut en effet s'avérer très dangereux quand on ne sait pas ce qu'il fait, et comment l'utiliser en toute sécurité : il renvoie _toutes_ les requêtes venant de l'extérieur vers l'hôte renseigné, sans aucun filtrage. Très utile quand on a son propre pare-feu, étant donné que le mode bridge n'est que rarement proposé, mais suicidaire sans.

FTP n'est pas copain avec les pare-feu à cause de la séparation des flux "commandes" et "data". Le mode passif (connexions data initiées par le client), couplé aux modules netfilter conntrack_ftp et éventuellement ntp_ftp, permet d'améliorer la situation, mais ça reste assez lourd à gérer.

Je doute qu'une box soit assez "intelligente" pour implanter ce genre de suivi de sessions, en tout cas. Ce qui veut dire qu'elle renverra à ton serveur tous les flux à destination des ports que tu as ouverts, qu'ils soient FTP ou non.

Si tu veux chiffrer les communications, et si tu utilises un client compatible (FileZilla l'est), tu peux utiliser SFTP (SSH) en lieu et place de FTPS. Le gros avantage, c'est qu'il n'y a qu'un seul port TCP (22 par défaut) à ouvrir. L'inconvénient, c'est que si ton serveur SSH est mal paramétré, tu peux laisser un accès en ligne de commande à ton serveur depuis l'extérieur.

----------

## pti-rem

 *Syl20 wrote:*   

> Ce qui veut dire qu'elle renverra à ton serveur tous les flux à destination des ports que tu as ouverts, qu'ils soient FTP ou non. 

 

Mais est-ce réellement potentiellement dangereux pour mon système ; trojan ou rootkit ou que sais-je ?

Et le mode «bridge» (dont je ne dispose pas) ; Il change quoi réellement à la donne ?

Il n'y a rien à l'écoute sur ces 5 ports ; enfin je sais bien que c'est plus compliqué que ça en a l'air.

Du coup, j'ai stoppé le service proftpd et fermé les ports.

Je vais essayer d'étudier SFTP.

Merci Syl20 pour tes explications.

----------

## Syl20

Le risque est minime, puisqu'il faut en effet que quelque chose écoute sur les ports ouverts. Ce qui veut dire, soit qu'il faut qu'une session FTP soit ouverte, soit qu'un logiciel "plaisantin" soit implanté, et actif, sur ton serveur.

Dans le deuxième cas, ton serveur est déjà vérolé. Les mesures préventives sont inutiles, et la suite à donner est un autre sujet.

Dans le premier cas, soit l'attaquant initie lui-même la connexion au serveur, puis exploite le port FTP data ouvert, et de toute façon un pare-feu avec suivi de sessions le laissera faire, soit il utilise une session existante, s'il y en a une, pour entrer, ou il utilise deux adresses IP différentes pour attaquer les ports FTP commandes et data, et c'est là qu'un pare-feu avec suivi de sessions sera plus efficace que la boîte orange... Bref, pas de quoi se mettre martel en tête, si tu n'es pas une grosse entreprise ou une administration.

Pour SFTP, cette page, par exemple, explique bien ce qu'il faut faire. Oublie juste le paragraphe 4.  :Wink: 

Le "mode bridge" (dont, en effet, tu ne disposes pas. À ma connaissance, seul Free le propose, s'il le propose encore...) désactive la fonction routeur de ta box, qui devient un simple modem. Ce qui veut dire, concrètement, que c'est ton serveur qui récupère l'adresse IP publique que ton FAI t'a assignée.

----------

## pti-rem

 *Syl20 wrote:*   

> À ma connaissance, seul Free le propose, s'il le propose encore...

 

Un petit butinage m'a donné à voir que pour la «révolution» Free le propose ; J'ai vu aussi que Numéricable le propose. Après ça dépend des offres et des box évidemment.

J'ai remis en fonction mon proftpd avec les ports TCP initiés par le client en attendant d'étudier SFTP sérieusement.

Le contenu du sujet est suffisant pour quiconque qui veuille bien s'en donner la peine.

Hormis un «zombie» acharné et compétent cherchant après mon IP de WAN je m'estime être à l'abri.

Je ne crois pas avoir de «plaisantin» d'incrusté.

Merci pour tout Syl20

je clôture donc ici.

édition :

 *Syl20 wrote:*   

> Le "mode bridge" (dont, en effet, tu ne disposes pas. À ma connaissance, seul Free le propose, s'il le propose encore...) désactive la fonction routeur de ta box, qui devient un simple modem. Ce qui veut dire, concrètement, que c'est ton serveur qui récupère l'adresse IP publique que ton FAI t'a assignée.

 

Donc c'est l'IP locale qui devient la zone dé-militarisée et il faut assurer avec iptables.

----------

