Serveur ftp derrière un routeur

sauf que là, ça marche pas …

je me suis créé un serveur ftp, qui marche au poil sur mon réseaux local, par contre si je demande à un pote de se connecter, rien … soit y’a pas du tout d’erreur, ça mouline sans que rien ne s’affiche, soit c’est « connection timed out ». Côté Routeur, j’ai bien rediriger le port 21 vers ce pc mais rien n’y fait, point de connexion :stuck_out_tongue: .

le serveur ftp c’est proftp sous linux. (je peux mettre le fichier .conf si besoin)

une idée d’où ça pourrai venir.

Si jamais proftpd ne supporte pas le PASV (mode passif, ça m’étonnerait, mais bon), ou bien que ton pote se connecte sans utiliser le mode PASV, alors tu as besoin de rediriger aussi le port 20 de ton routeur vers ton linux.

testé, ça marche pas plus

EDIT : en fait, il s’est connecté, son client ftp lui a mit “en attente du message d’accueil” et là, plus deconnecté

poste ton .conf au cas où

alors voila le .conf
[i]

This is a basic ProFTPD configuration file (rename it to

‹ proftpd.conf › for actual use. It establishes a single server

and a single anonymous login. It assumes that you have a user/group

« nobody » and « ftp » for normal operation and anon.

ServerName « Serveur FTP de Kauru »
ServerType standalone
DefaultServer on

Allow FTP resuming.

Remember to set to off if you have an incoming ftp for upload.

AllowStoreRestart on

Port 21 is the standard FTP port.

Port 21

Umask 022 is a good standard umask to prevent new dirs and files

from being group and world writable.

Umask 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. 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 10

Set the user and group that the server normally runs at.

User nobody
Group nogroup

#Definition des droit pour Anonymous
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off
MaxClients 10
<Directory *>

DenyAll




DenyAll


AllowAll


Normally, we want files to be overwriteable.

<Directory /*>
AllowOverwrite on

Needed for NIS.

PersistentPasswd off

Default root can be used to put users in a chroot environment.

As an example if you have a user foo and you want to put foo in /home/foo

chroot environment you would do this:

DefaultRoot /home/foo foo

DefaultRoot ~

[/i]

j’ai viré tout les commentaires

EDIT : j’ai remit tout les commentaires :stuck_out_tongue:

[quote name=‹ KayL › date=’ 26 May 2005, 16:39’]j’ai viré tout les commentaires
[right][post=« 362790 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Et c’est bien dommage :stuck_out_tongue:

bon bah j’ai remit tout les commentaires :stuck_out_tongue:

beaucoup de client ftp se connecte par defaut en PASV
je ne vois pas de référence au passive mode dans ton fichier de conf

d’apres les symptomes “en fait, il s’est connecté, son client ftp lui a mit “en attente du message d’accueil” et là, plus deconnecté” ca ressemble à un probleme de listage car il arrive bien a s’authentifier.

peut etre que la personne qui tente de se connecter devrait tenter en passant le PASV à l’état désactivé.

bon alors essayé en mode passif et non passif
dans la DMZ du routeur, sans son firwall

rien :stuck_out_tongue: , et tout marche impec sur le reseau local

Idée stupide mais qui m’est arrivé : le dossier FTP est il en 666 (rw-rw-rw) :stuck_out_tongue:

Edit : ça marche en local… Bon et il n’y aurais pas iptable installé sur ton linux ? essaie après un

/etc/init.d/iptable stop

[quote name=‹ BlueCat › date=’ 26 May 2005, 17:29’]Idée stupide mais qui m’est arrivé : le dossier FTP est il en 666 (rw-rw-rw) :stuck_out_tongue:

Edit : ça marche en local… Bon et il n’y aurais pas iptable installé sur ton linux ? essaie après un

/etc/init.d/iptable stop

[right][post=« 362804 »]<{POST_SNAPBACK}>[/post][/right][/quote]

ça marche pas, ça me dit « aucun fichier ou repertoire de ce type »

je suis sous mandrake si ça peut aider

EDIT : je pense pas que ca vienne de mon FAI, ca se saurai si free bloquait le port 21

Peut-être que ton FAI bloque le port 21. Peut-être qu’en spécifiant un autre port, ça ira mieux

[quote name=‘ColdFire’ date=’ 26 May 2005, 16:10’]Si jamais proftpd ne supporte pas le PASV (mode passif, ça m’étonnerait, mais bon), ou bien que ton pote se connecte sans utiliser le mode PASV, alors tu as besoin de rediriger aussi le port 20 de ton routeur vers ton linux.
[right][post=“362775”]<{POST_SNAPBACK}>[/post][/right][/quote]

En réalité c’est plutôt le contraire, si ton pote se connecte en mode PASV (c’est à dire qu’il initie le stream de controle et le stream de data) il faut rediriger le port 20. Par contre, si ça marche pas en PORT c’est soit que ton routeur bloque les connections sortantes soit que ton pote bloque les connections entrantes.

Sinon essaye un iptables-save sur ton linux et paste l’output

[quote name=‹ Flyoc › date=’ 27 May 2005, 00:52’]En réalité c’est plutôt le contraire, si ton pote se connecte en mode PASV (c’est à dire qu’il initie le stream de controle et le stream de data) il faut rediriger le port 20. Par contre, si ça marche pas en PORT c’est soit que ton routeur bloque les connections sortantes soit que ton pote bloque les connections entrantes.

Sinon essaye un iptables-save sur ton linux et paste l’output
[right][post=« 362904 »]<{POST_SNAPBACK}>[/post][/right][/quote]

en fait j’ai demandeé a plusieur personne et ça fait la même chose chez tout le monde, mais à mon avis ça vient de mon routeur qui merde quelque part :stuck_out_tongue:

et en français ça donne quoi ? :stuck_out_tongue: je connais un peu linux mais sur le bout des doigts non plus :stuck_out_tongue:

Il faut que tu ajoutes ça dans ton fichier de config:

[quote]# Juste en dessous de ça :
Port                        21

Tu ajoutes ça :

PassivePorts            5000 5100
MasqueradeAddress  ton-ip-externe[/quote]
Ensuite tu rediriges les ports 5000 à 5100 de ton routeur vers ton serveur.
Tu peux changer le range des ports bien-sûr.

En revanche si ton routeur est pourri tu ne pourras plus te connecter en mode PASV depuis le réseau local, mais il suffit de ne pas activer le PASV en local et les personnes à l’exterieur peuvent faire les 2.

pas mieux que Merlin concernant le probleme, par contre je pense que ça ne ferait pas de mal d’aller un peu plus loin dans les explications, avec un petit résumé du fonctionnement du protocole ftp et de la différence entre les modes passifs et actifs.

dans les deux cas, le protocole ftp utilise deux connections: la première est la connection de commandes, qui sert à la communication entre le client et le serveur, et la seconde est la communication de données, qui sert au transfert de fichier en lui même, ainsi qu’à quelques autres petits trucs (comme le transfert de la liste des fichiers d’un dossier)

dans les deux modes (actif et passif), la connection de données est initiée de la même façon: le serveur écoute sur un port (21 ou autre), et le client vient se connecter sur ce port.
la différence est dans la manière de faire la connection de données.

commençons par le mode actif, qui est le mode de fonctionnement “normal” du ftp.
une fois la connection de commandes effectuée, le client va ouvrir un port au hasard (plus ou moins) sur lequel il va écouter, et envoyer le numéro de ce port au serveur.
le serveur va alors aller se connecter au client sur ce port, en utilisant le port sortant 20.
c’est là que souvent il y a confuse, et un certain nombre de gens pensent que c’est le client qui vient se connecter sur le port 20 du serveur, alors que pas du tout.
il ne sert donc à rien d’autoriser le port 20 en entrée dans son routeur/firewall, ça ne marchera pas mieux.

le mode actif est inutilisable lorsque le client est derrière un firewall/routeur: en effet, si le port qu’il a déterminé au hasard n’est pas ouvert/redirigé, le serveur ne va pas réussir à s’y connecter et tout transfert de fichier sera impossible.

le mode passif est fait pour remédier à cela: au lieu que le client soit obligé d’ouvrir un port, c’est le serveur qui en ouvre un second, déterminé au hasard également (dans une certaine fourchette dépendant des serveurs, qui est parfois configurable: en l’occurence 5000 à 5100 dans l’exemple de Merlin).
il envoit le numero de ce port au client, qui vient s’y connecter.
le probleme est alors évident: si le serveur est derrière un firewall/routeur qui ne redirige pas le port en question, la connection ne peut pas s’effectuer.

et si le client et le serveur sont tous deux dans ce cas, on se retrouve coincé: ni le mode passif ni le mode actif ne fonctionne.

d’ou l’interet de déterminer soi-même une fourchette de ports que le serveur utilisera lorsque le client demandera le mode passif: on peut ainsi rediriger toute cette fourchette vers la machine sur laquelle se trouve le serveur, et ainsi faire fonctionner le mode passif.
si le logiciel-serveur ne permet pas de configurer ça, on se retrouve obligé de redirigé un nombre astronomique de ports, ce qui n’est pas super malin.

en passant, si quelqu’un connait un bon serveur ftp gratuit (voir libre?) sous windows qui permet de configurer cette fourchette, ça me serait bien utile…

bon, je teste tout ça en rentrant

si ça marche je pourrais peut être vous envoyer une de mes cousine :stuck_out_tongue:

c’est mal de faire du proxénétisme de cousines en echanges de dépannage informatique.

tu as une photo? :stuck_out_tongue:

bon alors, des nouvelles du front

premièrement, faudra vous passer de ma cousine :stuck_out_tongue:

deuxiemement, j’ai plus acces au serveur ftp depuis mon reseau local, par contre … quand je tape mon ip externe en adresse de serveur, ca marche …mais aucun de mes potes n’arrivent a se connecter a mon serveur. Ca devient vraiment n’importe nawak là … je comprend plus rien

EDIT : ca marche parfaitement en reseaux local, c’est cyberduck qui chie

EDIT2 : bon je crois que j’ai trouvé et je vous assure qu’on a envie de mourir surplace quand on se rend compte de ce genre de connerie :stuck_out_tongue:

j’ai …

j’ai … j’ai pas …

j’ia pas renseigné la bonne passerelle … :stuck_out_tongue: vous m’en voulez pas hein ? dite, dite … aïe … non pas les caillou aller soyez sympas …

d’ailleurs faut que je modifie la passerelle en mode texte et devinez quoi … je sais pas faire :stuck_out_tongue: faut le faire par la commande route ?

ça marche, je vous remercie tous pour le temps que vous avez passé pour m’aider, c’était bien un probleme de passerelle mal renseigné (oui j’ai honte)