Calculateur Masque sous Reseau



Application Pour Calculer les Masques sous-réseaux



Livre: Apprenez à creer votre site web avec HTML5 et CSS3

Vous rêvez d'apprendre à créer des sites web ?(mais vous avez peur que ce soit compliqué car vous débutez ?)

Vous êtes au bon endroit ! Ce cours est destiné aux débutants qui ne connaissent rien à la création de sites web et qui n'attendent qu'une chose : qu'on leur explique pas à pas comment tout cela fonctionne avec des mots simples et des exemples concrets !

Nous découvrirons dans ce cours les célèbres langages HTML5 et CSS3 que l'on utilise aujourd'hui pour concevoir des sites web. Même si ces "langages" ne signifient pas encore grand chose pour vous, rassurez-vous : tout ce que vous avez besoin de savoir sera expliqué dans ce cours ! Vous découvrirez notamment comment :

- Insérer du texte, des images et des vidéos
- Faire des liens entre vos pages
- Mettre en forme en modifiant la couleur, la taille, le fond, la police...
- Positionner les éléments du site comme bon vous semble : en-tête, menus...
... et bien plus encore !


Vous n'avez qu'une chose à faire : lisez les chapitres dans l'ordre et découvrez le monde fascinant de la création de sites web avec HTML5 et CSS3 !
(Source auteur)

Contenu du eBook

-Les bases de HTML5

-Les joies de la mise en forme avec CSS 
- Mise en page du site
- Fonctionnalités évoluées
- Annexes
-------------------



Meilleurs sites pour apprendre la programmation

5 sites pour apprendre la programmation



 




3-  w3schools ( *****)

Parmi les meilleurs sites









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

Le Plan:


Télécharger:




Cours Reseaux: Reseau "client - serveur"


réseau


 CONFIGURATION DE L' ORDINATEUR SERVEUR 

L'ordinateur serveur est la machine qui possède le modem.

Démarrer > Paramètres > Panneau de configuration > Réseau


Deux protocoles appelés TCP/IP sont présents : l'un est lié à " carte d'accès distant " et l'autre à la carte réseau. Si les protocoles sont absents: Ajouter > Protocole > Microsoft > TCP/IP
Dans les propriétés du protocole TCP/IP de la carte réseau, entrer les valeurs:


Adresse IP : 192.168.0.1
Masque de sous-réseau : 255.255.255.0
Configuration WINS : Désactiver la résolution WINS
Passerelle : ne rien spécifier
Liens : activer Client pour réseaux Microsoft
Avancées : aucun changement
Configuration DNS : Activer DNS


Dans la case Hôte : indiquer le nom de votre ordinateur
Dans la case Domaine : entrer le nom de domaine de votre fournisseur d'accès (sous la forme AOL.COM par exemple)
Dans la case Ordre de recherche DNS : indiquer l'adresse IP du serveur de votre fournisseur d'accès à Internet et cliquer sur le bouton "ajouter". Dans la case ordre de recherche de suffixe de domaine entrer une nouvelle fois le nom de domaine de votre provider et cliquer sur ajouter.


 CONFIGURATION D' UN ORDINATEUR CLIENT 

Démarrer > Paramètres > Panneau de configuration > Réseau

Deux protocoles appelés TCP/IP sont présents : L'un est lié à " carte d'accès distant " et l'autre à la carte réseau. Si les protocoles sont absents: Ajouter > Protocole > Microsoft > TCP/IP


Dans les propriétés du protocole TCP/IP de la carte réseau, entrer les valeurs:


Adresse IP : 192.168.0.2 (192.168.0.3 192.168.0.4...)
Masque de sous-réseau : 255.255.255.0
Configuration WINS : Désactiver la résolution WINS
Passerelle : ne rien spécifier
Liens : activer Client pour réseaux Microsoft
Avancées : aucun changement
Configuration DNS : Activer DNS
Dans la case Hôte : indiquer le nom de votre ordinateur
Dans la case Domaine : ne rien spécifier
Dans la case Ordre de recherche DNS : adresse IP de la machine passerelle: 192.168.0.1


Configuration du fichier HOSTS sur les machines clientes:

Un fichier HOSTS se comporte comme une base de données locale qui indique à l'ordinateur où aller chercher une adresse spécifique. Sous WIN 95/98 ce fichier est situé dans le répertoire de WINDOWS. Avec un éditeur de texte, ouvrir ce fichier et y écrire l'adresse IP de l'ordinateur passerelle sous la forme suivante:
192.168.0.1 proxy
Attention, mettre au moins un espace entre les deux données et valider en appuyant sur entrée en fin de ligne. Sauvegarder le fichier HOSTS en prenant garde de ne pas ajouter d'extension. Redémarrer l'ordinateur.


 CONFIGURATION DE INTERNET EXPLORER SOUS LES MACHINES CLIENTES 

Démarrer > Paramètres > Panneau de configuration > Option Internet > Connexions > Paramètres LAN >
Cocher " Détecter automatiquement les paramètres de Internet Explorer " et " Utiliser un serveur proxy " > Indiquez dans la case adresse 192.168.0.1 > " Avancés "
Décocher la propriété " utiliser le même serveur proxy ... "
Indiquer les références suivantes :


Type
Adresse IP
Port
HTTP
192.168.0.1
6588
Sécurisé
192.168.0.1
6588
FTP
192.168.0.1
21
Gopher
192.168.0.1
-
Socks
--

 Télécharger le programme Proxyi.exe proxy

Ce programme permet  le partage d'une connexion Internet. Il doit être installé uniquement sur le serveur et lancé à chaque démarrage. 

 TEST DU RESEAU 

sous Windows XP

Démarrer... Exécuter... command... ipconfig
ipconfig


Le test du réseau se fait par l'instruction PING suivie de l'adresse IP

ping

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.

le mecanisme de chargement d'un OS

Cette page expose succinctement le mécanisme de chargement. Lisez jusqu'au bout, parce qu'à la fin, il y a une panne classique de chargement, avec sa solution...
Lorsque le BIOS recherche la présence d'un système d'exploitation, il ne sait que charger en mémoire le premier secteur du disque dur (512 octets), vérifier que les deux derniers octets ont pour valeur hexadécimale 55 AA, signe que ce secteur contient quelque chose d'exécutable. Il exécute alors cette chose.
Si, après avoir balayé l'ensemble des unités de mémoire de masse qu'il connaît (voir le paramétrage du BIOS), il n'a trouvé aucun premier secteur se terminant par 55 AA, il affichera son incapacité à charger quoi que ce soit.
Sur un disque dur, ce premier secteur n'est autre que le MBR, qui contient aussi la table des partitions.
Il est parfaitement possible d'utiliser ce MBR pour charger un système d'exploitation. Certains chargeurs comme GRUB ou LILO, beaucoup utilisés dans le monde GNU/Linux, savent le faire. Cependant, il est possible d'agir autrement.
Nous savons que chaque partition dispose d'un premier secteur appelé "Partition Loader". Il est donc possible d'adopter la stratégie suivante : le MBR contient un programme qui se contentera, après avoir repéré dans la table des partitions quelle est celle qui est marquée comme "active", de charger en mémoire le "Partition Loader" de cette partition active, et de l'exécuter.
partitionsReprenons cet exemple :
  1. Le MBR est chargé en mémoire. Il se termine par 55 AA, il est donc exécuté.
  2. L'opération menée est simple :
    1. lecture de la table de partition,
    2. la seconde partition est marquée comme active.
  3. Le programme du MBR charge donc le PL de la seconde partition et lui donne la main.
  4. Le contenu de ce PL a été fait de telle sorte qu'il va charger en mémoire le "kernel" du système d'exploitation et lui donner la main.
  5. Le "kernel" se chargera ensuite de tout le reste du chargement nécessaire pour la construction de l'environnement de travail final.
C'est cette technique qui est employée par Microsoft depuis les origines de MS DOS, et encore maintenant, avec la technologie NT, même s'il y a un "multi boot", dont nous parlerons plus loin.
Lorsque l'on installe un système comme GNU/Linux, le choix de la stratégie est plus grand.
Il faudra installer un "boot loader" comme GRUB ou LILO, mais il sera possible de choisir son emplacement, MBR ou PL de la partition racine du système.
Généralement, lors de l'installation d'une distribution GNU/Linux, il est conseillé de placer le boot loader dans le MBR, ce qui permettra relativement simplement de le charger, de faire un "multi boot", si plusieurs systèmes sont présents sur la même machine.
Rien n'interdit en effet, même sur l'exemple ci-dessus, de placer un FreeDOS dans la seconde partition et un GNU/Linux dans la première. Mais alors se posera le problème de pouvoir choisir son OS au moment du démarrage.

Le boot selon Microsoft

  • Le chargeur de système se trouve sur le PL de la partition qui contient le coeur du système (kernel).
  • C'est le PL de la partition active qui sera exécuté.
Donc, si l'on suit cette règle, l'on installera LILO ou GRUB (chargeurs possibles pour GNU/Linux), sur le PL qui contient le kernel dudit système. Si c'est la partition active, Linux démarrera.
Oui, mais si l'on a aussi un autre système sur une autre partition ?
Il faudra changer la partition active. Ca nécessite de démarrer un FDISK et de changer la partition active. Pas très pratique...
Pourtant, Windows NT (4, 2000, XP...) savent faire des multi boots, mais uniquement sur des OS Microsoft. Ce n'est pas tout à fait vrai, mais pour faire comprendre au multi boot de Microsoft qu'il peut faire démarrer un système GNU/Linux, ce ne sera vraiment pas facile.

Le boot selon GNU/Linux

C'est simple, on fait ce que l'on veut.

Le chargeur sur le PL

Comme on l'a vu plus haut, GRUB ou LILO (ou un autre), sur le PL de la racine de l'installation. Dans ce cas, il faut que la partition soit active.
S'il y a plusieurs OS sur la même machine, il faudra alors installer dans le MBR un programme capable de donner le choix. Il en existe.

Le chargeur sur le MBR

Il est aussi possible d'installer GRUB ou LILO sur le MBR, ce qui donnera éventuellement un multi boot, parce que l'un comme l'autre savent charger tout type d'OS connu sur PC. GRUB est probablement le plus souple.
Nous ne verrons pas ici comment configurer l'un ou l'autre pour réaliser un multi boot, mais il est tout à fait possible de démarrer aussi bien un GNU/Linux qu'un BSD ou même un Windows, voire un DOS, avec GRUB (ou LILO).
Dans un tel cas, la partition active n'a plus de sens.

La panne...

Alors voilà.
Sur un disque dur, a été un jour installé un OS ne provenant pas de chez Microsoft. Cet OS a installé son chargeur sur le MBR.
Vous voulez maintenant effacer ce disque et y installer un système Microsoft.
Naturellement, vous allez détruire toutes les partitions qui existent, en construire de nouvelles (avec FDISK pour DOS ou avec l'équivalent intégré au processus d'installation d'un Windows NT).
Donc, création de nouvelles partitions, formatage desdites partitions et installation.
Tout se passe bien, sauf qu'au redémarrage, votre machine restera "plantée" sur le Boot.
Pourquoi ?
Tout simplement, parce que Microsoft, dans sa grande suffisance, n'a jamais pensé à ce type de scénario (d'autres systèmes peuvent-ils exister ?) et que le MBR n'est pas restauré dans la configuration voulue par MS, à savoir, utiliser la partition active.
Pas d'affolement dans cette pénible circonstance... (Microsoft y a tout de même pensé, mais sans le crier sur les toits).

Avec FDISK

FDISK propose une fonction non documentée (que l'on ne trouve pas dans l'aide "officielle"). Faites :
FDISK /MBR
Ca restaurera le MBR d'une façon que Microsot aime.

Avec Windows XP

Le CD d'installation propose, en mode restauration du système, un outil équivalent : FIXBOOT.
 

Free PDF Guide