Affichage des articles dont le libellé est gestion. Afficher tous les articles
Affichage des articles dont le libellé est gestion. Afficher tous les articles

Apprenez le fonctionnement des reseaux TCP/IP _ Par Romain Guichard

Le Plan:


Télécharger:




Le protocole FTP: Les roles et Les bases

Le protocole FTP

Pourquoi s'intéresser à FTP ?

Le protocole FTP est probablement le protocole applicatif le plus complexe, et aussi celui qui est le moins utilisé au maximum de ses capacités.

Il est intéressant d'étudier FTP au moins pour les raisons suivantes :
C'est le protocole le plus sûr pour faire du téléchargement de fichiers, même si cette opération peut aussi être réalisée avec HTTP,
ce protocole peut poser problème 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 impératif de bien comprendre le processus, faute de quoi, les transferts FTP resteront probablement bloqués à un moment où à un autre.

Que peut-on faire avec FTP ?

Parmi les applications les plus fréquentes :
téléchargement de fichiers depuis un serveur vers le client (Download),
téléchargement 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 méthode soit de moins en moins utilisée, 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 intéressante pour l'internaute moyen, ça reste une fonctionnalité importante pour les administrateurs de sites distants.

Pourquoi FTP ?

Transfert de fichiers sur un réseau:

Il est peut-être bon de faire une mise au point préalable, à propos du transfert de fichiers sur un réseau. Ceux qui sont familiers avec les LAN le savent bien, rien de plus simple en effet que de déplacer des fichiers d'une machine à l'autre, tous les systèmes d'exploitation réseau proposent un moyen de le faire simplement.

Les réseaux Microsoft

Le voisinage réseau est fait pour ça. Il suffit, sur un poste du réseau, de définir le partage d'un répertoire, pour que ce dernier apparaisse dans le voisinage réseau. Si l'on possède les droits en lecture et écriture, il sera alors très simple d'utiliser ce répertoire distant, comme on le ferait avec un répertoire local.

explorateur

Le chemin \\gw1\chris\chris est appelé un chemin UNC (Universal Naming Convention). Comprenons nous bien, cette convention n'a de réalité 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 réduit pas au monde Microsoft...
Pour fonctionner, le voisinage réseau utilise un protocole propriétaire, nommé SMB (Server Message Block), lui même s'appuyant sur NetBIOS (NETwork Basic Input-Output System).

Les réseaux Unix

Sun a développé NFS (Network File System), qui permet de monter un répertoire distant dans l'arborescence locale. Le résultat est sensiblement le même qu'avec le voisinage réseau de Microsoft, et tout aussi "propriétaire".

Et les autres...

Et chaque concepteur de NOS (Network Operating System) y est allé de sa recette "maison".
Tous ces systèmes propriétaires fonctionnent, mais ne savent pas communiquer entre eux. Sur un réseau hétérogène, c'est à dire un réseau où cohabitent des machines qui ne fonctionnent pas toutes avec le même genre de NOS, il devient difficile, voire impossible, de réaliser des transferts de fichiers.
Il est certes possible d'installer des "passerelles", comme par exemple SAMBA sur GNU/Linux, qui permet une interopérabilité entre ces systèmes et les réseaux Microsoft. De la même manière, il existe des services Unix qui peuvent s'installer sur Windows pour permettre de "voir" les partages Unix sur un réseau Microsoft. Ces solutions restent tout de même basées sur des protocoles propriétaires.

File Transfert Protocol

FTP, qui est un protocole ouvert, peut être exploité sur tout système disposant d'une pile IP. Il devient donc possible de réaliser des transferts, sans se préoccuper du NOS de chacune des machines.
Contrairement à ce qu'il peut paraître, FTP est un protocole très complexe, capable de beaucoup plus de choses qu'un simple téléchargement 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 possibilités 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 réaliser ces opérations. Passons sur les fonctions FTP implémentées dans les navigateurs web (Internet Explorer, Mozilla...), qui ne sont pas toujours très 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 : Filezilla.
En plus d'être sous licence GPL, ce logiciel est également localisé en français, ce qui ne gâte rien. Je vous le conseille absolument. Voici l'allure de sa fenêtre de travail dans sa version 2.1.3a :
FileZilla
Dans la suite, nous aurons également l'occasion d'utiliser un "shareware" : FlashFXP qui sait faire des choses que FileZilla ne sait réaliser.

Clients GNU/Linux

Ici, le choix est peut-être plus restreint. Le plus abouti (parmi ceux que je connais) est probablement gftp , naturellement sous licence GPL :
gFTP

Autres possibilités

Il existe également des utilitaires FTP en ligne de commande, aussi bien sous Windows que sous Linux. Il sont certainement moins conviviaux, mais pas forcément 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 accès en lecture seule dans la partie publique du serveur, mais il existe également des parties privées où les clients disposant d'un compte peuvent accéder en écriture sur certains répertoires de l'arborescence. C'est le cas, par exemple, pour les mises à jour de pages web personnelles.
schéma
La première 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 données elle-mêmes.
Le client FTP  (partie de droite), par l'intermédiaire 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/déposer" l'utilisateur exploitera FTP sans en connaître la multitude de commandes. Mais sachez qu'avec beaucoup de courage et de connaissance du protocole, vous pourriez utiliser Telnet pour faire du FTP.

L'autre cas

schémaUn utilisateur pourra exploiter FTP pour transférer depuis son poste de travail des fichiers d'un serveur distant à un autre serveur distant, sans que les données ne transitent par sa machine, ce qui est fort intéressant si l'on travaille depuis une connexion RTC pour passer des données d'une machine à une autre, ces dernières étant, elles, connectées par des liens à haut débit.
Cependant, cette opération ne sera possible que si les serveurs FTP l'acceptent, ce qui n'est pas souvent le cas, pour des raisons de sécurité.
Après avoir longuement tourné autour du pot (et avoir relu plusieurs fois la RFC 959), j'ai finalement pensé que le meilleur moyen pour comprendre FTP n'était certainement pas la lecture de cette RFC mais plutôt l'expérimentation. Nous allons donc mettre en oeuvre FTP, voir comment ça se passe et vérifier seulement après 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-même connecté à l'Internet par une passerelle NAT GNU/Linux. Un sniffeur est placé sur le poste Windows lui-même, il aurait pu l'être sur la passerelle.

Modes Actif et Passif

Il faut bien prendre le problème par un bout pour le décortiquer, même si pour l'instant, nous ne savons rien, ou pas grand chose, de FTP. Nous sommes donc obligé de faire appel à un paramétrage 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 manières de fonctionner, à peine différentes, mais la différence 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 mode passif, car le mode actif risque de se solder rapidement par un échec. Ceci dit, mon firewall à moi que j'ai fait moi-même avec IPtables, il sait parfaitement reconnaître du FTP actif. Nous allons donc commencer par ce mode là, qui est la configuration par défaut de Filezilla. 
Nous allons nous connecter au serveur ftp.oleane.fr, parcourir son arborescence,  et télécharger un fichier quelconque, par exemple /pub/doc/rfc/rfc765.txt, puis qu'on en parle. Cette RFC est rendue obsolète par la RFC 959, mais ça peut servir de début...

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 façon la plus linéaire possible, c'est ce qui rend ce paragraphe très long. Vous êtes prêts ? Allons-y.

Etablissement de la connexion pour les commandes 

No. Time     Source        Destination  Protocol Info
  1 0.000000 192.168.0.10  194.2.0.36   TCP      1175 > ftp [SYN]
  2 0.022327 194.2.0.36    192.168.0.10 TCP      ftp > 1175 [SYN, ACK]
  3 0.022356 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
Etablissement 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]. Etait-il nécessaire 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 détail 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 présentant. Chaque réponse commence par un nombre, optionnellement suivi d'un commentaire. La réponse 220 signifie : "Service disponible pour nouvel utilisateur".
Vous aurez l'occasion de constater dans la suite à quel point les systèmes informatiques savent être civilisés (souvent plus que les humains). Le serveur se présente, par la même occasion.
  5 0.057744 192.168.0.10  194.2.0.36   FTP      Request: USER anonymous
Le client se présente aussi en indiquant son nom. Comme nous avons fait un accès anonyme, nous utilisons le nom conventionnel "anonymous". Nous n'aurons droit qu'à un accès 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'accès en écriture dans un répertoire de l'arborescence.
  6 0.078527 194.2.0.36    192.168.0.10 TCP      ftp > 1175 [ACK]
  7 0.081892 194.2.0.36    192.168.0.10 FTP      Response: 331 Anonymous login ok, send your complete
                                                          e-mail address as password.
Le serveur accepte les accès anonymes. Ce n'est pas une obligation, certains serveurs ne le font pas. En général, en accès anonyme, on envoie son adresse e-mail comme mot de passe, mais tout ce qui a vaguement une forme d'adresse e-mail est généralement 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 même...
PASS est une commande FTP, c'est l'abréviation de Password.
  9 0.108851 194.2.0.36    192.168.0.10 FTP      Response: 230-Welcome, archive user 
                                                           anonymous@ca-marseille-51-107.abo.wanadoo.fr!
 10 0.109282 194.2.0.36    192.168.0.10 FTP      Response: 230-
La preuve... La réponse 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'expérience montre que dans la plupart des cas, le serveur se moque complètement du mot de passe envoyé pour une connexion anonyme.
 11 0.109313 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
 12 0.109914 194.2.0.36    192.168.0.10 FTP      Response: 230-The local time is: 
                                                           Sat Jan 11 10:32:57 2003
 13 0.110341 194.2.0.36    192.168.0.10 FTP      Response: 230-
 14 0.110365 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
 15 0.131452 194.2.0.36    192.168.0.10 FTP      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 problème à 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 réponse. Jusqu'ici, c'était relativement simple, nous n'avons transmis que des commandes et des réponses à ces commandes. Maintenant, ça va commencer à se compliquer, parce que nous allons faire aussi transiter des données.
 18 0.176308 192.168.0.10  194.2.0.36   FTP      Request: PORT 192,168,0,10,4,152
Première commande curieuse : PORT 192.168.0.10,4,152, qui nécessite quelques explications.
  • PORT, c'est une commande. Le client signale qu'il voudrait utiliser un port particulier
  • 192.168.0.10, on reconnaît, c'est l'adresse du client,
  • 4,152, c'est la notation d'un numéro de port, écrit à la mode des adresses IP, c'est à dire sous forme de deux octets, dont chaque octet est exprimé en valeur décimale. Dans la pratique, ça veut dire que le port spécifié 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 répond 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 données 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 présents dans le répertoire courant (l'équivalent de la commande DIR de MSDOS ou ls de UNIX).
Attention !!!
Ce qu'il va se passer maintenant réclame beaucoup d'attention. Rappelons-nous :
  • Que nous sommes en mode Actif,
  • Que le client a demandé l'usage du port 1176
 23 0.247769 194.2.0.36    192.168.0.10 TCP      ftp-data > 1176 [SYN]
 24 0.247826 192.168.0.10  194.2.0.36   TCP      1176 > ftp-data [SYN, ACK]
 25 0.264940 194.2.0.36    192.168.0.10 TCP      ftp > 1175 [ACK]
 26 0.267461 194.2.0.36    192.168.0.10 TCP      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). 

Résumons nous

A ce stade, nous avons deux connexions TCP ouvertes :
  • 192.168.0.10:1175 -> 194.2.0.36:21. Cette connexion sert à faire passer les commandes et les réponses à 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 données. Ici, la liste du répertoire racine du serveur FTP vers le client FTP, qui agit comme un serveur TCP. Ce sera le canal de données.
 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 répond 150, c'est à dire : "Statut de fichier vérifié, ouverture de canal de données en cours".
 28 0.303502 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 75 bytes
 29 0.305993 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 699 bytes
 30 0.306052 192.168.0.10  194.2.0.36   TCP      1176 > ftp-data [ACK]
 31 0.306101 194.2.0.36    192.168.0.10 FTP      Response: 226-Transfer complete.
Normalement, c'est bien le catalogue de la racine du serveur FTP qui a été envoyée vers le client FTP. Nous pouvons le vérifier en regardant par exemple les données contenues dans la trame 29. Ce n'est pas très lisible, mais c'est bien ça. Je vous demande de me croire sur parole, inutile de charger encore d'avantage cette page déjà lourde. :
La réponse 226 signifie : "Fermeture du canal de données. Service terminé".
 32 0.306117 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
 33 0.306470 194.2.0.36    192.168.0.10 FTP      Response: 226 Quotas off
 34 0.307484 192.168.0.10  194.2.0.36   TCP      1176 > ftp-data [FIN, ACK]
 35 0.338378 194.2.0.36    192.168.0.10 TCP      ftp-data > 1176 [ACK]
Comme c'était prévu, 192.168.0.10:1176 met fin à la connexion TCP qui a servi de support au canal de données. C'est le client FTP qui met fin à cette connexion.
 36 0.457543 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
 37 2.447889 192.168.0.10  194.2.0.36   FTP      Request: CWD pub
Nous somme de nouveau sur le canal de commandes et le client FTP demande à changer de répertoire. CWD voulant dire : "Change Working Directory". Nous allons dans le répertoire "pub". Ce qui va maintenant suivre va ressembler à ce que nous venons de voir. Je vous laisse la totalité des trames pour deux raisons :
  • Ca va vous permettre de vérifier que vous avez bien compris le mécanisme, parce que je ne vais pas tout répéter,
  • Ca va aussi permettre d'observer un détail qui n'est pas sans importance...
 38 2.471233 194.2.0.36    192.168.0.10 FTP      Response: 250 CWD command successful.
 39 2.473782 192.168.0.10  194.2.0.36   FTP      Request: PWD
 40 2.499085 194.2.0.36    192.168.0.10 FTP      Response: 257 "/pub" is current directory.
 41 2.502415 192.168.0.10  194.2.0.36   FTP      Request: PORT 192,168,0,10,4,153
 42 2.524624 194.2.0.36    192.168.0.10 FTP      Response: 200 PORT command successful.
 43 2.527863 192.168.0.10  194.2.0.36   FTP      Request: TYPE A
 44 2.549182 194.2.0.36    192.168.0.10 FTP      Response: 200 Type set to A.
 45 2.551642 192.168.0.10  194.2.0.36   FTP      Request: LIST
 46 2.572805 194.2.0.36    192.168.0.10 TCP      ftp-data > 1177 [SYN]
 47 2.572856 192.168.0.10  194.2.0.36   TCP      1177 > ftp-data [SYN, ACK]
 48 2.585185 194.2.0.36    192.168.0.10 TCP      ftp > 1175 [ACK]
 49 2.593535 194.2.0.36    192.168.0.10 TCP      ftp-data > 1177 [ACK]
Selon le même mécanisme que celui vu plus haut, un nouveau canal de données est ouvert, mais le client FTP utilise un nouveau port : 1177, cette fois-ci. C'est ce détail qui a son importance...
En effet, dans le cas où nous avons beaucoup de fichiers à transférer, 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    192.168.0.10 FTP      Response: 150 Opening ASCII mode data 
                                                           connection for file list.
 51 2.625058 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 59 bytes
 52 2.627332 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 718 bytes
 53 2.627375 192.168.0.10  194.2.0.36   TCP      1177 > ftp-data [ACK]
 54 2.629615 194.2.0.36    192.168.0.10 FTP      Response: 226-Transfer complete.
 55 2.629654 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
 56 2.630203 194.2.0.36    192.168.0.10 FTP      Response: 226 Quotas off
 57 2.652599 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 1229 bytes
 58 2.652668 192.168.0.10  194.2.0.36   TCP      1177 > ftp-data [ACK]
 59 2.654073 192.168.0.10  194.2.0.36   TCP      1177 > ftp-data [FIN, ACK]
 60 2.700163 194.2.0.36    192.168.0.10 TCP      ftp-data > 1177 [ACK]
Bien, nous n'allons pas poursuivre plus longtemps le cheminement dans les sous répertoires, d'autant qu'à chaque niveau, le catalogue devient de plus en plus volumineux.
 87 11.063406   192.168.0.10          194.2.0.36            FTP      Request: CWD rfc
...
 95 11.177496   192.168.0.10          194.2.0.36            FTP      Request: LIST
...
Et un grand saut plus loin :
413 29.719734 192.168.0.10  194.2.0.36   FTP      Request: PWD
414 29.741101 194.2.0.36    192.168.0.10 FTP      Response: 257 "/pub/doc/rfc" 
                                                            is current directory.
Nous arrivons enfin dans le bon répertoire...
415 29.912570 192.168.0.10  194.2.0.36   TCP      1180 > ftp [ACK]
416 30.584219 192.168.0.10  194.2.0.36   FTP      Request: TYPE A
417 30.605939 194.2.0.36    192.168.0.10 FTP      Response: 200 Type set to A.
418 30.609380 192.168.0.10  194.2.0.36   FTP      Request: PORT 192,168,0,10,4,157
419 30.635498 194.2.0.36    192.168.0.10 FTP      Response: 200 PORT command successful.
420 30.639387 192.168.0.10  194.2.0.36   FTP      Request: RETR rfc765.txt
421 30.660814 194.2.0.36    192.168.0.10 TCP      ftp-data > 1181 [SYN]
422 30.660867 192.168.0.10  194.2.0.36   TCP      1181 > ftp-data [SYN, ACK]
423 30.676003 194.2.0.36    192.168.0.10 TCP      ftp > 1180 [ACK]
424 30.683263 194.2.0.36    192.168.0.10 TCP      ftp-data > 1181 [ACK]
425 30.684698 194.2.0.36    192.168.0.10 FTP      Response: 150 Opening ASCII mode data 
                                                            connection for rfc765.txt (146641 bytes).
426 30.685450 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 2 bytes
427 30.687400 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 716 bytes
Nous ouvrons encore un nouveau canal de données, nous en sommes maintenant au port 1181, données de type A toujours (ASCII) et utilisons la commande RETR (Retrieve) pour transférer le fichier rfc765.txt depuis le serveur FTP vers le client FTP.
Certains lecteurs à l'oeil acéré auront remarqué que le port utilisé par le client FTP sur le canal de commande a changé depuis le début 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 entraîné l'ouverture d'un nouveau canal de commande, sans que le précédent ne soit fermé.
428 30.687446 192.168.0.10  194.2.0.36   TCP      1181 > ftp-data [ACK]
429 30.710881 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 1400 bytes
430 30.712372 194.2.0.36    192.168.0.10 FTP-DATA FTP Data: 1400 bytes
431 30.712414 192.168.0.10  194.2.0.36   TCP      1181 > ftp-data [ACK]
...
Les données commencent à venir, il y en a pour un moment. Nous nous retrouvons à la fin du fichier :
614 33.613493 192.168.0.10  194.2.0.36   TCP      1181 > ftp-data [FIN, ACK]
615 33.636771 194.2.0.36    192.168.0.10 TCP      ftp-data > 1181 [ACK]
Voilà, c'est fini. nous arrêtons la transaction avec le serveur FTP :
616 36.666211 192.168.0.10  194.2.0.36   TCP      1175 > ftp [FIN, ACK]
617 36.686973 194.2.0.36    192.168.0.10 TCP      ftp > 1175 [ACK]
618 36.689259 194.2.0.36    192.168.0.10 TCP      ftp > 1175 [FIN, ACK]
619 36.689275 192.168.0.10  194.2.0.36   TCP      1175 > ftp [ACK]
620 38.511841 192.168.0.10  194.2.0.36   TCP      1180 > ftp [FIN, ACK]
621 38.530529 194.2.0.36    192.168.0.10 TCP      ftp > 1180 [ACK]
622 38.533514 194.2.0.36    192.168.0.10 TCP      ftp > 1180 [FIN, ACK]
623 38.533552 192.168.0.10  194.2.0.36   TCP      1180 > ftp [ACK]
Toutes les connexions TCP encore ouvertes sont fermées, y compris le canal de commande initialement ouvert (port 1175).

Qu'avons-nous appris ?

Déjà beaucoup de choses :
  • nous avons mis en évidence la présence du canal de commande et du canal de données, placés sur des connexions TCP différentes,
  • nous avons, dans ce cas de FTP en mode actif, observé que, pour la création du canal de données, le client FTP :
    • indique au serveur un numéro 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 données et agir en client TCP.
    Ce détail est extrêmement 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 protégée. Nous avons vu en effet qu'ici, le serveur FTP initie une nouvelle connexion TCP sur le client FTP (ne vous mélangez pas les pédales 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 derrière le NAT. Le serveur FTP, qui est sur le Net, n'a aucune connaissance de l'IP réelle de son client. Pour lui, son interlocuteur, c'est le routeur NAT lui-même, vu du côté Internet. Je vous laisse réfléchir à 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 réponses,
  • enfin, nous avons vu un type de transfert, le type A, qui correspond à de l'ASCII. Mais tout fichier n'est pas forcément de l'ASCII. que va-t-il se passer si le fichier à transporter est, par exemple, une image jpg ?
Bien qu'à ce niveau, si vous avez réussi à suivre ces explications, vous pouvez commencer à lire cette fameuse rfc 765 avec quelques chances d'y comprendre quelque chose, vous sentez bien, n'est-ce pas, qu'il y aurait encore quelques manipulations intéressantes à faire...
Rassurez-vous, nous allons les faire dans la suite.

Cour Systeme: Systemes d'exploitation

Icones de logos de systèmes d'exploitation

FreeDOS, un DOS libre

FreeDOS est un système complet, libre, 100% compatible avec MS DOS (traduit de la page de présentation du projet :http://www.freedos.org/.

Ce système souffre bien entendu des mêmes limites que son modèle MS DOS, il fonctionne en mode réel (16 bits, mono-tâche...).

Vous pourrez vous en servir sur des machines de type i386, i486, Un Pentium 75 MHz (ou plus), avec seulement 1 Mo de RAM.

Il se présente sous la forme d'un CD ROM "auto-bootable", mais il est tout à fait possible de construire un jeu de disquettes.

Une installation minimale peut tenir sur une seule disquette. Ce type de configuration peut être utile pour, par exemple, effectuer une mise à jour de BIOS, si le constructeur de la carte fournit un outil fonctionnant sous MS DOS.

Il peut également servir à supporter des outils de maintenance de disques durs, fournis en version DOS par les constructeurs de disques.

En outre, ce système très simple permet d'aborder facilement les concepts d'un système d'exploitation.

La famille Windows, de Microsoft

Nous ne parlons ici que des systèmes "sérieux", à savoir les Windows 32 bits natifs, ce qui exclut les Windows 95, 98, Millenium.

A l'heure où ces lignes sont écrites (le 26/09/2004 à 17:15), Microsoft commercialise :
Windows XP "professionnal edition", qui est un système destiné à animer les postes de travail en entreprise. Il dispose de toutes les fonctionnalités existantes sur de tels systèmes.
Windows XP "Home edition", qui n'est rien d'autre que la précédente, bridée pour ne pas permettre son emploi en entreprise (les notions de domaines, par exemples, ne sont pas accessibles). Cette version est destinée à l'usage domestique.
Windows 2003 "Server edition", qui se décline en diverses versions, suivant ce que l'on veut faire avec. Les principales différences se situent au niveau du nombre de processeurs supportés, du nombre de machines que l'on peut mettre dans un "cluster" (système à plusieurs machines, vues de dehors comme étant une seule machine, pour augmenter les performances et la tolérance de pannes).

A ces systèmes commercialisés, il faut ajouter Windows 2000 (professionnal et server), encore supportés par Microsoft, mais probablement plus pour longtemps. Tout dépendra de la pression des gros clients.

Windows NT 4, premier système de ce type vraiment abouti n'est plus supporté par Microsoft. (En réalité, il y a eu un Windows NT 3.5 et même un Windows NT 3.1, si ma mémoire est bonne).

Mais revenons au présent.

Windows XP en est aujourd'hui à son Service Pack 2. Un service Pack est une mise à jour du système, plus ou moins en profondeur, distribuée gratuitement par Microsoft aux détenteurs d'une licence de Windows XP.

Il est déjà sur la fin de sa carrière, Microsoft essayant de pousser son successeur. Cependant, les gros clients qui ont investi des sommes conséquentes dans les licences ne l'entendent pas forcément de cette oreille.

Vous le voyez, nous ne somme pas dans le même monde que celui de GNU/Linux.

Cependant, Windows XP n'est pas un "mauvais système", pas plus en tout cas qu'une distribution quelconque de GNU/Linux. En réalité, l'un comme l'autre ont leurs avantages et leurs défauts.

Idéologiquement, le modèle économique de Windows "pue". Il est basé sur le profit maximum et n'offre en contre partie aucune réelle garantie de bon fonctionnement. Il est basé sur le "brevet logiciel", qui est une entrave évidente à l'innovation, surtout de la façon dont les brevets sont gérés au USA.

Mais techniquement, les produits Microsoft sont souvent innovants et proposent parfois des solutions très difficiles, voire raisonnablement impossibles à mettre en oeuvre avec des produits libres.

Mais c'est une erreur de penser que les systèmes Windows sont plus faciles à utiliser que les produits libres du monde GNU/Linux. Si leur installation semble plus facile, en revanche, leur maintenance, si elle est bien faite, nécessite autant de compétences que dans le monde UNIX.

Windows NT4 était un système "simple". Moins puissant qu'un système de type UNIX, mais plus facile à maîtriser. Windows XP ou 2003 (ce sont presque les mêmes, en réalité), sont devenus des systèmes très complexes et aussi difficiles à maîtriser que des sytèmes UNIX.

GNU/Linux, un clone UNIX libre

GNU/Linux, plus communément appelé (à tort) Linux, est un cas très particulier, qui nécessite quelques mots d'explication.

Un Kernel "UNIX like"

Linux vient du nom de son créateur, Linus Torvalds. Il s'agit en fait d'un "kernel", c'est à dire d'un noyau, bien incapable de faire quoi que ce soit tout seul (un peu comme le kernel.sys de FreeDOS). C'est tout de même une pièce absolument essentielle, puisque c'est justement le Kernel.

Ce noyau est compatible avec la définition générique des systèmes UNIX. Ce sont des systèmes multi-tâches et multi-utilisateurs, qui ont fait leurs preuves depuis de nombreuses années.

Un système complet

Autour de ce noyau, vient s'articuler une multitude de composants qui permettent de construire non seulement des systèmes d'exploitation complets, mais encore des systèmes de production divers, allant de la station de travail aux serveurs spécialisés dans les base de données, le web, la messagerie...

La plupart de ces composants sont sous licence GPL (GNU Public License) ou dérivés de cette licence, c'est à dire libres d'être copiés, modifiés, redistribués, pourvu que tout ceci se fasse dans le respect de la licence. Il n'est par exemple pas permis de modifier un programme et de distribuer cette modification sous une autre licence que GPL.

Idéologiquement, nous sommes aux antipodes des systèmes Microsoft, ou rien n'est librement redistribuable.

Les distributions

De nombreuses organisations, à but lucratif ou non, ont développé des distributions basées sur ce patrimoine logiciel.

Une distribution offre bien entendu un Kernel Linux, mais aussi des shells, un serveur graphique, des interfaces fenêtrées et des applications de toutes sortes.

Toutes ces distributions ont de nombreux points communs (le noyau Linux principalement), mais leur organisation, leur configuration peuvent légèrement varier d'une distribution à l'autre.

Aujourd'hui, l'une des distributions des plus faciles à installer est probablement la distribution Mandrake , d'origine française.

Elle est inspirée d'une autre grande distribution, la RedHat, d'origine américaine. Mandrake, malheureusement, suit les traces de RedHat et tend à devenir une distribution commerciale.

RedHat a pris le parti de devenir une distribution commerciale. La GPL ne l'interdit pas. RedHat commercialise en réalité une distribution avec un support technique. Cette façon de faire est d'ailleurs assez controversée dans le monde du logiciel libre.

Si la RedHat est devenu une distribution commerciale, elle a engendré une distribution libre : la Fedora. En réalité, Fedora n'est que le banc de test de RedHat, mais les distribution Fedora sont parfaitement utilisables, lorsqu'elles sortent de leur période de test.

Du fait de leur tendance commerciale, RedHat comme Mandrake proposent certains logiciels qui ne sont pas sous licence GPL ou dérivée, et que l'on ne peut trouver dans d'autres distributions.

Debian, en revanche, est une distribution résolument libre et gratuite. c'est une association à but non lucratif qui la développe. Cette distribution prend le parti de la stabilité et de la sûreté. Dans sa version stable, vous ne trouverez probablement jamais les dernières nouveautés, contrairement à Mandrake ou à Fedora. En revanche, les logiciels fournis sont largement éprouvés.

Ce n'est certainement pas la distribution la plus facile à installer, mais probalement l'une des plus intéressantes à mettre en oeuvre.

Gentoo est une distribution assez particulière. Alors que toutes les distributions précédentes proposent des paquetages contenant les versions compilées des logiciels, même si les sources sont également disponibles, la Gentoo, elle, ne distribue que des paquetages source, qu'il faudra compiler sur place. Le résultat est remarquable, c'est la même différence qu'il y a entre le "prêt à porter" et le "sur mesure".

Une Gentoo bien installée "colle" parfaitement à votre machine et le résultat est d'une très grande performance. L'inconvénient est le temps passé pour une installation un peu complète, surtout sur une machine un peu ancienne (comptez par exemple 36 heures de compilation pour un serveur graphique et une interface graphique comme Gnome, sur un Pentium 450 MHz).

Une telle distribution nécessite des connaissances assez approfondies d'un système GNU/Linux est n'est absolument pas à la portée d'un débutant.

Il existe une multitude d'autres distributions, originales ou plus ou moins dérivées de celles que nous avons vues. La Knoppix, par exemple, principalement destinée à fonctionner depuis un CD ROM sans installation sur votre machine, est dérivée de Debian. Elle est d'origine allemande, mais elle peut être localisée en français. La Suse, également d'origine allemande, est une distribution originale (elle n'est pas dérivée d'une autre distribution). Depuis ses débuts, elle est plus ou moins à vocation commerciale et la distribution libre est assez peu fournie par rapport à d'autres distributions.

GNU/Linux en quelques mots

Contrairement à des systèmes comme Microsoft Windows (XP Home, XP professionnal, 2003 Server), qui sont assez hermétiques et orientés "mise en oeuvre facile", avec une seule interface graphique, même si son apparence est plus ou moins configurable, et dans tous les cas incontournable, les distributions GNU/linux sont très modulaires et polyvalentes.

Avec Windows, si vous devez installer un serveur, il vous faudra une version Windows 2003 server. Si vous devez monter une station de travail en entreprise, il vous faudra Windows XP professionnal.

Avec la même distribution GNU/Linux, vous faites absolument ce que vous voulez. Il suffira d'installer les paquetages nécessaires. Vous n'avez par exemple absolument pas besoin d'une interface graphique pour réaliser un routeur / pare-feu. Moralité, un Pentium 166 avec 64 Mo de RAM et un disque dur de 1 Go suffira largement. Vous pourrez monter un serveur Web efficace avec un simple Pentium 350 MHz, 128 Mo de RAM et un disque dur de quelques Go.

Si, en revanche, vous souhaitez réaliser une station de travail (développement d'applications, traitement d'image, bureautique...), il vous faudra une interface graphique. Bien entendu, les ressources matérielles devront être beaucoup plus importantes, du même ordre que celles nécessaires à un Windows XP, par exemple.

En revanche, vous pourrez choisir votre interface graphique. Les plus connues sont sans doute KDE, très proche du "design" Windows, ou encore Gnome, mais des interfaces plus légères (ou encore plus lourdes) existent également. Vous avez en réalite un vaste choix.

Certaines distributions préfèreront Gnome (Fedora, par exemple), d'autres KDE (Mandrake), mais quelle que soit la distribution, vous pourrez utiliser l'une ou l'autre, voire les deux, si vous voulez.

La facilité de mise en oeuvre d'une distribution est variable suivant la distribution choisie. Plus c'est facile à installer, plus ce sera difficile à maintenir et à dépanner, et réciproquement. Il n'y a pas de miracles, l'informatique n'est pas une science évidente, même pas avec Windows.

Comprendre le fonctionnement de NAGIOS

Nagios est un système de surveillance (logiciel libre), qui permet d’identifier et de résoudre les problèmes d’infrastructure avant qu’il ne soit trop tard. Nous n’allons pas voir la partie installation mais la partie surveillance.

Nagios XI
------------
Nagios permet en vrac :
  • La surveillance de serveur, processeur, espace disque, mémoire, ping
  • La surveillance des services reseaux FTP SMTP SSH…
  • LA notifications par mail (attention au spam L)
Voici l’interface de surveillance
Sans titre
De gauche à droite
Host : nom du serveur
Service : d’où vient le problème exemple : ping (PB réseau), Disque, Memory, Agent, CPU…
Status : 4 couleurs suivant l’importance du problème : Rouge (critique) Jaune (attention), Vert (ok) et orange clair (inconnu)
Last Check : dernière remontée du problème
Duration : pour la durée
Status information : un petit plus d’information
Téléchargement du NAGIOS

Administration Sous Windows XP

En informatique, le titre d'administrateur systèmes désigne la personne responsable des serveurs d'une organisation (entreprise,association, administration).
Il travaille au sein d'une DSI (Direction des Systèmes d'Information) ou d'une SSII (Société de Services en Ingénierie Informatique). L'administrateur systèmes intervient auprès du DSI (Directeur des systèmes d'information), des DBA (Database Administrator, administrateur de bases de données), des administrateurs réseau, des webmasters et apparentés, des développeurs, des responsables bureautique (postes de travail) et enfin des usagers. Il est responsable de la disponibilité des informations au sein de son entreprise. Son rôle ne se limite pas à la résolution des problèmes, mais il doit proposer des solutions en adéquation avec les besoins de son client
.
alors, Pour Comprendre l'administration du système , veuillez lire cet article:

Administration Sous Windows XP


Comprendre le fonctionnement des réseaux locaux

Le Contenu:
  • INTRODUCTION AUX RESEAUX
  • MODELES OSI ET TCP/IP
  • COUCHE 1 : MEDIAS ET EQUIPEMENTS RESEAU
  • COUCHE 2 : TECHNOLOGIES ETHERNET / COMMUTATION ETHERNET
  • COUCHE 3 : PROTOCOLE IP / INTRODUCTION AU ROUTAGE
  • COUCHE 4 : COUCHE TRANSPORT
  • COUCHE 5 : COUCHE SESSION
  • COUCHE 6 : COUCHE PRÉSENTATION
  • COUCHE 7 : COUCHE APPLICATION



Cliquez Pour Télécharger:

La Gestion des Fichiers Sous Linux

Dans ce sous-chapitre, nous présentons les principales caractéristiques du système de fichiers sous Linux, en faisant, chaque fois que cela est possible, un parallèle avec le système de fichiers sous DOS (système d'exploitation connu de beaucoup de monde).







 

Free PDF Guide