Comment faire tourner 2 ftp distinct

bonjour

j’ai un petit probleme de redirection

j’ai un compte dyndns avec 2 hosts de paramètres
toto.dyndns.org = à la machine 1
tata.dyndns.org = à la machine 2

sur mon routeur je récupère l’IP

je voudrais savoir quelle serais la meilleur solution pour faire une redirection
en fonction de l’adresse tapée dans le navigateur de
exemple si je tape
ftp://toto.dyndns.org ça aille sur le port 21 de la machine 1
ou
ftp://tata.dyndns.org ça aille sur le port 21 de la machine 2

merci

A moins que ton routeur ait deux adresses IP publiques distinctes, ce n’est pas possible. Si le routeur n’a qu’une adresse publique vers laquelle les deux noms de domaine pointent, il n’a aucun moyen de savoir quel nom de domaine le client a demandé. Un routeur ne voit que des paquets IP avec des adresses IP, pas les noms de domaines.

La seule solution est alors d’affecter sur le routeur un port public différent pour chaque serveur. Mais cela implique qu’un des serveurs FTP sera accessible via un port non standard (autre que 21), et dans cette situation le risque de mauvais fonctionnement est grand : en gros les pare-feu à état et les routeurs NAT doivent faire un traitement spécial pour le protocole FTP (avec netfilter dans Linux c’est l’objet des modules ip_conntrack_ftp et ip_nat_ftp), mais généralement ce traitement n’est fait que pour les connexions sur le port 21 (c’est le cas par défaut avec ip_conntrack_ftp, mais on peut lui spécifier d’autres ports). Et je ne parle même pas des pare-feu qui n’autorisent pas la connexion vers le port non standard choisi.

Avec un port non standard le mode FTP actif n’aura quasiment aucune chance de fonctionner pour les clients situés derrière un pare-feu à état ou un routeur NAT sans configuration spécifique. Le mode FTP passif aura plus de chances si ton routeur n’est pas trop bête (s’il applique le traitement spécifique FTP aussi si le port destination après redirection est 21) et si le pare-feu côté client n’est pas trop strict (en gros laisse passer les connexions sortantes sur n’importe quel port).

bonjour

merci pour ta réponse

le mieux serais de réorganiser le ftp en une seul machine en faisant pointer
les users vers leur rep spécifique et en virant le mode anonymous

question (peut être idiote)

avec un dns, on peut pas faire une redirection sur une IP par apport à une url d’entrée?

a+ gilles

Pas bien compris la question. Qu’est-ce que tu veux faire ?

DNS ne fait pas de redirection, il “résoud” des noms de domaine, c’est-à-dire les transforme en différents types de données selon le type d’enregistrement DNS, généralement une adressse IP. DNS ne traite pas des URL mais des noms de domaine (qui peuvent être contenus dans un URL mais cela ne concerne pas DNS).

Le processus est le suivant :

  1. Le client FTP extrait le nom de domaine dans l’URL et fait une requête DNS pour obtenir l’adresse IP correspondante.
  2. Le client FTP établit une connexion à l’adresse IP obtenue, qui est ici celle du routeur.
  3. Le routeur redirige la connexion, c’est-à-dire modifie l’adresse (et éventuellement le port) destination en fonction du protocole et du port destination initial. Il ne sait pas quel est le nom de domaine de l’URL de départ.
  4. Le serveur FTP reçoit la connexion redirigée par le routeur. Il ne sait pas non plus quel est l’URL de départ, ni même l’adresse de destination et le port initiaux avant redirection par le routeur.

pardon je me suis mal explique effectivement au lieu de redirection je voulais dire résolution

le mieux serait de tout centraliser sur un seul ftp

merci

Oui. Mais contrairement à un serveur HTTP/1.1, un serveur FTP ne permet pas de faire des “virtual hosts” par nom. Il n’y aura donc pas moyen de différencier selon le nom de domaine de départ.