FTP 2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 30

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

FTP
Pourquoi s'intresser FTP ?
Le protocole FTP est probablement le protocole applicatif le plus complexe, et aussi celui qui est le
moins utilis au maximum de ses capacits.
Il est intressant d'tudier FTP au moins pour les raisons suivantes :

C'est le protocole le plus sr pour faire du tlchargement de fichiers, mme si cette


opration peut aussi tre ralise avec HTTP,

ce protocole peut poser problme lorsqu'on l'utilise travers un filtre de paquets (firewall)
en qualit de client, et encore plus en qualit de serveur,

si l'on souhaite placer un serveur FTP accessible travers un firewall filtre de paquets, en
faisant du "port forwarding" sur le firewall, il devient impratif de bien comprendre le
processus, faute de quoi, les transferts FTP resteront probablement bloqus un moment o
un autre.

Que peut-on faire avec FTP ?


Parmi les applications les plus frquentes :

tlchargement de fichiers depuis un serveur vers le client (Download),

tlchargement de fichiers depuis le client vers un serveur (Upload), par exemple pour la
mise jour des pages web personnelles.

Mais il est possible de faire d'autres choses encore :

bien que cette mthode soit de moins en moins utilise, FTP peut servir envoyer un
document imprimer sur une imprimante distante, l'imprimante faisant alors office de
serveur,

un client FTP peut effectuer des transferts de fichiers entre deux serveurs distants. Bien que
cette possibilit soit peu intressante pour l'internaute moyen, a reste une fonctionnalit
importante pour les administrateurs de sites distants.

Page 1 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Plan du chapitre
Pourquoi s'intresser FTP ?............................................................................................................... 1
Que peut-on faire avec FTP ?............................................................................................................... 1
Pourquoi FTP ?.....................................................................................................................................3
Transfert de fichiers sur un rseau...................................................................................................3
Les rseaux Microsoft................................................................................................................. 3
Les rseaux Unix.........................................................................................................................3
Et les autres................................................................................................................................. 4
File Transfert Protocol..................................................................................................................... 4
Les bases de FTP.................................................................................................................................. 5
Le cas le plus "classique".................................................................................................................5
Clients Windows......................................................................................................................... 5
Clients GNU/Linux..................................................................................................................... 6
Autres possibilits....................................................................................................................... 6
Le principe de base......................................................................................................................6
L'autre cas........................................................................................................................................ 8
Modes Actif et Passif.......................................................................................................................8
Ce que montre le sniffeur.................................................................................................................9
Avertissement..............................................................................................................................9
tablissement de la connexion pour les commandes.................................................................. 9
O en sommes-nous ?...........................................................................................................10
Rsumons nous.....................................................................................................................11
Qu'avons-nous appris ?.................................................................................................................. 14
Plus avant............................................................................................................................................16
Le mode Passif...............................................................................................................................16
Que pouvons-nous en conclure ?.............................................................................................. 17
Le transfert non ASCII.................................................................................................................. 17
Quelles diffrences ?................................................................................................................. 18
Quels rsultats ?........................................................................................................................ 19
Mais que s'est-il donc pass ?...............................................................................................20
O le serveur engueule le client.....................................................................................................20
Upload en mode actif d'un fichier binaire depuis gFTP vers perso-ftp.wanadoo.fr................. 21
a y est ? Nous avons tout vu ?..................................................................................................... 23
Cadeau bonus......................................................................................................................................25
Le transfert de serveur serveur, via un client tiers...................................................................... 25
Ce qui est ncessaire................................................................................................................. 25
Mais passons l'acte................................................................................................................. 26

Page 2 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Pourquoi FTP ?
Transfert de fichiers sur un rseau
Il est peut-tre bon de faire une mise au point pralable, propos du transfert de fichiers sur un
rseau. Ceux qui sont familiers avec les LAN le savent bien, rien de plus simple en effet que de
dplacer des fichiers d'une machine l'autre, tous les systmes d'exploitation rseau proposent un
moyen de le faire simplement.

Les rseaux Microsoft


Le voisinage rseau est fait pour a. Il suffit, sur un poste du rseau, de dfinir le partage d'un
rpertoire, pour que ce dernier apparaisse dans le voisinage rseau. Si l'on possde les droits en
lecture et criture, il sera alors trs simple d'utiliser ce rpertoire distant, comme on le ferait avec un
rpertoire local.

Le chemin \\gw1\chris\chris est appel un chemin UNC (Universal Naming Convention).


Comprenons nous bien, cette convention n'a de ralit universelle que dans le monde Microsoft,
c'est dire qu'elle n'a absolument rien d'universel, chacun sait que le monde de l'informatique ne se
rduit pas au monde Microsoft...
Pour fonctionner, le voisinage rseau utilise un protocole propritaire, nomm SMB (Server
Message Block), lui mme s'appuyant sur NetBIOS (NETwork Basic Input-Output System).

Les rseaux Unix


Sun a dvelopp NFS (Network File System), qui permet de monter un rpertoire distant dans
l'arborescence locale. Le rsultat est sensiblement le mme qu'avec le voisinage rseau de
Microsoft, et tout aussi "propritaire".

Page 3 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Et les autres...
Et chaque concepteur de NOS (Network Operating System) y est all de sa recette "maison".
Tous ces systmes propritaires fonctionnent, mais ne savent pas communiquer entre eux. Sur un
rseau htrogne, c'est dire un rseau o cohabitent des machines qui ne fonctionnent pas toutes
avec le mme genre de NOS, il devient difficile, voire impossible, de raliser des transferts de
fichiers.
Il est certes possible d'installer des "passerelles", comme par exemple SAMBA sur GNU/Linux, qui
permet une interoprabilit entre ces systmes et les rseaux Microsoft. De la mme manire, il
existe des services Unix qui peuvent s'installer sur Windows pour permettre de "voir" les partages
Unix sur un rseau Microsoft. Ces solutions restent tout de mme bases sur des protocoles
propritaires.

File Transfert Protocol


FTP, qui est un protocole ouvert, peut tre exploit sur tout systme disposant d'une pile IP. Il
devient donc possible de raliser des transferts, sans se proccuper du NOS de chacune des
machines.
Contrairement ce qu'il peut paratre, FTP est un protocole trs complexe, capable de beaucoup
plus de choses qu'un simple tlchargement depuis un lien sur une page web. Les clients FTP
fournis avec les navigateurs sont souvent minimalistes et n'exploitent qu'une infime partie des
possibilits de FTP.

Page 4 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Les bases de FTP


Le cas le plus "classique"
Un client (utilisateur FTP) va se servir de ce protocole, pour faire du transfert de fichiers (upload ou
download) avec un serveur (serveur FTP).
Il existe une multitude de logiciels clients en mode graphique pour raliser ces oprations. Passons
sur les fonctions FTP implmentes dans les navigateurs web (Internet Explorer, Mozilla...), qui ne
sont pas toujours trs performantes.

Clients Windows
Vous serez probablement surpris de constater le nombre impressionnant de clients FTP disponibles,
le plus souvent en "shareware" (Windows oblige). Il en existe cependant au moins un sous licence
GPL : Filezilla1.
En plus d'tre sous licence GPL, ce logiciel est galement localis en franais, ce qui ne gte rien. Je
vous le conseille absolument. Voici l'allure de sa fentre de travail dans sa version 2.1.3a :

1 FileZilla : http://filezilla.sourceforge.net/

Page 5 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Dans la suite, nous aurons galement l'occasion d'utiliser un "shareware" : FlashFXP qui sait faire
des choses que FileZilla ne sait raliser.

Clients GNU/Linux
Ici, le choix est peut-tre plus restreint. Le plus abouti (parmi ceux que je connais) est probablement
gftp2, naturellement sous licence GPL :

Autres possibilits
Il existe galement des utilitaires FTP en ligne de commande, aussi bien sous Windows que sous
Linux. Il sont certainement moins conviviaux, mais pas forcment moins puissants.

Le principe de base
Le client ouvre une session FTP sur un serveur. Il existe une grande quantit de serveurs FTP
publics. Un serveur FTP requiert une identification du client. Il existe souvent un compte
"anonyme", qui donne accs en lecture seule dans la partie publique du serveur, mais il existe
galement des parties prives o les clients disposant d'un compte peuvent accder en criture sur
certains rpertoires de l'arborescence. C'est le cas, par exemple, pour les mises jour de pages web
personnelles.
2 gftp : http://gftp.seul.org/
NTDL : Celui-ci est inclu dans la distribution GNU/Debian.

Page 6 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

La premire chose que l'on constate, c'est que, contrairement d'autres protocoles comme HTTP,
nous allons ici utiliser deux canaux distincts :

L'un pour l'change des commandes du protocole,

l'autre pour le transfert des donnes elle-mmes.

Le client FTP (partie de droite), par l'intermdiaire de l'interface utilisateur, va cacher les diverses
commandes du protocole FTP par des manipulations plus conviviales, en proposant l'utilisateur
une vision des choses similaire un gestionnaire de fichiers. Avec des clicks et des
"glisser/dposer" l'utilisateur exploitera FTP sans en connatre la multitude de commandes. Mais
sachez qu'avec beaucoup de courage et de connaissance du protocole, vous pourriez utiliser Telnet
pour faire du FTP.

Page 7 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

L'autre cas
Un utilisateur pourra exploiter FTP pour transfrer
depuis son poste de travail
des fichiers d'un serveur
distant un autre serveur
distant, sans que les donnes ne transitent par sa
machine, ce qui est fort intressant si l'on travaille
depuis une connexion RTC
pour passer des donnes
d'une machine une autre,
ces dernires tant, elles,
connectes par des liens
haut dbit.
Cependant, cette opration
ne sera possible que si les
serveurs FTP l'acceptent,
ce qui n'est pas souvent le
cas, pour des raisons de
scurit.
Aprs avoir longuement tourn autour du pot (et avoir relu plusieurs fois la RFC 9593), j'ai
finalement pens que le meilleur moyen pour comprendre FTP n'tait certainement pas la lecture de
cette RFC mais plutt l'exprimentation. Nous allons donc mettre en oeuvre FTP, voir comment a
se passe et vrifier seulement aprs que c'est bien conforme ce qui est dit dans les Livres.
Les manipulations sont faites depuis un poste client Windows connect un LAN, lui-mme
connect l'Internet par une passerelle NAT GNU/Linux. Un sniffeur est plac sur le poste
Windows lui-mme, il aurait pu l'tre sur la passerelle.

Modes Actif et Passif


Il faut bien prendre le problme par un bout pour le dcortiquer, mme si pour l'instant, nous ne
savons rien, ou pas grand chose, de FTP. Nous sommes donc oblig de faire appel un paramtrage
du client, sans trop savoir pourquoi on va le faire comme a. Rassurez-vous, nous y reviendrons par
la suite.
Le protocole FTP supporte deux manires de fonctionner, peine diffrentes, mais la diffrence est
d'importance, surtout lorsque l'on a traverser un firewall par filtrage de paquets. Ce sont :

Le mode Actif,

le mode Passif.

Pour l'instant, contentons-nous de dire que si l'on doit passer un firewall, il vaut mieux utiliser le
3 RFC 959 en franais : http://abcdrfc.free.fr/rfc-vf/rfc959.html

Page 8 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

mode passif, car le mode actif risque de se solder rapidement par un chec. Ceci dit, mon firewall
moi que j'ai fait moi-mme avec IPtables, il sait parfaitement reconnatre du FTP actif. Nous allons
donc commencer par ce mode l, qui est la configuration par dfaut de Filezilla.
Nous allons nous connecter au serveur ftp.oleane.fr4, parcourir son arborescence, et tlcharger un
fichier quelconque, par exemple /pub/doc/rfc/rfc765.txt, puis qu'on en parle. Cette RFC est rendue
obsolte par la RFC 959, mais a peut servir de dbut...

Ce que montre le sniffeur


Avertissement
L'tude qui va suivre est assez longue, voire laborieuse. Munissez-vous de temps, de friandises et de
boissons, parce qu'on va rester coinc ici pendant un petit moment...
Pour vous viter de faire plusieurs aller-retours sur la page, j'ai essay d'organier cette tude de
faon la plus linaire possible, c'est ce qui rend ce paragraphe trs long. Vous tes prts ? Allons-y.

tablissement de la connexion pour les commandes


No.
1
2
3

Time
0.000000
0.022327
0.022356

Source
192.168.0.10
194.2.0.36
192.168.0.10

Destination
194.2.0.36
192.168.0.10
194.2.0.36

Protocol
TCP
TCP
TCP

Info
1175 > ftp [SYN]
ftp > 1175 [SYN, ACK]
1175 > ftp [ACK]

tablissement d'une connexion TCP entre le client (192.168.0.10:1175) et le serveur


(192.2.0.36:21). Le port 21 est le port standard d'coute des commandes FTP. Nous trouvons ici le
classique dialogue [SYN], [SYN,ACK], [ACK]. tait-il ncessaire de le signaler ? FTP s'appuie
bien entendu sur un mode connect (TCP).
Pour savoir que le port nomm "ftp" est bien le port 21, il suffit d'aller regarder dans le dtail de la
trame 1 par exemple :
Frame 1 (62 bytes on wire, 62 bytes captured)
...
Transmission Control Protocol, Src Port: 1175 (1175), Dst Port: ftp (21)
Source port: 1175 (1175)
Destination port: ftp (21)
...

Mais passons la suite...


4 0.055680 194.2.0.36

192.168.0.10 FTP

Response: 220 ProFTPD 1.2.0pre10 Server (ProFTPD)


[ftp.oleane.net]

Le serveur entame le dialogue propre au protocole FTP en se prsentant. Chaque rponse


commence par un nombre, optionnellement suivi d'un commentaire. La rponse 220 signifie :
"Service disponible pour nouvel utilisateur".
Vous aurez l'occasion de constater dans la suite quel point les systmes informatiques savent tre
civiliss (souvent plus que les humains). Le serveur se prsente, par la mme occasion.
5 0.057744 192.168.0.10

194.2.0.36

FTP

Request: USER anonymous

4 ftp.oleane.fr : ftp://ftp.oleane.fr/

Page 9 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Le client se prsente aussi en indiquant son nom. Comme nous avons fait un accs anonyme, nous
utilisons le nom conventionnel "anonymous". Nous n'aurons droit qu' un accs en lecture. Si nous
avions dispos d'un compte d'utilisateur, nous aurions un identifiant personnel (nom d'utilisateur et
mot de passe) qui nous permettrait ventuellement de disposer d'un droit d'accs en criture dans un
rpertoire de l'arborescence.
6 0.078527 194.2.0.36
7 0.081892 194.2.0.36

192.168.0.10 TCP
192.168.0.10 FTP

ftp > 1175 [ACK]


Response: 331 Anonymous login ok, send your complete
e-mail address as password.

Le serveur accepte les accs anonymes. Ce n'est pas une obligation, certains serveurs ne le font pas.
En gnral, en accs anonyme, on envoie son adresse e-mail comme mot de passe, mais tout ce qui
a vaguement une forme d'adresse e-mail est gnralement accept.
8 0.084076 192.168.0.10

194.2.0.36

FTP

Request: PASS anon@

La preuve, Filezilla envoie un laconique " anon@ " et a va fonctionner quand mme...
PASS est une commande FTP, c'est l'abrviation de Password.
9 0.108851 194.2.0.36

192.168.0.10 FTP

10 0.109282 194.2.0.36

192.168.0.10 FTP

Response: 230-Welcome, archive user


anonymous@ca-marseille-51-107.abo.wanadoo.fr!
Response: 230-

La preuve... La rponse 230 veut dire : "Session ouverte".


Remarque.
J'ai travaill comme un cochon, savoir que dans mon client Filezilla, je n'ai pas renseign les
champs "Utilisateur" ni "Mot de passe". Connaissant les usages, j'aurais pu les remplir en
mettant "anonymous" dans "Utilisateur" et "christian.caleca@free.fr" dans "Mot de passe".
Ca aurait fonctionn aussi, mais l'exprience montre que dans la plupart des cas, le serveur se
moque compltement du mot de passe envoy pour une connexion anonyme.
11 0.109313 192.168.0.10
12 0.109914 194.2.0.36

194.2.0.36
TCP
192.168.0.10 FTP

13 0.110341 194.2.0.36
14 0.110365 192.168.0.10
15 0.131452 194.2.0.36

192.168.0.10 FTP
194.2.0.36
TCP
192.168.0.10 FTP

1175 > ftp [ACK]


Response: 230-The local time is:
Sat Jan 11 10:32:57 2003
Response: 2301175 > ftp [ACK]
Response: 230-For informations about
this archive service,
or to report problems,

Le serveur nous donne son heure locale, qui peut tre utile si l'on devait signaler un problme
l'administrateur du service.
16 0.141903 192.168.0.10

194.2.0.36

FTP

Request: PWD

Le client envoie la commande PWD qui signifie : "Print Working Directory"


17 0.172747 194.2.0.36

192.168.0.10 FTP

Response: 257 "/" is current directory.

Nous sommes la racine de l'arborescence du serveur FTP. Le code 257 signifie "Chemin cr".

O en sommes-nous ?
Nous avons initi une connexion FTP avec le serveur. Nous nous sommes identifi comme un
utilisateur anonyme et nous nous retrouvons dans la racine de l'arborescence du serveur FTP.
Nous avons vu quelques commandes FTP : USER, PASS, CWD et quelques codes de rponse.
Page 10 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Jusqu'ici, c'tait relativement simple, nous n'avons transmis que des commandes et des rponses
ces commandes. Maintenant, a va commencer se compliquer, parce que nous allons faire aussi
transiter des donnes.
18 0.176308 192.168.0.10

194.2.0.36

FTP

Request: PORT 192,168,0,10,4,152

Premire commande curieuse : PORT 192.168.0.10,4,152, qui ncessite quelques explications.

PORT, c'est une commande. Le client signale qu'il voudrait utiliser un port particulier,

192.168.0.10, on reconnat, c'est l'adresse du client,

4,152, c'est la notation d'un numro de port, crit la mode des adresses IP, c'est dire sous
forme de deux octets, dont chaque octet est exprim en valeur dcimale. Dans la pratique, a
veut dire que le port spcifi sera 4 x 256 + 152 = 1176.

La suite va nous indiquer plus clairement qui va servir ce port.


19 0.198149 194.2.0.36

192.168.0.10 FTP

Response: 200 PORT command successful.

Le serveur rpond qu'il est d'accord. 200 signifie : "Commande conclue".


20 0.200751 192.168.0.10

194.2.0.36

FTP

Request: TYPE A

La commande TYPE indique au serveur quel type de donnes sont attendues. Le type A signale que
l'on attend du texte ASCII.
21 0.223387 194.2.0.36

192.168.0.10 FTP

Response: 200 Type set to A.

Le serveur est toujours d'accord.


22 0.225874 192.168.0.10

194.2.0.36

FTP

Request: LIST

La commande LIST qui signifie que le client attend la liste des objets prsents dans le rpertoire
courant (l'quivalent de la commande DIR de MSDOS ou ls de UNIX).
Attention !!!
Ce qu'il va se passer maintenant rclame beaucoup d'attention. Rappelons-nous :

23
24
25
26

Que nous sommes en mode Actif,

Que le client a demand l'usage du port 1176

0.247769
0.247826
0.264940
0.267461

194.2.0.36
192.168.0.10
194.2.0.36
194.2.0.36

192.168.0.10
194.2.0.36
192.168.0.10
192.168.0.10

TCP
TCP
TCP
TCP

ftp-data > 1176 [SYN]


1176 > ftp-data [SYN, ACK]
ftp > 1175 [ACK]
ftp-data > 1176 [ACK]

Le serveur FTP initie une nouvelle connexion FTP (trames 23,24 et 26). Mais vous avez bien vu,
c'est le serveur qui initie la connexion, autrement dit, il agit comme un client TCP, et c'est le client
FTP qui va agir comme un serveur TCP, c'est dire qu'il va rester l'coute de son port 1176. Cette
particularit est due au mode actif. Le client FTP est actif, parce qu'ici, ce sera lui le serveur (au
sens TCP).

Rsumons nous
A ce stade, nous avons deux connexions TCP ouvertes :
Page 11 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

192.168.0.10:1175 -> 194.2.0.36:21. Cette connexion sert faire passer les commandes et
les rponses ces commandes, 194.2.0.36 est le serveur, au sens TCP, c'est lui qui coute
sur son port 21 ce que le client FTP lui raconte, c'est le canal de commande

194.2.0.36:20 -> 192.168.0.10:1176. Cette connexion va servir faire passer les donnes.
Ici, la liste du rpertoire racine du serveur FTP vers le client FTP, qui agit comme un serveur
TCP. Ce sera le canal de donnes.

27 0.299444 194.2.0.36

192.168.0.10 FTP

Response: 150 Opening ASCII mode data


connection for file list.

Le serveur FTP rpond 150, c'est dire : "Statut de fichier vrifi, ouverture de canal de donnes en
cours".
28
29
30
31

0.303502
0.305993
0.306052
0.306101

194.2.0.36
194.2.0.36
192.168.0.10
194.2.0.36

192.168.0.10
192.168.0.10
194.2.0.36
192.168.0.10

FTP-DATA
FTP-DATA
TCP
FTP

FTP Data: 75 bytes


FTP Data: 699 bytes
1176 > ftp-data [ACK]
Response: 226-Transfer complete.

Normalement, c'est bien le catalogue de la racine du serveur FTP qui a t envoye vers le client
FTP. Nous pouvons le vrifier en regardant par exemple les donnes contenues dans la trame 29. Ce
n'est pas trs lisible, mais c'est bien a. Je vous demande de me croire sur parole, inutile de charger
encore d'avantage cette page dj lourde.
La rponse 226 signifie : "Fermeture du canal de donnes. Service termin".
32
33
34
35

0.306117
0.306470
0.307484
0.338378

192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36

194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10

TCP
FTP
TCP
TCP

1175 > ftp [ACK]


Response: 226 Quotas off
1176 > ftp-data [FIN, ACK]
ftp-data > 1176 [ACK]

Comme c'tait prvu, 192.168.0.10:1176 met fin la connexion TCP qui a servi de support au canal
de donnes. C'est le client FTP qui met fin cette connexion.
36 0.457543 192.168.0.10
37 2.447889 192.168.0.10

194.2.0.36
194.2.0.36

TCP
FTP

1175 > ftp [ACK]


Request: CWD pub

Nous somme de nouveau sur le canal de commandes et le client FTP demande changer de
rpertoire. CWD voulant dire : "Change Working Directory". Nous allons dans le rpertoire "pub".
Ce qui va maintenant suivre va ressembler ce que nous venons de voir. Je vous laisse la totalit
des trames pour deux raisons :

38
39
40
41
42
43
44
45
46
47
48
49

Ca va vous permettre de vrifier que vous avez bien compris le mcanisme, parce que je ne
vais pas tout rpter,

Ca va aussi permettre d'observer un dtail qui n'est pas sans importance...

2.471233
2.473782
2.499085
2.502415
2.524624
2.527863
2.549182
2.551642
2.572805
2.572856
2.585185
2.593535

194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
194.2.0.36

Page 12 sur 30

192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
192.168.0.10

FTP
FTP
FTP
FTP
FTP
FTP
FTP
FTP
TCP
TCP
TCP
TCP

Response: 250 CWD command successful.


Request: PWD
Response: 257 "/pub" is current directory.
Request: PORT 192,168,0,10,4,153
Response: 200 PORT command successful.
Request: TYPE A
Response: 200 Type set to A.
Request: LIST
ftp-data > 1177 [SYN]
1177 > ftp-data [SYN, ACK]
ftp > 1175 [ACK]
ftp-data > 1177 [ACK]

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Selon le mme mcanisme que celui vu plus haut, un nouveau canal de donnes est ouvert, mais le
client FTP utilise un nouveau port : 1177, cette fois-ci. C'est ce dtail qui a son importance...
En effet, dans le cas o nous avons beaucoup de fichiers transfrer, nous allons utiliser beaucoup
de ports succesivement. Pour calculer des firewalls qui ne sont pas "statefull", a ne simplifie pas
les choses.
50 2.595535 194.2.0.36
51
52
53
54
55
56
57
58
59
60

2.625058
2.627332
2.627375
2.629615
2.629654
2.630203
2.652599
2.652668
2.654073
2.700163

194.2.0.36
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
194.2.0.36
192.168.0.10
192.168.0.10
194.2.0.36

192.168.0.10 FTP

Response: 150 Opening ASCII mode data


connection for file list.
192.168.0.10 FTP-DATA FTP Data: 59 bytes
192.168.0.10 FTP-DATA FTP Data: 718 bytes
194.2.0.36
TCP
1177 > ftp-data [ACK]
192.168.0.10 FTP
Response: 226-Transfer complete.
194.2.0.36
TCP
1175 > ftp [ACK]
192.168.0.10 FTP
Response: 226 Quotas off
192.168.0.10 FTP-DATA FTP Data: 1229 bytes
194.2.0.36
TCP
1177 > ftp-data [ACK]
194.2.0.36
TCP
1177 > ftp-data [FIN, ACK]
192.168.0.10 TCP
ftp-data > 1177 [ACK]

Bien, nous n'allons pas poursuivre plus longtemps le cheminement dans les sous rpertoires,
d'autant qu' chaque niveau, le catalogue devient de plus en plus volumineux.
87 11.063406
...
95 11.177496
...

192.168.0.10

194.2.0.36

FTP

Request: CWD rfc

192.168.0.10

194.2.0.36

FTP

Request: LIST

Et un grand saut plus loin :


413 29.719734 192.168.0.10
414 29.741101 194.2.0.36

194.2.0.36
FTP
192.168.0.10 FTP

Request: PWD
Response: 257 "/pub/doc/rfc"
is current directory.

Nous arrivons enfin dans le bon rpertoire...


415
416
417
418
419
420
421
422
423
424
425

29.912570
30.584219
30.605939
30.609380
30.635498
30.639387
30.660814
30.660867
30.676003
30.683263
30.684698

192.168.0.10
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
194.2.0.36
194.2.0.36

bytes).
426 30.685450 194.2.0.36
427 30.687400 194.2.0.36

194.2.0.36
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
192.168.0.10
192.168.0.10

TCP
FTP
FTP
FTP
FTP
FTP
TCP
TCP
TCP
TCP
FTP

1180 > ftp [ACK]


Request: TYPE A
Response: 200 Type set to A.
Request: PORT 192,168,0,10,4,157
Response: 200 PORT command successful.
Request: RETR rfc765.txt
ftp-data > 1181 [SYN]
1181 > ftp-data [SYN, ACK]
ftp > 1180 [ACK]
ftp-data > 1181 [ACK]
Response: 150 Opening ASCII mode data
connection for rfc765.txt (146641

192.168.0.10 FTP-DATA FTP Data: 2 bytes


192.168.0.10 FTP-DATA FTP Data: 716 bytes

Nous ouvrons encore un nouveau canal de donnes, nous en sommes maintenant au port 1181,
donnes de type A toujours (ASCII) et utilisons la commande RETR (Retrieve) pour transfrer le
fichier rfc765.txt depuis le serveur FTP vers le client FTP.
Certains lecteurs l'oeil acr auront remarqu que le port utilis par le client FTP sur le canal de
commande a chang depuis le dbut de la session. Pour une raison parasite, il y a eu une
re connexion au serveur la fin de la transmission du catalogue de /pub/doc/rfc, re connexion qui a
entran l'ouverture d'un nouveau canal de commande, sans que le prcdent ne soit ferm.
428 30.687446 192.168.0.10
429 30.710881 194.2.0.36
430 30.712372 194.2.0.36

Page 13 sur 30

194.2.0.36
TCP
1181 > ftp-data [ACK]
192.168.0.10 FTP-DATA FTP Data: 1400 bytes
192.168.0.10 FTP-DATA FTP Data: 1400 bytes

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP
431 30.712414 192.168.0.10
...

Christian CALECA
http://christian.caleca.free.fr/ftp/
194.2.0.36

TCP

1181 > ftp-data [ACK]

Les donnes commencent venir, il y en a pour un moment. Nous nous retrouvons la fin du
fichier :
614 33.613493 192.168.0.10
615 33.636771 194.2.0.36

194.2.0.36
TCP
192.168.0.10 TCP

1181 > ftp-data [FIN, ACK]


ftp-data > 1181 [ACK]

Voil, c'est fini. nous arrtons la transaction avec le serveur FTP :


616
617
618
619
620
621
622
623

36.666211
36.686973
36.689259
36.689275
38.511841
38.530529
38.533514
38.533552

192.168.0.10
194.2.0.36
194.2.0.36
192.168.0.10
192.168.0.10
194.2.0.36
194.2.0.36
192.168.0.10

194.2.0.36
192.168.0.10
192.168.0.10
194.2.0.36
194.2.0.36
192.168.0.10
192.168.0.10
194.2.0.36

TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP

1175 > ftp


ftp > 1175
ftp > 1175
1175 > ftp
1180 > ftp
ftp > 1180
ftp > 1180
1180 > ftp

[FIN,
[ACK]
[FIN,
[ACK]
[FIN,
[ACK]
[FIN,
[ACK]

ACK]
ACK]
ACK]
ACK]

Toutes les connexions TCP encore ouvertes sont fermes, y compris le canal de commande
initialement ouvert (port 1175).

Qu'avons-nous appris ?
Dj beaucoup de choses :

nous avons mis en vidence la prsence du canal de commande et du canal de donnes,


placs sur des connexions TCP diffrentes,

nous avons, dans ce cas de FTP en mode actif, observ que, pour la cration du canal de
donnes, le client FTP :

indique au serveur un numro de port,

se met l'coute sur ce port (fonction "serveur TCP"),

le serveur FTP va quant lui, utiliser le port 20 pour ce canal de donnes et agir en
client TCP.

Ce dtail est extrmement important. Il explique la raison pour laquelle le FTP actif ne
fonctionne pas correctement sur des filtres de paquets qui interdisent tout paquet SYN
depuis le Net vers la zone protge. Nous avons vu en effet qu'ici, le serveur FTP initie une
nouvelle connexion TCP sur le client FTP (ne vous mlangez pas les pdales entre FTP et
TCP svp...).
De plus, si le routeur fait du NAT, comme c'est souvent le cas, a ne va pas tre simple de
savoir qui s'adresse cette nouvelle connexion. N'oublions pas que nous regardons ici ce
qu'il se passe derrire le NAT. Le serveur FTP, qui est sur le Net, n'a aucune connaissance
de l'IP relle de son client. Pour lui, son interlocuteur, c'est le routeur NAT lui-mme, vu du
ct Internet. Je vous laisse rflchir cet aspect des choses...
Je vous l'avais dit, Netfilter sait faire des miracles, si l'on utilise les bons modules,

nous avons vu galement quelques commandes FTP ainsi que quelques codes de rponses,

enfin, nous avons vu un type de transfert, le type A, qui correspond de l'ASCII. Mais tout
fichier n'est pas forcment de l'ASCII. que va-t-il se passer si le fichier transporter est, par

Page 14 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

exemple, une image jpg ?


Bien qu' ce niveau, si vous avez russi suivre ces explications, vous pouvez commencer lire
cette fameuse rfc 765 avec quelques chances d'y comprendre quelque chose, vous sentez bien, n'estce pas, qu'il y aurait encore quelques manipulations intressantes faire...
Rassurez-vous, nous allons les faire dans la suite.

Page 15 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Plus avant
ci, nous allons voir quelques points importants :

Le mode passif,

le transfert de fichiers contenant autre chose que du texte,

un transfert en upload.

Le mode Passif
La premire chose faire, lorsque l'on prend en main un client FTP, c'est de trouver quel endroit
on peut lui expliquer qu'il doit fonctionner en mode actif, ou passif. Continuons avec FileZilla.
Dans le menu "Edition/paramtres" :

La rubrique "Connexion/Paramtres Pare feu" permet, entre autres, de slectionner le mode passif
ou non. Nous allons slectionner le mode passif et voir ce que a donne. Rassurez-vous, nous
n'allons voir que ce qui change vraiment par rapport au mode actif :
No. Time
...

Source

Destination

Protocol Info

L'ouverture de session FTP est faite, la connexion de commandes est tablie, le client envoie la
premire commande "PWD" :
20 10.588511 192.168.0.10

Page 16 sur 30

194.2.0.36

FTP

Request: PWD

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP
21 10.609876 194.2.0.36

Christian CALECA
http://christian.caleca.free.fr/ftp/
192.168.0.10 FTP

Response: 257 "/" is current directory.

Jusqu'ici, tout tait pareil, mais voyons la suite :


22 10.613105 192.168.0.10

194.2.0.36

FTP

Request: PASV

Cette nouvelle commande indique au serveur FTP que nous souhaitons fonctionner en mode passif.
23 10.661077 194.2.0.36

192.168.0.10 FTP

Response: 227 Entering Passive Mode (194,2,0,36,17,77).

Le serveur accepte (227 veut dire : "Passage en mode passif"), et indique un numro de port, ici
17 x 256 77 = 4429
24
25
26
27

10.663545
10.693712
10.697611
10.698306

192.168.0.10
194.2.0.36
192.168.0.10
192.168.0.10

194.2.0.36
192.168.0.10
194.2.0.36
194.2.0.36

FTP
FTP
FTP
TCP

Request: TYPE A
Response: 200 Type set to A.
Request: LIST
1870 > 4429 [SYN]

Voyez ici comment la connexion TCP destine supporter le canal de donnes est cre. Ce n'est
plus le serveur FTP qui, depuis son port 20 initie une connexion vers le client FTP, mais le client
FTP qui ouvre une connexion TCP sur le port que lui a indiqu le serveur, la suite de la
commande PASV.
28
29
30
31

10.731631
10.736716
10.736751
10.757437

194.2.0.36
194.2.0.36
192.168.0.10
194.2.0.36

32 10.761018 194.2.0.36
...

192.168.0.10
192.168.0.10
194.2.0.36
192.168.0.10

TCP
TCP
TCP
FTP

ftp > 1869 [ACK]


4429 > 1870 [SYN, ACK]
1870 > 4429 [ACK]
Response: 150 Opening ASCII mode data
connection for file list
192.168.0.10 FTP-DATA FTP Data: 75 bytes

Le reste ne prsente pas de nouveauts particulires.

Que pouvons-nous en conclure ?


Dans le mode passif, le client FTP est toujours client TCP. A charge pour le serveur FTP d'ouvrir de
nouveaux ports sur lesquels il sera encore serveur TCP, pour le support des canaux de donnes. Le
client FTP n'est jamais serveur TCP. Ca simplifie la vie pour le passage des filtres de paquets, mais
a alourdit la charge des serveurs FTP.
Chaque fois que ce sera possible, surtout si vous travaillez sur des "petits" serveurs FTP , utilisez
plutt le mode actif.

Le transfert non ASCII


C'est la deuxime chose qu'il faut savoir paramtrer sur son client FTP, parce qu'en principe, c'est
lui qui dcide. Nous avons bien vu que c'tait lui qui envoyait la commande TYPE. Toujours sur
Filezilla :

Page 17 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Ce client FTP est vraiment trs bien fait... Toujours dans le menu "Edition/paramtres", allez dans
"Paramtres de transfert/ASCII/Binaire" et voyez. Par dfaut, notre client est paramtr pour faire
une dtection automatique, en fonction de l'extension du fichier. Comme nous avons tlcharg un
fichier txt, il a choisi automatiquement le mode ASCII. Vous pouvez forcer un mode. Bien entendu,
si vous forcez le mode ASCII, les fichiers non ASCII arriveront corrompus. Il n'y a pas ici de
mcanisme de type MIME pour faire de l'encodage base 64 par exemple.
Si vous devez forcer un mode, forcez le mode binaire, qui fonctionnera avec tout type de fichier,
mais pas forcment de manire optimale.

Quelles diffrences ?
Juste un petit morceau de sniff :
No. Time
Source
Destination
...
418 57.591410 192.168.0.10 194.2.0.36

Protocol Info
FTP

Request: TYPE I

Le type demand est maintenant I et non plus A


419 57.612530 194.2.0.36
420 57.615147 192.168.0.10
421 57.635511 194.2.0.36
(194,2,0,36,18,136).
422 57.640090 192.168.0.10
423 57.640783 192.168.0.10
424 57.679211 194.2.0.36
425 57.679269 192.168.0.10
426 57.684695 194.2.0.36
427 57.699374 194.2.0.36

Page 18 sur 30

192.168.0.10 FTP
194.2.0.36
FTP
192.168.0.10 FTP

Response: 200 Type set to I.


Request: PASV
Response: 227 Entering Passive Mode

194.2.0.36
194.2.0.36
192.168.0.10
194.2.0.36
192.168.0.10
192.168.0.10

Request: RETR rfc765.txt


1111 > 4744 [SYN]
4744 > 1111 [SYN, ACK]
1111 > 4744 [ACK]
ftp > 1105 [ACK]
Response: 150 Opening BINARY mode data
connection for rfc765.txt (146641 bytes).

FTP
TCP
TCP
TCP
TCP
FTP

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Le serveur rpond qu'il ouvre le fichier en mode binaire et non plus ASCII :
428 57.722806 194.2.0.36
429 57.724012 194.2.0.36
...

192.168.0.10 FTP-DATA FTP Data: 1412 bytes


192.168.0.10 FTP-DATA FTP Data: 1412 bytes

Quels rsultats ?
Juste pour voir, ouvrons les deux copies tlcharges avec Wordpad.
La copie tlcharge au format ASCII :

Et celle tlcharge au format binaire :

Page 19 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

C'est peut-tre un peu moins lisible...

Mais que s'est-il donc pass ?


Rien de bien grave, rassurez-vous. Le document initial est au format UNIX et le document local est
pass au format Microsoft. La diffrence est infime, mais perturbante.
En ASCII, il existe deux caractres non imprimables nomms CR (Carriage Return, retour chariot ,
de code 0D) et LF (Line Feed, saut de ligne, de code 0A).
Dans un fichier texte UNIX, les retours la ligne sont signals par un LF, alors que chez Microsoft,
ils le sont par un couple CR LF.
Lors du transfert en mode ASCII, la conversion est effectue, alors que lors du transfert binaire, rien
n'est modifi dans le fichier, ce qui est heureux.
Rassurez-vous, si Notepad ne sait pas interprter correctement le code LF tout seul, Wordpad, lui,
sait le faire, et vous retrouverez votre fichier bien lisible, mme s'il est tlcharg en mode binaire.
La RFC 959 explique d'ailleurs la chose au paragraphe 3.1.1.1

O le serveur engueule le client


J'ai hsit dvelopper un transfert "upload", cette opration se passant de faon trs similaire un
"download". Finalement, je me suis dit que ce serait l'occasion de voir quelques subtilits
supplmentaires :

En utilisant un autre client FTP, ici, ce sera le client gFTP sous GNU/Linux,

en utilisant un autre serveur FTP, ici, le serveur perso-ftp.wanadoo.fr.

En effet, chaque client FTP a ses petites habitudes et chaque serveur aussi...
Page 20 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Upload en mode actif d'un fichier binaire depuis gFTP vers persoftp.wanadoo.fr
Une fois de plus, nous allons tudier dans le dtail cet change, a ne fait pas de mal de rpter les
choses.
No.
93
94
95

Time
1.620013
1.650006
1.650162

Source
192.168.0.254
193.252.18.14
192.168.0.254

Destination
193.252.18.14
192.168.0.254
193.252.18.14

Protocol Info
TCP
32781 > ftp [SYN]
TCP
ftp > 32781 [SYN, ACK]
TCP
32781 > ftp [ACK]

Ouverture du canal de contrle.


96 2.228519 193.252.18.14
97 2.228698
98 2.229021
99 2.256639
100 2.261983
passwd.
101 2.262205
102 2.388503
103 2.388952

192.168.0.254

FTP

192.168.0.254
192.168.0.254
193.252.18.14
193.252.18.14

193.252.18.14
193.252.18.14
192.168.0.254
192.168.0.254

TCP
FTP
TCP
FTP

192.168.0.254
193.252.18.14
193.252.18.14

193.252.18.14
192.168.0.254
192.168.0.254

FTP
TCP
FTP

193.252.18.14
192.168.0.254

FTP
FTP

Response: 220 pwp-ftp2 FTP server


(@(#)Version : 3-2-2 2002/08/21) ready.
32781 > ftp [ACK]
Request: USER xxxxxxxx
ftp > 32781 [ACK]
Response: 331 PagePerso login ok, send your
Request: PASS xxxxxx
ftp > 32781 [ACK]
Response: 230 User xxxxxx logged in.
Access restrictions apply.

Identification du client.
104 2.389150 192.168.0.254
105 2.414035 193.252.18.14

Request: TYPE I
Response: 200 Type set to I.

gFTP, quand on lui dit : "Mode binaire", il fait "mode binaire", mme pour la rcupration de la
liste du rpertoire. Bte et disciplin, quoi...
106
107
108
109
110
111

2.414241
2.433222
2.438940
2.462881
2.463200
2.582733

192.168.0.254
193.252.18.14
192.168.0.254
193.252.18.14
192.168.0.254
193.252.18.14

193.252.18.14
192.168.0.254
193.252.18.14
192.168.0.254
193.252.18.14
192.168.0.254

FTP
FTP
FTP
FTP
FTP
TCP

Request: PWD
Response: 257 "/pub" is current directory.
Request: PORT 192,168,0,254,128,14
Response: 200 PORT command successful.
Request: LIST -aL
ftp > 32781 [ACK]

Mais il demande des dtails. Les options "a" et "L" permettent d'obtenir les noms commenant par
un point (entres caches) ainsi que la taille et les attributs de chaque entre du rpertoire.
112 2.757014 193.252.18.14
113 2.757157 192.168.0.254
114 2.774846 193.252.18.14

192.168.0.254
193.252.18.14
192.168.0.254

TCP
TCP
TCP

ftp-data > 32782 [SYN]


32782 > ftp-data [SYN, ACK]
ftp-data > 32782 [ACK]

Ouverture du canal de donnes.


115 2.775365 193.252.18.14

192.168.0.254

116
117
118
119
120
121

192.168.0.254
192.168.0.254
193.252.18.14
193.252.18.14
193.252.18.14
192.168.0.254

2.808833
2.808916
2.808983
2.809821
2.822139
2.835875

193.252.18.14
193.252.18.14
192.168.0.254
192.168.0.254
192.168.0.254
193.252.18.14

FTP

Response: 150 Opening BINARY mode data connection


for /bin/ls.
FTP-DATA FTP Data: 520 bytes
TCP
ftp-data > 32782 [FIN, ACK]
TCP
32782 > ftp-data [ACK]
TCP
32782 > ftp-data [FIN, ACK]
TCP
32781 > ftp [ACK]
TCP
ftp-data > 32782 [ACK]

Le canal de donnes est ferm d'un commun accord.


122
123
126
127
128

2.844263
2.844383
6.738405
6.760458
6.760606

193.252.18.14
192.168.0.254
192.168.0.254
193.252.18.14
192.168.0.254

Page 21 sur 30

192.168.0.254
193.252.18.14
193.252.18.14
192.168.0.254
193.252.18.14

FTP
TCP
FTP
FTP
TCP

Response: 226-Transfer complete.


32781 > ftp [ACK]
Request: PORT 192,168,0,254,128,15
Response: 200 PORT command successful.
32781 > ftp [ACK]

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP
129 6.760844 192.168.0.254

Christian CALECA
http://christian.caleca.free.fr/ftp/
193.252.18.14

FTP

Request: STOR /pub/ie6_proxy_1.gif

TCP
TCP
TCP
TCP

ftp > 32781 [ACK]


ftp-data > 32783 [SYN]
32783 > ftp-data [SYN, ACK]
ftp-data > 32783 [ACK]

Le client va envoyer son fichier.


130
131
132
133

6.886677
6.923111
6.923242
6.947755

193.252.18.14
193.252.18.14
192.168.0.254
193.252.18.14

192.168.0.254
192.168.0.254
193.252.18.14
192.168.0.254

Un nouveau canal de donnes est ouvert.


134 6.948206 193.252.18.14

192.168.0.254

FTP

135 6.959283 192.168.0.254


136 6.960470 192.168.0.254
137 6.982307 192.168.0.254

193.252.18.14
193.252.18.14
193.252.18.14

Response: 150 Opening BINARY mode data connection


for /pub/ie6_proxy_1.gif.
FTP-DATA FTP Data: 1412 bytes
FTP-DATA FTP Data: 1412 bytes
TCP
32781 > ftp [ACK]

192.168.0.254
193.252.18.14
193.252.18.14
192.168.0.254
193.252.18.14
193.252.18.14
192.168.0.254
193.252.18.14
193.252.18.14
193.252.18.14
192.168.0.254
193.252.18.14
193.252.18.14
193.252.18.14
192.168.0.254
192.168.0.254
192.168.0.254
192.168.0.254
192.168.0.254
193.252.18.14
193.252.18.14

TCP
FTP-DATA
FTP-DATA
TCP
FTP-DATA
FTP-DATA
TCP
FTP-DATA
FTP-DATA
FTP-DATA
TCP
FTP-DATA
FTP-DATA
TCP
TCP
TCP
TCP
FTP
TCP
TCP
TCP

Et le transfert dmarre.
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158

6.986320
6.987578
6.988767
6.999923
7.001176
7.002388
7.123111
7.124365
7.125555
7.126746
7.314251
7.315529
7.315885
7.315950
7.502913
7.680958
7.713910
7.714014
7.714093
7.714166
7.714232

193.252.18.14
192.168.0.254
192.168.0.254
193.252.18.14
192.168.0.254
192.168.0.254
193.252.18.14
192.168.0.254
192.168.0.254
192.168.0.254
193.252.18.14
192.168.0.254
192.168.0.254
192.168.0.254
193.252.18.14
193.252.18.14
193.252.18.14
193.252.18.14
193.252.18.14
192.168.0.254
192.168.0.254

ftp-data > 32783 [ACK]


FTP Data: 1412 bytes
FTP Data: 1412 bytes
ftp-data > 32783 [ACK]
FTP Data: 1412 bytes
FTP Data: 1412 bytes
ftp-data > 32783 [ACK]
FTP Data: 1412 bytes
FTP Data: 1412 bytes
FTP Data: 1412 bytes
ftp-data > 32783 [ACK]
FTP Data: 1412 bytes
FTP Data: 372 bytes
32783 > ftp-data [FIN, ACK]
ftp-data > 32783 [ACK]
ftp-data > 32783 [ACK]
ftp-data > 32783 [ACK]
Response: 226 Transfer complete.
ftp-data > 32783 [FIN, ACK]
32781 > ftp [ACK]
32783 > ftp-data [ACK]

Le transfert est termin, le canal de donnes est ferm.


159 7.714542 192.168.0.254
160 7.765540 193.252.18.14
161 7.802347 192.168.0.254

193.252.18.14
192.168.0.254
193.252.18.14

FTP
FTP
TCP

Request: SITE CHMOD 744 /pub/ie6_proxy_1.gif


Response: 200 CHMOD command successful.
32781 > ftp [ACK]

Le monde Unix...
Le client gFTP demande au serveur de changer les attributs du fichier. 744, a veut dire en gros que
le propritaire a tous les droits et que les autres ne peuvent que lire.
162
163
164
165
166
167
168
169

8.334702
8.355047
8.355196
8.355366
8.435637
8.435767
8.457199
8.457363

192.168.0.254
193.252.18.14
192.168.0.254
192.168.0.254
193.252.18.14
192.168.0.254
193.252.18.14
193.252.18.14

193.252.18.14
192.168.0.254
193.252.18.14
193.252.18.14
192.168.0.254
193.252.18.14
192.168.0.254
192.168.0.254

170
171
172
173
174
175
176

8.464111
8.464194
8.464262
8.465013
8.492369
8.494386
8.511638

193.252.18.14
193.252.18.14
192.168.0.254
192.168.0.254
192.168.0.254
193.252.18.14
193.252.18.14

192.168.0.254
192.168.0.254
193.252.18.14
193.252.18.14
193.252.18.14
192.168.0.254
192.168.0.254

Page 22 sur 30

FTP
FTP
TCP
FTP
TCP
TCP
TCP
FTP

Request: PORT 192,168,0,254,128,16


Response: 200 PORT command successful.
32781 > ftp [ACK]
Request: LIST -aL
ftp-data > 32784 [SYN]
32784 > ftp-data [SYN, ACK]
ftp-data > 32784 [ACK]
Response: 150 Opening BINARY mode data connection
for /bin/ls.
FTP-DATA FTP Data: 591 bytes
TCP
ftp-data > 32784 [FIN, ACK]
TCP
32784 > ftp-data [ACK]
TCP
32784 > ftp-data [FIN, ACK]
TCP
32781 > ftp [ACK]
TCP
ftp-data > 32784 [ACK]
FTP
Response: 226-Transfer complete.

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Rien de bien nouveau, le client rafrachit la liste des entres du rpertoire courant.
177 8.511763 192.168.0.254
178 14.584417 192.168.0.254
179 14.603193 193.252.18.14

193.252.18.14
193.252.18.14
192.168.0.254

TCP
TCP
TCP

32781 > ftp [ACK]


32781 > ftp [FIN, ACK]
ftp > 32781 [ACK]

Le client ferme alors le canal de contrle, sans autre forme de procs...


180 14.603616 193.252.18.14

192.168.0.254

FTP

Response: 221 You could at least say goodbye.

Et se fait jeter par le serveur qui, bien poli, aurait aim entendre une formule de politesse du genre
"au revoir et merci".
181 14.603731 192.168.0.254

193.252.18.14

TCP

32781 > ftp [RST]

Mais le client rpond en gros "va te faire f..." [RST] indiquant au serveur qu'il parle devant une
porte ferme.
Finalement, le savoir vivre informatique est aussi mal distribu que le savoir vivre humain...

a y est ? Nous avons tout vu ?


Non. FTP sait encore faire d'autres choses que nous n'avons pas vues ici, mais nous avons pu
observer l'essentiel :

Le transfert binaire ou ASCII. C'est une notion qu'il faut connatre si l'on ne veut pas risquer
de perdre beaucoup de temps. Si l'on peut transfrer n'importe quoi en mode binaire sans
trop de risques, il n'en va pas de mme si l'on essaye de transfrer en mode ASCII un fichier
qui n'est pas du texte.

Les modes Actif et Passif. La notion est elle aussi essentielle, surtout s'il y a un pare-feu
filtrage de paquets non configur pour autoriser le mode actif, c'est dire le mode o le
client FTP se retrouve serveur TCP sur le canal de donnes.

Nous avons vu avec suffisamment de prcision le mcanisme des canaux de commandes et


de donnes, en modes actif et passif, pour pouvoir configurer avec quelques espoir de
russite un firewall du genre GNU/Linux avec Netfilter.

Nous n'avons pas vu en revanche :

Comment utiliser FTP pour faire de l'impression distante.

Comment utiliser FTP travers un serveur PROXY ou un proxy SOCKS, mais ces
problmes ne sont pas spcifiquement du ressort de FTP et ne peuvent se rencontrer qu'en
entreprise.

Enfin, nous n'avons pas vu certains modes de transfert que FTP sait faire, relatifs la
compression des donnes et la reprise en cas d'incident, mais pour utiliser ces possibilits,
encore faut-il disposer d'un client qui sache les grer.

Finalement, nous n'avons pas fait non plus de transfert de fichier de serveur serveur avec
un client distant. Pour mener bien cette tche, il vous faudra :

Un client FTP qui sache faire ce genre d'oprations, sous Windows, je n'en ai trouv

Page 23 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

qu'un : FlashFXP5, qui est un shareware,

des serveurs FTP qui acceptent ce genre d'oprations.

Comme la maison ne recule devant rien, vous trouverez tout de mme en page suivante une
illustration de ce type de transfert.
Si vous voulez en savoir d'avantage sur FTP, vous pourrez lire maintenant la RFC 9596 (dont la
traduction en franais est disponible ici7) avec quelques chances d'y comprendre quelque chose.

5 FlashFXP : http://www.flashfxp.com/
6 RFC 959 : http://www.ietf.org/rfc/rfc0959.txt?number=959
7 RFC 959 en franais : http://abcdrfc.free.fr/rfc-vf/rfc959.html

Page 24 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

Cadeau bonus
Le transfert de serveur serveur, via un client tiers
Je vous l'ai dit, ne reculant devant aucune difficult, nous allons tout de mme illustrer cet aspect du
protocole FTP.

Ce qui est ncessaire


Pour que a fonctionne, il nous faut disposer :

de deux serveurs FTP, configurs pour accepter ce type d'opration, ce n'est pas toujours le
cas, a l'est mme rarement. Faites quelques recherches sur ce sujet et vous verrez qui se sert
le plus souvent de ce type de fonctionnalit...

un client FTP qui sache le faire.

Pour illustrer l'opration, il faut pouvoir sniffer la totalit de la manipulation, c'est dire que les
trois protagonistes doivent tre placs sur le mme rseau IP, sans composants de type switch ou
pont ; uniquement des hubs.
J'ai donc mont deux serveurs FTP sous GNU/Linux (ProFTPD), configurs pour "Allow foreign
data transfers". Dans la pratique, il faut utiliser la directive "AllowForeignAddress on" dans
/etc/proftpd.conf, pour la zone o l'on dsire accepter ce type d'opration. Voici ce que dit la
documentation de ProFTPD :
AllowForeignAddress

Syntax: AllowForeignAddress on|off


Default: AllowForeignAddress off
Context: server config, <VirtualHost&, <Anonymous>, <Global>
Compatibility: 1.1.7 and later
Normally, proftpd disallows clients from using the ftp PORT command with anything other than
their own address (the source address of the ftp control connection), as well as preventing the use
of PORT to specify a low-numbered (< 1024) port. In either case, the client is sent an "Invalid
port" error and a message is syslog'd indicating either "address mismatch" or "bounce attack". By
enabling this directive, proftpd will allow clients to transmit foreign data connection addresses that
do not match the client's address. This allows such tricks as permitting a client to transfer a file
between two FTP servers without involving itself in the actual data connection. Generally it's
considered a bad idea, security-wise, to permit this sort of thing.
AllowForeignAddress only affects data connection addresses; not tcp ports. There is no way (and
no valid reason) to allow a client to use a low-numbered port in it's PORT command.
Pour ceux qui ne comprennent absolument pas l'anglais, disons qu'en gros, cette option est par
dfaut dsactive et que c'est une mauvaise ide que de l'activer, pour des raisons de scurit.
Le client FTP est quant--lui install sur une machine Windows, il s'agit du shareware FlashFXP,
qui sait faire a trs bien, et beaucoup d'autres choses encore. C'est un trs bon client FTP, mais
Page 25 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

c'est un shareware.
Si vous faites des recherches sur le Net propos de cette opration, vous verrez souvent apparatre
l'acronyme FXP (File eXchange Protocol). FXP est souvent prsent comme un protocole part
entire, ce n'est pas vrai, ce n'est qu'une fonctionnalit dcrite dans FTP.

Mais passons l'acte...


Pour vous aider vous y retrouver :

Un serveur FTP s'appelle "gw1.maison.mrs" et dispose de l'adresse 192.168.0.250,

l'autre serveur s'appelle pchris2.maison.mrs et dispose de l'adresse 192.168.0.254,

le client Windows s'appelle pchris.maison.ms et dispose de l'adresse 192.168.0.10.

Il n'y a aucun filtre sur le sniffeur, nous verrons donc aussi ARP et les requtes DNS, DNS
galement plac sur gw1.maison.mrs. Pour allger la lecture, j'ai supprim ces traces inutiles pour la
comprhension de FXP.
De mme, ce client FTP utilise quelques commandes FTP non vues plus haut, et qui ne sont pas
fondamentales pour comprendre FXP. Je les ai galement ignores.
No. Time

Source

Destination

Protocol Info

Ouverture du canal de contrle sur le premier serveur :


5
6
7
10

19.364106
19.364747
19.364790
19.488677

192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10

TCP
TCP
TCP
FTP

11 19.495288
12 19.495852
13 19.543993
chris.
14 19.544575
15 19.545099
16 19.989752

192.168.0.10
192.168.0.250
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.10

FTP
TCP
FTP

1219 > ftp [SYN]


ftp > 1219 [SYN, ACK]
1219 > ftp [ACK]
Response: 220 ProFTPD 1.2.5 Server
(ProFTPD Default Installation)
[gw1.maison.mrs]
Request: USER chris
ftp > 1219 [ACK]
Response: 331 Password required for

192.168.0.10
192.168.0.250
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.10

FTP
TCP
FTP

Request: PASS xxxxxxx


ftp > 1219 [ACK]
Response: 230 User chris logged in.

Voil qui est fait. Nous n'utilisons pas ici de connexion anonyme, mais un identifiant de connexion
d'un utilisateur. C'est ncessaire pour disposer (ventuellement) d'un accs en criture.
...
24 20.078321 192.168.0.10
25 20.080811 192.168.0.250

192.168.0.250
192.168.0.10

FTP
FTP

Request: PWD
Response: 257 "/" is current directory.

FTP
FTP
FTP
FTP

Request: TYPE A
Response: 200 Type set to A.
Request: PASV
Response: 227 Entering Passive Mode
(192,168,0,250,12,185).

Rcupration du listing du rpertoire :


26
27
28
29

20.090418
20.092416
20.099576
20.101994

192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10

Ouverture d'un canal de donnes pour la rception du listing :


30
31
32
33
34

20.102720
20.103284
20.103327
20.109338
20.112077

Page 26 sur 30

192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.10
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.250
192.168.0.10

TCP
TCP
TCP
FTP
FTP

1220 > 3257 [SYN]


3257 > 1220 [SYN, ACK]
1220 > 3257 [ACK]
Request: LIST
Response: 150 Opening ASCII

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

35
36
37
38
39
40
41
42
43
44
45

20.196803
20.203187
20.203223
20.204008
20.204043
20.205736
20.205758
20.206247
20.214397
20.214872
20.363982

192.168.0.250
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10

Christian CALECA
http://christian.caleca.free.fr/ftp/
192.168.0.10
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250

FTP-DATA
FTP-DATA
TCP
FTP-DATA
TCP
FTP
TCP
FTP
TCP
TCP
TCP

mode data connection for file list


FTP Data: 83 bytes
FTP Data: 1460 bytes
1220 > 3257 [ACK]
FTP Data: 393 bytes
1220 > 3257 [ACK]
Response: 226-Transfer complete.
1219 > ftp [ACK]
Response: 226 Quotas off
1220 > 3257 [FIN, ACK]
3257 > 1220 [ACK]
1219 > ftp [ACK]

Le listing est transmis et le canal de donnes est ferm.


Nous allons faire maintenant exactement la mme chose avec l'autre serveur FTP
50
51
52
55

39.613933
39.614229
39.614272
39.636550

192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254

192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10

56
57
58
59
60
61
69
70
71
72
73
74

39.642774
39.643003
39.644690
39.645224
39.676795
39.743052
39.774644
39.775221
39.784746
39.785222
39.791956
39.792560

192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254

192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10

75
76
77
78
79

39.793291
39.793518
39.793549
39.800533
39.801169

192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254

192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10

80
81
82
83
84
85
86
87
88
89
90
91

39.978200
40.059200
40.061438
40.061471
40.062869
40.063016
40.063049
40.063095
40.063169
40.063182
40.076529
40.076735

192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254

192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10

TCP
TCP
TCP
FTP

1221 > ftp [SYN]


ftp > 1221 [SYN, ACK]
1221 > ftp [ACK]
Response: 220 ProFTPD 1.2.5 Server
(ProFTPD Default Installation)
[pchris2.maison.mrs]
FTP
Request: USER chris
TCP
ftp > 1221 [ACK]
FTP
Response: 331 Password required for chris.
FTP
Request: PASS xxxxxxx
TCP
ftp > 1221 [ACK]
FTP
Response: 230 User chris logged in.
FTP
Request: PWD
FTP
Response: 257 "/" is current directory.
FTP
Request: TYPE A
FTP
Response: 200 Type set to A.
FTP
Request: PASV
FTP
Response: 227 Entering Passive Mode
(192,168,0,254,128,12).
TCP
1222 > 32780 [SYN]
TCP
32780 > 1222 [SYN, ACK]
TCP
1222 > 32780 [ACK]
FTP
Request: LIST
FTP
Response: 150 Opening ASCII mode data
connection for file list
TCP
1221 > ftp [ACK]
FTP-DATA FTP Data: 83 bytes
FTP-DATA FTP Data: 1460 bytes
TCP
1222 > 32780 [ACK]
FTP-DATA FTP Data: 1460 bytes
FTP-DATA FTP Data: 110 bytes
TCP
1222 > 32780 [ACK]
FTP
Response: 226-Transfer complete.
FTP
Response: 226 Quotas off
TCP
1221 > ftp [ACK]
TCP
1222 > 32780 [FIN, ACK]
TCP
32780 > 1222 [ACK]

A ce niveau, le client FTP a fait les choses suivantes :

ouverture d'un canal de commande sur le premier serveur,

ouverture d'un canal de donnes sur le premier serveur,

rcupration du contenu du rpertoire de base du premier serveur,

fermeture du canal de donnes sur le premier serveur,

ouverture d'un canal de commande sur le second serveur,

ouverture d'un canal de donnes sur le second serveur,

Page 27 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP

Christian CALECA
http://christian.caleca.free.fr/ftp/

rcupration du contenu du rpertoire de base du second serveur,

fermeture du canal de donnes sur le second serveur.

Rappelons pour la suite, que l'objectif est de transfrer un fichier depuis 192.168.0.250 vers
192.168.0.254.
92 49.440572 192.168.0.10
93 49.441478 192.168.0.254

192.168.0.254
192.168.0.10

FTP
FTP

Request: SIZE UsersGuide.pdf


Response: 550 UsersGuide.pdf:
No such file or directory

Un moyen de savoir si le fichier existe dj sur la cible. Tout va bien, il n'y est pas.
94
95
96
97

49.453420
49.455704
49.462042
49.462533

192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.254

192.168.0.250
192.168.0.10
192.168.0.254
192.168.0.10

FTP
FTP
FTP
FTP

Request: TYPE
Response: 200
Request: TYPE
Response: 200

I
Type set to I.
I
Type set to I.

Le client demande aux deux serveurs de faire le transfert en mode Image (binaire).
98 49.474530 192.168.0.10
99 49.476988 192.168.0.250

192.168.0.250
192.168.0.10

FTP
FTP

Request: PASV
Response: 227 Entering Passive Mode
(192,168,0,250,12,186).

FTP
FTP

Request: PORT 192,168,0,250,12,186


Response: 200 PORT command successful.

Le serveur source est plac en mode passif.


100 49.483559 192.168.0.10
101 49.484082 192.168.0.254

192.168.0.254
192.168.0.10

Le serveur cible va utiliser le port 3258 de la source.


Mais avez-vous bien remarqu la commande PORT ? Le client (192.168.0.10) envoie au serveur
cible (192.168.0.254) la commande PORT avec, comme adresse, celle du serveur source
(192.168.0.250).
Dans la pratique, le serveur cible est donc invit ouvrir un canal de donnes directement sur le
serveur source, sans passer par le client, ce que nous allons vrifier trs prochainement.
102 49.490373 192.168.0.10

192.168.0.254

FTP

Request: STOR UsersGuide.pdf

Le client demande la cible de rcuprer le fichier.


103 49.504530 192.168.0.254
104 49.505090 192.168.0.250
105 49.505220 192.168.0.254

192.168.0.250
192.168.0.254
192.168.0.250

TCP
TCP
TCP

ftp-data > 3258 [SYN]


3258 > ftp-data [SYN, ACK]
ftp-data > 3258 [ACK]

La cible (192.168.0.254) ouvre donc un canal de donnes depuis son port 20 (ftp-data) vers la
source (192.168.0.250) sur le canal indiqu prcdemment : 3258.
106 49.507460 192.168.0.254
connection

192.168.0.10

FTP

Response: 150 Opening BINARY mode data


for UsersGuide.pdf.

La cible est maintenant prte recevoir les donnes.


107 49.513809 192.168.0.10

192.168.0.250

FTP

Request: RETR UsersGuide.pdf

Le client demande maintenant la source d'envoyer les donnes.


108 49.525033 192.168.0.250

192.168.0.10

FTP Response: 150 Opening BINARY mode data connection


for UsersGuide.pdf (511748 bytes).

La source est prte envoyer les donnes.


Page 28 sur 30

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP
109
110
111
112

49.541114
49.542353
49.542423
49.542494

192.168.0.250
192.168.0.250
192.168.0.254
192.168.0.254

Christian CALECA
http://christian.caleca.free.fr/ftp/
192.168.0.254
192.168.0.254
192.168.0.250
192.168.0.250

FTP-DATA
FTP-DATA
TCP
TCP

FTP Data: 1448 bytes


FTP Data: 1448 bytes
ftp-data > 3258 [ACK]
ftp-data > 3258 [ACK]

TCP
FTP

ftp-data > 3258 [ACK]


Response: 226 Transfer complete.

Et le transfert commence...
Laissons le faire tranquillement jusqu' la fin.
...
652 49.993346 192.168.0.254
653 49.993429 192.168.0.250

192.168.0.250
192.168.0.10

La source a fini son transfert, elle le signale au client (pas la cible).


654 49.993629 192.168.0.254
655 49.994016 192.168.0.250

192.168.0.250
192.168.0.254

TCP
TCP

ftp-data > 3258 [FIN, ACK]


3258 > ftp-data [ACK]

La cible ferme le canal de donnes.


Comment fait donc la cible pour savoir que la totalit des donnes a t transfre, alors que la
rponse 226 a t envoye au client FTP, qui ne l'a pas rpercut la cible ?
Vous le saurez en lisant la rfc :-)
656 49.998088 192.168.0.254

192.168.0.10

FTP

Response: 226 Transfer complete.

La cible signale galement au client que le transfert est fini.


Et voil. Pour le reste, il n'y a rien de bien nouveau, le client va rafrachir l'affichage des contenus
des dossiers des deux serveurs. Comme nous n'avons plus rien faire, nous fermons les canaux de
commandes sur les deux serveurs.
Je vous laisse la suite sniff, pour que vous puissiez vrifier par vous-mme.
657
658
659
660

50.031721
50.033904
50.040995
50.043551

192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10

661
662
663
664
665

50.044240
50.044848
50.044896
50.051654
50.061709

192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.10
192.168.0.250

192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.250
192.168.0.10

666
667
668
669
670
671
672
673
674
675
676
677
678
679
680

50.097847
50.104583
50.104617
50.105386
50.105419
50.107014
50.107031
50.107533
50.115291
50.115737
50.155919
50.163703
50.164199
50.171900
50.172516

192.168.0.250
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254

192.168.0.10
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10

681
682
683
684
685

50.173205
50.173433
50.173470
50.180336
50.183052

192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254

192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10

Page 29 sur 30

FTP
FTP
FTP
FTP

Request: TYPE A
Response: 200 Type set to A.
Request: PASV
Response: 227 Entering Passive Mode
(192,168,0,250,12,187).
TCP
1223 > 3259 [SYN]
TCP
3259 > 1223 [SYN,ACK]
TCP
1223 > 3259 [ACK]
FTP
Request: LIST
FTP
Response: 150 Opening ASCII mode data connection
for file list
FTP-DATA FTP Data: 83 bytes
FTP-DATA FTP Data: 1460 bytes
TCP
1223 > 3259 [ACK]
FTP-DATA FTP Data: 393 bytes
TCP
1223 > 3259 [ACK]
FTP
Response: 226-Transfer complete.
TCP
1219 > ftp [ACK]
FTP
Response: 226 Quotas off
TCP
1223 > 3259 [FIN, ACK]
TCP
3259 > 1223 [ACK]
TCP
1221 > ftp [ACK]
FTP
Request: TYPE A
FTP
Response: 200 Type set to A.
FTP
Request: PASV
FTP
Response: 227 Entering Passive Mode
(192,168,0,254,128,13).
TCP
1224 > 32781 [SYN]
TCP
32781 > 1224 [SYN, ACK]
TCP
1224 > 32781 [ACK]
FTP
Request: LIST
FTP
Response: 150 Opening ASCII mode data connection
for file list

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Le protocole FTP
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708

50.192934
50.195151
50.195183
50.196585
50.196787
50.196822
50.196866
50.196883
50.197117
50.210196
50.210395
50.256503
50.357064
55.592433
55.592873
55.593249
55.594302
55.594334
56.783780
56.785470
56.785846
56.789903
56.789942

Page 30 sur 30

192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10

Christian CALECA
http://christian.caleca.free.fr/ftp/
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.250
192.168.0.254
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.10
192.168.0.254
192.168.0.250
192.168.0.10
192.168.0.250
192.168.0.10
192.168.0.250

FTP-DATA FTP Data: 83 bytes


FTP-DATA FTP Data: 1460 bytes
TCP
1224 > 32781 [ACK]
FTP-DATA FTP Data: 1460 bytes
FTP-DATA FTP Data: 181 bytes
TCP
1224 > 32781 [ACK]
FTP
Response: 226-Transfer complete.
TCP
1221 > ftp [ACK]
FTP
Response: 226 Quotas off
TCP
1224 > 32781 [FIN, ACK]
TCP
32781 > 1224 [ACK]
TCP
1219 > ftp [ACK]
TCP
1221 > ftp [ACK]
FTP
Request: QUIT
FTP
Response: 221 Goodbye.
TCP
1221 > ftp [FIN, ACK]
TCP
ftp > 1221 [FIN, ACK]
TCP
1221 > ftp [ACK]
FTP
Request: QUIT
FTP
Response: 221 Goodbye.
TCP
1219 > ftp [FIN, ACK]
TCP
ftp > 1219 [FIN, ACK]
TCP
1219 > ftp [ACK]

Ralis partir des pages du site, du 6 mars 2005 par Laurent BAYSSE

Vous aimerez peut-être aussi