# [FTPES] Proftpd et ssl uniquement en local (résolu)

## Ascodas

Salut,

Je mets en place un serveur ftp avec le supprt ssl/tls (après un essai infructueux avec rssh), mais le listage de répertoire ne s'effectue que sur localhost, illustration :

```
[root@amd64 privkey]$ ftp localhost

Connected to localhost (127.0.0.1).

220 ProFTPD 1.3.1rc2 Server (**** Gentoo Box) [::ffff:127.0.0.1]

Name (localhost:thomas): ****

234 AUTH SSL successful

[SSL Cipher DHE-RSA-AES256-SHA]

331 Password required for ****

Password:

230 Connexion reussie pour ****

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

200 PORT command successful

150 Opening ASCII mode data connection for file list

drwxr-xr-x   2 mayo     mayo          392 Oct 24 17:41 divers

drwxr-xr-x   2 mayo     mayo           80 Oct 24 19:18 mayo

226 Transfer complete

ftp> bye

221 Goodbye.

[root@amd64 privkey]$ ftp ****.homelinux.net

Connected to ****.homelinux.net (**.**.**.**).

220 ProFTPD 1.3.1rc2 Server (**** Gentoo Box) [::ffff:192.168.1.2]

Name (****.homelinux.net:thomas): ****

234 AUTH SSL successful

[SSL Cipher DHE-RSA-AES256-SHA]

331 Password required for ****

Password:

230 Connexion reussie pour ****

Remote system type is UNIX.

Using binary mode to transfer files.

[b]ftp> ls

500 Illegal PORT command

ftp: bind: Adresse déjà utilisée[/b]

ftp> bye

221 Goodbye.

[root@amd64 privkey]$ 
```

mon proftpd.conf au niveau SSL :

```
<IfModule mod_tls.c>

    TLSEngine on

    TLSLog /var/log/tls.log

    #TLSProtocol TLSv1

    TLSProtocol SSLv23

    # Are clients required to use FTP over TLS when talking to this server?

    TLSRequired off

    # Server's certificate

    TLSRSACertificateFile /etc/proftpd/privkey/proftpd.cert.pem

    TLSRSACertificateKeyFile /etc/proftpd/privkey/proftpd.key.pem

    # CA the server trusts

    TLSCACertificateFile /etc/proftpd/privkey/ca.crt

    # Authenticate clients that want to use FTP over TLS?

    TLSVerifyClient off

    # Allow SSL/TLS renegotiations when the client requests them, but

    # do not force the renegotations.  Some clients do not support

    # SSL/TLS renegotiations; when mod_tls forces a renegotiation, these

    # clients will close the data connection, or there will be a timeout

    # on an idle data connection.

    TLSRenegotiate required off

  </IfModule>

```

Si vous avez une idée ...

PS : pas de règles iptables.Last edited by Ascodas on Mon Nov 05, 2007 3:26 pm; edited 3 times in total

----------

## Bio

J'ai exactement le même problème que toi, mais avec pure-ftpd

https://forums.gentoo.org/viewtopic-p-4251215.html

----------

## Ascodas

Et bien j'ai lu ton post avec interet ! et en effet nous sommes confrontés au même problème et je vois que tu n'as pas trouvé de solution satisfaisante   :Confused: 

Il y a bien cette piste sur la doc proftpd :

```

Question: I can login using FTPS, but I cannot see any directories. Why not?

Answer: You have most likely configured mod_tls to require SSL/TLS protection for data transfers as well as control commands, by using:

  TLSRequired on

However, if your FTPS client does not expect to handle encrypted data transfers (and directory listings count as data transfers, as they are sent over a data channel), you may see your client appear to hang, waiting for data it can read. Make sure your client is prepared to handle the security requirements you have configured on the server.

You may also see the following appear in the TLSLog on occasion:

  PROT: unwilling to accept security parameter (C), declining

The PROT FTP command is used to set the protection level to be used for data transfers. Some clients send a PROT command with a security parameter of C, meaning "Clear", which effectively tells the server not to protect data transfers. The mod_tls module will refuse the C security parameter if, like above, there is "TLSRequired on" in your proftpd.conf. This case also indicates a disagreement between the client's security expectations and the security policy you have configured on the server.
```

Mais il me semble que c'est, en effet, plus une histoire de redirection de ports.

As tu une difference entre le mode passif/actif du serveur ?

----------

## Ascodas

Bon c'est résolu pour moi :

Avant connection :

 *Quote:*   

> 
> 
> Connexions Internet actives (serveurs et établies)
> 
> Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        Utilisatr  Inode      PID/Program name   
> ...

 

Après connexion :

 *Quote:*   

> Connexions Internet actives (serveurs et établies)
> 
> Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        Utilisatr  Inode      PID/Program name   
> 
> tcp        0      0 *:139                   *:*                     LISTEN      root       6708       3801/smbd           
> ...

 

Donc j'ouvre le 23106 sur mon routeur et ca marche, victoire !

PS : N'importe quoi c'est le PID !!!, mais alors ca marche en FTPES apres avoir bidouillé dans le routeur mais pas encore d'explication avérée.

----------

## Bio

Veinard, pour ma part la redirection de ports n'a rien donné. Je me passe donc de l'authentification SSL à mon grand désespoir

----------

## Ascodas

Si je trouve qque chose qui tiens la route, je post ...

+

PS : si j'ouvre la plage de port de 1 a 65535, le répertoire se liste, mais qqun peut il me dire les consequence pour la sécurité ? et si il y a moyen de touver le port en cause (netstat me semblait une bonne idée ...)

----------

## Bio

Oui avec netstat tu pourras voir quel port est ouvert. J'avais regardé en local, mais si je me rappelle bien ce port changeait constamment...

Après quand à ouvrir tous les ports niveau sécurité c'est simple : tous tes services sont accessibles à l'extérieur. DB, LDAP, web, Samba, etc... Maintenant si tes services sont hyper sécurisés et que tu as un bon firewall pourquoi pas. Mais bon, c'est pas la meilleure des solutions   :Confused: 

----------

## DuF

Il me semble qu'il est possible de spécifier une plage de ports pour le mode passif, histoire de le forcer à taper entre certains ports bien spécifiques, permettant ainsi d'avoir une conf maitrisée de bout en bout.

Par contre je n'ai pas le nom de la directive en tête, mais ça doit se trouver sur le site de proftpd.

----------

## Ascodas

Oui en effet ca semble être fonctionnel en ajoutant la directive PassivePorts [plage de ports] et en ouvrant ces ports sur le routeur.

Merci à vous.

----------

## Ascodas

Un lien qui pourra aider ceux qui utilisent iptables.

http://www.developpez.net/forums/archive/index.php/t-243816.html

----------

