OVH Cloud OVH Cloud

Proftpd, nat, port forwarding et mode actif/passif !

4 réponses
Avatar
Akane
Bonjour à tous !

J'ai une Fedora Core 1 avec Proftpd d'installer sur une partition
virtuel avec VMware 4. Le PC host est sous Windows XP pro avec le
partage de connexion activé (donc NAT) et je redirige les ports 20 et 21
vers mon serveur FTP (192.168.0.22).

Je peux accèder à mon FTP correctement (avec les 2 modes : actif et
passif) depuis n'importe quel poste de mon réseau local en entrant
l'adresse ip privée (192.168.0.22) de mon serveur ftp. Là tout marche
bien. Par contre, depuis n'importe quel poste AUTRE que mon poste sous
Windows Xp pro, en tapant l'adresse IP publique pour me connecter au
serveur FTP, j'arrive uniquement à me logguer, mais dès lors que je tape
une commande de type ls ou dir ca me renvoit en gros 500 port command
et des fois selon le client utilisé (ftp sous linux, ftp sous windows ou
logiciel de type cuteftp, ftp expert sous windows) 425 Unable to build
connection : connection refused. Et ceci que je sois en passif ou en
actif ! La seule chose que j'arrive à faire en me connectant à l'ip
publique, c'est m'y connecter en mode passif avec mon PC sous Windows XP
pro et là ca marche, mais uniquement en passif. Pour résumé, mon serveur
FTP est derrière un NAT avec les ports 20 et 21 de forwardé vers lui et
il ne fonctionne pleinement qu'avec des clients qui ne soient pas
derrière un NAT et uniquement en mode passif ! En actif, ca ne marche
avec personne (sauf en local) donc là au moins c'est clair...

Je me suis renseigné et j'ai vu plein de choses dont entre autre
MasquAdress xxx.xxx.xxx.xxx et PassivePort xxxxxx-xxxxxx dans le fichier
de Proftpd.conf mais ca ne m'arrange rien...

DOnc je cherche des réponses précises cette fois car j'en ai assez de
chercher seul héhé !

1/ y a t'il un moyen de configuration pour que les clients derrière un
NAT puisse accèder "pleinement" ( = puisse listé les répertoires entre
autre) à mon serveur FTP derrière un NAT ?
2/ y a t'il un moyen pour que Proftpd force les clients à se connecter
en mode passif ?

Merci de votre aide !
Julien

4 réponses

Avatar
Kevin
Le Thu, 11 Dec 2003 16:10:31 +0100, Akane a ecrit:
|
| J'ai une Fedora Core 1 avec Proftpd d'installer sur une partition
| virtuel avec VMware 4. Le PC host est sous Windows XP pro avec le
| partage de connexion activé (donc NAT) et je redirige les ports 20 et 21
| vers mon serveur FTP (192.168.0.22).
|
on peut schematiser donc:

RESEAU---XP---linux
le XP fait du NAT pour le linux.

mais quelle sont les adresses IP de tout ca? Le XP en a deux?

| Je peux accèder à mon FTP correctement (avec les 2 modes : actif et
| passif) depuis n'importe quel poste de mon réseau local en entrant
| l'adresse ip privée (192.168.0.22) de mon serveur ftp. Là tout marche
| bien. Par contre, depuis n'importe quel poste AUTRE que mon poste sous
| Windows Xp pro, en tapant l'adresse IP publique

quelle IP publique? Le XP a 3 interfaces? la virtuelle avec le linux,
une pour le RESEAU et une sur internet?

|pour me connecter au
| serveur FTP, j'arrive uniquement à me logguer, mais dès lors que je tape
| une commande de type ls ou dir ca me renvoit en gros 500 port command
| et des fois selon le client utilisé (ftp sous linux, ftp sous windows ou
| logiciel de type cuteftp, ftp expert sous windows) 425 Unable to build
| connection : connection refused. Et ceci que je sois en passif ou en
| actif ! La seule chose que j'arrive à faire en me connectant à l'ip
| publique, c'est m'y connecter en mode passif avec mon PC sous Windows XP
| pro et là ca marche, mais uniquement en passif. Pour résumé, mon serveur
| FTP est derrière un NAT avec les ports 20 et 21 de forwardé vers lui et
| il ne fonctionne pleinement qu'avec des clients qui ne soient pas
| derrière un NAT et uniquement en mode passif ! En actif, ca ne marche
| avec personne (sauf en local) donc là au moins c'est clair...
|
| Je me suis renseigné et j'ai vu plein de choses dont entre autre
| MasquAdress xxx.xxx.xxx.xxx et PassivePort xxxxxx-xxxxxx dans le fichier
| de Proftpd.conf mais ca ne m'arrange rien...
|
| DOnc je cherche des réponses précises cette fois car j'en ai assez de
| chercher seul héhé !
|
| 1/ y a t'il un moyen de configuration pour que les clients derrière un
| NAT puisse accèder "pleinement" ( = puisse listé les répertoires entre
| autre) à mon serveur FTP derrière un NAT ?

Oui. Il faut configurer le nat pour ca, ca marche tres bien.

| 2/ y a t'il un moyen pour que Proftpd force les clients à se connecter
| en mode passif ?
|
Reponse simple: Probleme XP.

avec un routeur linux, ca se fait en deux coups de cuilleres a pot.

La, effectivment, a vue de nez, le WinXP route vaguement. Mais bon,
les pros d'XP sont plutot sur fr.comp.os.ms-windows.winnt car je pense
vraiment que c'est un probleme de NAT au niveau d'XP.

--
Kevin
Quelle license du soft?
-+- Les 100 choses que vous n'aimez pas entendre de la part du sysadmin -+-
Avatar
Akane
Déjà, merci pour ta réponse ! Voyons la suite :

on peut schematiser donc:

RESEAU---XP---linux
le XP fait du NAT pour le linux.


pas tout à fait. Disons plutot :

Internet --- (modem USB ST 330)-- XP pro + NAT --- réseau (et donc PC
sous linux)

mais quelle sont les adresses IP de tout ca? Le XP en a deux?


IP WAN fourni par Wanadoo
Ip du PC sous XP Pro = 192.168.0.1
IP du serveur FTP linux = 192.168.0.22
Et oui, dans un sens le pc sous XP en a 2 puisque c'est lui qui recoit
l'adresse IP WAN de wanadoo ! C'est lui mon routeur quoi.

| Je peux accèder à mon FTP correctement (avec les 2 modes : actif et
| passif) depuis n'importe quel poste de mon réseau local en entrant
| l'adresse ip privée (192.168.0.22) de mon serveur ftp. Là tout marche
| bien. Par contre, depuis n'importe quel poste AUTRE que mon poste sous
| Windows Xp pro, en tapant l'adresse IP publique

quelle IP publique? Le XP a 3 interfaces? la virtuelle avec le linux,
une pour le RESEAU et une sur internet?


le XP à 2 interfaces comme dit plus haut, une publique grace au modem
adsl et une privée avec carte réseau banale. Le linux n'a qu'une carte
réseau avec ip privée. Il bénéficie d'internet grace au NAT effectué par
le pc sous XP pro. Pour l'ip publique il s'agit toujours de celle
fournit par Wanadoo (j'ai effectué une redirection grace à no-ip.com
puisque mon ip publique change toutes les 24h mais là n'est pas la
question).

Oui. Il faut configurer le nat pour ca, ca marche tres bien.


hum.. Je me sers d'un prog qui redirige les ports, c'est du pareil au
meme qu'un routeur au final. J'ai testé pas mal de truc en fait.
Redirigé uniquement le port 21 et se connecter en actif, puis en
passif... Redirigé le port 21 et le port 20 et fait des tests en actif
et passif, redirigé le port 21 et les ports utilisés en passif (qu'on
peut indiqué soit meme à Proftpd avec la ligne PassivePort XXXXX-XXXXX
si je me souviens bien), pareil que juste avant avec le port 20 redirigé
aussi... bref j'ai quasiment tout fait et j'en suis arrivé à la
conclusion que finalement, ca ne marchait soit qu'en local en ne
redirigeant rien du tout, soit qu'en passif en redirigeant le port 21
uniquement et ceci seulement si le client n'es pas derrière un routeur
lui aussi ! (je crois que c'est à ca que j'en étais arrivé)

| 2/ y a t'il un moyen pour que Proftpd force les clients à se connecter
| en mode passif ?
|
Reponse simple: Probleme XP.

avec un routeur linux, ca se fait en deux coups de cuilleres a pot.

La, effectivment, a vue de nez, le WinXP route vaguement. Mais bon,
les pros d'XP sont plutot sur fr.comp.os.ms-windows.winnt car je pense
vraiment que c'est un probleme de NAT au niveau d'XP.

sous Linux tu ferais comment ? ip_conntrack, ip_masq_ftp, ip_nat_ftp

des trucs comme ca ?? J'avoue ne pas pu avoir essayé puisque ma
passerelle est sous Windows mais je ne comprend pas en quoi faire cela
change quelque chose... que font ces modules exactement ? n'y a t'il pas
moyen de faire pareil sous WIndows XP ? (je sais que je ne suis pas au
bon endroit pour demander ca, mais si je demande pareil sur le newsgroup
de Windows, ils vont me dire "on y connait rien à Linux, on sait pas ce
que ca fait les modules ip_masq_ftp etc. donc je suis coincé !)

En tout cas, encore merci d'avoir essayé ! Mais STP trouves moi la
solution !!

Jul

Avatar
tortieh
Akane wrote:
Bonjour à tous !
Salut a toi !


J'ai une Fedora Core 1 avec Proftpd d'installer sur une partition
virtuel avec VMware 4. Le PC host est sous Windows XP pro avec le
partage de connexion activé (donc NAT) et je redirige les ports 20 et 21
vers mon serveur FTP (192.168.0.22).


C'est la ton probleme !
Un serveur FTP a besoin de deux ports : un port commande (qui te permet de te
logguer) qui ecoute effectivement sur le port 21, donc la ton forward est
correcte , d'ailleurs, ca marche car tu arrives effectivement a te logguer depuis
l'exterieur.

Ensuite il y a le port de data.Et c'est la que ca merde ! c'est pour ca que tu
n'arrives pas a lister le contenu de tes repertoires.

Comment marche la connection sur le port data ....

En mode actif, ton serveur ftp fonctionne comme un client pour la connection
data, c'est lui qui initie la connection vers ton client et donc c'est ton client
qui fonctionne comme un serveur, dans la mesure ou il accepte les connections
rentrantes. Le port source du paquet FTP envoye par le serveur initiant la
connection data est le port 20.


En mode Passif, c'est le client qui initie egalement la connection data.
Mais sur quel port du serveur initier la connection data ? : PAS LE PORT 20
En fait, c'est le serveur qui envoie au client sur quel port il va ecouter la
connection data, ensuite a toi de Nater egalement ce port la pour que les paquets
envoyes par ton client sur ce port de data arrive bien au serveur.
Comment faire ca ...
je ne sais pas comment fonctionne le routage sous windows, et si c'est possible
de le faire de facon dynamique (ecouter la connection FTP, en deduire le port
ftp-data, et le nater automatiquement, vers ton serveur).

De facon statique, tu ouvres par example 10 ports consecutifs (au dessus de 1024)
que tu routes vers ton serveurs FTP. A ton serveur FTP, tu indiques la plage de
port sur la quelle il a le droit d'ecouter la connection data (les ports que tu a
nater). Ainsi, le serveur va indiquer au client un port sur le quel celui-ci
doit se connecter qui serra nater vers ton serveur.

Pourquoi 10 ports ? et pas 1 ? en fait a chaque transfert de fichier, a chaque
commande ls, tu ouvres une nouvelle connection data. Si tu ouvres qu'un port, tu
risques de pouvoirs faire un ls, et puis plus rien...


1/ y a t'il un moyen de configuration pour que les clients derrière un
NAT puisse accèder "pleinement" ( = puisse listé les répertoires entre
autre) à mon serveur FTP derrière un NAT ?


Oui, faire marche la connection data a ton serveur....

2/ y a t'il un moyen pour que Proftpd force les clients à se connecter
en mode passif ?


En general, c'est le comportement par defaut des navigateurs web et cie, mais la
j'avoue que je ne connais pas Proftpd dans le detail.


Merci de votre aide !
Julien
De rien, j'espere que j'ai ete clair, sinon, il y a un tres bon site sur les

reseaux ici : http://christian.caleca.free.fr

Tortieh

Avatar
Akane
je ne sais pas comment fonctionne le routage sous windows, et si c'est
possible de le faire de facon dynamique (ecouter la connection FTP, en
deduire le port ftp-data, et le nater automatiquement, vers ton serveur).


non je crois qu'en effet windows n'est pas capable de faire ca... Je
suppose que ce que j'ai lu sur les modules ip_conntrack, ip_masq_ftp
etc.. c'était ce qui jouait ce role sous linux ? Et dans ce cas,
comment font ceux qui possède un routeur matériel classique type Netgear
ou autre ?

De facon statique, tu ouvres par example 10 ports consecutifs (au dessus
de 1024) que tu routes vers ton serveurs FTP. A ton serveur FTP, tu
indiques la plage de port sur la quelle il a le droit d'ecouter la
connection data (les ports que tu a nater). Ainsi, le serveur va
indiquer au client un port sur le quel celui-ci doit se connecter qui
serra nater vers ton serveur.


j'ai miraculeusement trouvé ca hier soir héhé mais ton message arrive à
pic pour que je comprenne pleinement pourquoi ca marchait de cette
facon... Une chose par contre que je ne comprend pas, c'est que
maintenant, lorsque j'essaie de me connecter sur mon FTP à l'aide de mon
IP publique, les postes de mon réseau local n'y arrive plus... est-ce
parce que j'ai redirigé les ports >60000 vers le serveur FTP et donc
leur réponse sont RE renvoyé au serveur FTP ? Ca me parait logique et de
toute facon, puisqu'ils sont en local, je peux m'y connecter à l'aide de
l'ip privé du serveur :D

Pourquoi 10 ports ? et pas 1 ? en fait a chaque transfert de fichier, a
chaque commande ls, tu ouvres une nouvelle connection data. Si tu ouvres
qu'un port, tu risques de pouvoirs faire un ls, et puis plus rien...


Très bonne remarque que tu me fais là ! J'avoue avoir forwardé
uniquement le port 60000 et 60001 hier soir donc, j'en ouvrirais plus !
Un port par client par commande ? Donc si je veux avoir plusieurs
clients connectés en meme temps qui puisse effectuer plus de 3
commandes, j'ai interet à ouvrir combien de ports selon toi ?

1/ y a t'il un moyen de configuration pour que les clients derrière un
NAT puisse accèder "pleinement" ( = puisse listé les répertoires entre
autre) à mon serveur FTP derrière un NAT ?


Oui, faire marche la connection data a ton serveur....


héhé :D
Maintenant que ca marche, j'ai juste une question bete, un client qui
lui N EST PAS derrière un routeur.... ca marche toujours ? (je suppose
que oui car j'ai testé en m'y connectant depuis mon PC avec la connexion
internet et ca marchait)

2/ y a t'il un moyen pour que Proftpd force les clients à se connecter
en mode passif ?


En general, c'est le comportement par defaut des navigateurs web et cie,
mais la j'avoue que je ne connais pas Proftpd dans le detail.


Quand ca ne marche pas en actif, tous les logiciels (en gros) essaie de
se connecter en passif ? Bonne nouvelle, c'est ce que je souhaitais !
J'avoue ne pas pu avoir tester puisqu'avec mon réseau, si je m'y
connecte depuis le PC avec la connexion internet, ca marche direct (en
actif je crois) et depuis un PC derrière le NAT, ca marche plus du tout
vu que les ports >60000 sont redirigé vers le serveur ftp !

De rien, j'espere que j'ai ete clair, sinon, il y a un tres bon site sur
les reseaux ici : http://christian.caleca.free.fr

Tortieh


Très clair ! Peu être meme le plus clair que j'ai pu trouver sur le net
actuellement !!
Encore merci !

Julien, expert FTP ! (maintenant)