Bonsoir,
Nico a écrit :
> Bonjour tout le monde.
>
> Voilà, j'ai un serveur ftp qui est lancé sur le port 21000. Afin de
> faire des tests, je me suis connecté en ssh sur la machine d'un copain
> et j'ai lancé la commande "ftp mon_IP 21000". Là pas de problèmes, je me
> connecte, je met mes identifiants et c'est bon.
> Par contre c'est lorsque je tape la commande "ls" que là ça passe pas =>
> "500 Illegal PORT command". Je lance mon serveur avec le port 21, et là
> avec un "ls" pas de problèmes.
> Donc apparement il associe le port 21 avec cette commande mais je ne
> comprend pas pourquoi car j'ai pourtant précisé que je voulais me
> connecter sur le port 21000 ce qu'il semble avoir compris puisque je
> peux le faire alors qu'en précisant le port 21 ça ne marche pas.
>
> Alors par contre quand je passe en mode passif là pas de problème à
> condition que je désactive le firewall du serveur ... donc le mode
> passif ne me sert pas à grand chose.
>
> Quelq'un a-t-il une explication ?
Oui, beaucoup... ;)
Première chose, tu vas lire cette très bonne doc qui explique le
protocole FTP :
http://christian.caleca.free.fr/ftp.html . C'est en
Français, et c'est très bien écrit. Tu comprendras ce que sont les modes
passifs et actifs.
> et j'ai lancé la commande "ftp mon_IP 21000". Là pas de problèmes, je me
> connecte, je met mes identifiants et c'est bon.
Jusque là, c'est normal, car toutes ces informations ne passent QUE par
le port 21000 (ou le "21" lorsque tu utilises la configuration standard).
> Par contre c'est lorsque je tape la commande "ls" que là ça passe pas =>
> "500 Illegal PORT command".
Je dirais que c'est peut-être ton serveur FTP qui a été configuré afin
de refuser les transmissions en mode ACTIF.
> Je lance mon serveur avec le port 21, et là
> avec un "ls" pas de problèmes.
Est-ce que ton ami à un firewall ? Si c'est le cas, c'est ce FW qui
refuse les connexions ("actives") ayant les 3 caractéristiques suivantes :
- connexions lancées par le serveur FTP
- depuis le port 20999 du serveur FTP
- à destination du port, indiqué par la commande "PORT", du client
Si ton ami est sous Linux et qu'il utilise "netfilter" pour se
protéger, dit-lui :
- de décharger le module "ip_conntrack_ftp" ("rmmod ip_conntrack_ftp" en
temps que root)
- de recharger ce module avec le paramètre ports=21,21000 ("modprobe
ip_conntrack_ftp ports=21,21000")
- et là, cela devrait marcher.
> Donc apparemment il associe le port 21 avec cette commande mais je ne
> comprend pas pourquoi car j'ai pourtant précisé que je voulais me
> connecter sur le port 21000 ce qu'il semble avoir compris puisque je
> peux le faire alors qu'en précisant le port 21 ça ne marche pas.
Les firewall connaissent le protocole FTP. Ceux un peu moderne sont
capable d'analyser ce qui passe sur le port 21, et ouvrent, coté client,
les ports à la demande (ceux indiqués par la commande "PORT"). Par
contre, les moins évolués acceptent tout ce qui arrive depuis le port 20
(20 = 21 - 1)
> Alors par contre quand je passe en mode passif là pas de problème à
> condition que je désactive le firewall du serveur ... donc le mode
> passif ne me sert pas à grand chose.
Ouaou.... C'est impressionnant comme déduction !!! Bon, je ne vais pas
me lancer dans une grande explication sur l'intérêt du mode passif (si
tu étais derrière un routeur qui fait du NAT, tu comprendrais l'intérêt
! :)), surtout que je j'ai déjà écrit une explication : En attachement,
tu trouveras 2 extraits d'une doc que j'ai écrit sur la configuration
de ProFTPD en mode SSL/TLS. Ce n'est que le premier jet de cette doc
(elle fait 70 pages...), donc il y a quelques corrections à faire. Mais
si tu lis tout, tu comprendras à quoi sert le mode passif.
A plus,
Olivier
--
~~~~~~~ _____/\_____ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix / _ \/ _ \ Olivier Allard-Jacquin
/ / \ / \ \ Web: http://olivieraj.free.fr/
/___/ / \ \___\ Mail: olivieraj@???
~~~~ ///// ///\\\ \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!