[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[ CLARIFICATION ] Autoload du module ip_conntrack_ftp






On Mon, 2002-09-16 at 11:02, Bruno Treguier wrote:
> Dans son message du 16/9/2002, Patrice Karatchentzeff écrivait:
> 
> > Finalement, pour conclure ce fil, je crois que la demande d'Erwan
n'est
> > pas réalisable dans le cas d'un périphérique non physique (du moins,
pas
> > systematique). Au fait, Erwan, tu voulais faire quoi vraiment ?
> 
> Bonjour,
> 
> Je pense que Erwan et toi passez, dans une certaine mesure, à côté
> d'un point important: le module ip_conntrack_ftp s'insère dans la
> pile réseau... Le périphérique que vous êtes en train de chercher,
> c'est tout simplement... le réseau ! Il est aussi physique que
> n'importe quel autre, qu'il s'agisse du son ou de la vidéo, mais
> ip_ftp_conntrack a une particularité importante par rapport à
> d'autres modules qui se chargent automatiquement dès que le périph
> auquel ils se rapportent est accédé :
> 
> IL EST TOTALEMENT OPTIONNEL !
[ snip ]

On va faire une comparaison pour eclairer les lanternes.

Avons-nous besoin d'un module pour envoyer des e-mails? (port 25)
Avons-nous besoin d'un module pour faire du web ? (port 80)
Avons-nous besoin d'un module pour faire du irc ? (port 6667 en general)
Avons-nous besoin d'un module pour envoyer des requetes DNS ? (port 53)

Bref, un module pour chaque service ?  Cela ne tient pas debout en
realite.  Les services irc/web/mail/etc sont geres par nos interfaces
clients (evolution, eudora, mIRC, kvirc, mozilla, IE, etc).

Pourquoi ca serait different avec ftp ?

Comme Bruno l'a dit, c'est juste des services (de la couche
presentation) qui utilisent le protocole TCP et IP. 

La raison qu'on a le module ip_conntrack_ftp, dans un reseau avec un
gateway NAT, c'est qu'il utilise des ports differents et aleatoires que
ceux definis.

Je m'explique:

quand on configure netfilter pour faire du ip masquerading, le but est
fort simple: faire de la transformation de l'adresse privee en publique
(et vice-versa) en gardant en memoire les liens entre l'adresse privee +
le port ainsi que l'adresse publique + le port sur le serveur, pour
eviter toute confusion.

Le probleme avec le FTP.  A l'origine, on avait suelement 2 ports
simples: le port 21 pour le canal de commandes, et le port 20 pour le
canal de donnees.  Maintenant, avec le mode passive, c'est le client qui
offre le port au server FTP pour lui dire de se connecter au port du
client.

client_interne ---> NAT ----> SERVEUR FTP

le client dit dans la stack FTP avec la commande PASV/PORT suivante: mon
ip est 192.168.1.3 et je veux que tu em connectes sur le port 3000.

Je vous rappelle que le reseau a l'interne du NAT contient des ip non
_routables_.

Pensez-vous que le serveur FTP sera en mesure de se connecter au client
a l'ip et au port donne? Non.

C'est la que le ip_conntrack_ftp entre dans le tableau.

Il "sniffe" le traffic ftp, puisque le canal de donnees est toujours du
port 21.  Ainsi, des qu'il voit la commande PORT, il prend le role de
changer l'ip interne (192.168.1.3) par l'ip Internet (il modifie le
paquet), et il forward de facon temporaire le port donne pour eviter que
le gateway refuse la connexion (vu que, quand le serveur ftp se connecte
au client, il doit tout d'abord passer par le gateway.  Or, le gateway
n'aura jamais ouvert ce port.. et il va lui renvoyer un Reset.  C'est un
autre role de ip_conntrack_ftp, forwarder le port requis, pour
l'acheminer au client).

Pour ceux qui sont habitues avec IRC, je vous rappelle le protocole
DCC.. c'est le meme principe.

C'est aussi simple que ca.

Maintenant, voulez-vous bien me dire que vient faire le peripherique
la-dedans ?  Tout agit au niveau logique, c'est a dire, dans les 3
dernieres couches... (presentation-session-liaison).

Pour ceux qui ne comprennent toujours pas, prenez un bon livre de
Stevens W. Richard: TCP/IP Illustrated.  Tres bon livre, on en apprend a
la tonne la-dedans.  Il y a une version francaise de ca aussi.  Ensuite,
lisez sur les principes du reseau NAT, et les multiples problemes de
FTP.


E.
-- 
Eric LeBlanc
inouk@igt.net
--------------------------------------------------
UNIX is user friendly.
It's just selective about who its friends are.
==================================================



Reply to: