Nombre total de pages vues

samedi 13 mai 2000

L'internet

La connexion de données

Connexion de données
La connexion de données est établie pour la durée de transmission de données (contenu de fichiers, ou liste de fichiers). En général, elle est établie pour le transfert de données d'une seule commande, à moins qu'un autre mode de transmission soit sélectionné et supporté par le serveur.

La commande  PASV indique au serveur qu'il doit attendre passivement la connexion en écoutant un port TCP.Le port écouté par le serveur est indiqué dans la réponse:

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). 
 
Où h1 à h4 sont 4 nombres entiers entre 0 et 255 représentant l'adresse IP du serveur, et p1 et p2 représentent le port TCP où le serveur attend la connexion, sous la forme de deux entiers entre 0 et 255 (port_TCP = p1 * 256 + p2).

Dans le cas contraire où le client attend la connexion sur un port TCP, il indique sous la même forme le port écouté en envoyant la commande  PORT:

PORT h1,h2,h3,h4,p1,p2

Si tout se passe bien, le serveur répond: 

200 Command okay.
 
Mode de transfert

Lors du transfert de fichier sur la connexion de données, deux modes peuvent être utilisés:

-Le mode binaire: le fichier est transmis tel quel.

-Le mode ASCII: uniquement destiné aux fichiers texte. Le fichier est examiné et des transformations apportées pour conserver un format correct. Par exemple, la fin de ligne est représentée par le caractère <LF> sur un système UNIX, et par la paire <CR><LF> sous Windows. Une machine Windows recevant un fichier texte par FTP récupère donc au final un fichier avec des <CR><LF>en mode ASCII et des <LF> en mode binaire. Ce mode a donc ses avantages, mais peut être source de corruption de fichiers (non texte) pendant le transfert si on utilise un client ancien/en ligne de commande, incapable de s'adapter au type de fichier. Il faut alors basculer de mode (en utilisant généralement la commande BIN) avant le transfert, afin de le converser intact.

Transfert entre deux serveurs

La spécification du protocole FTP (RFC959) précise qu'il est possible d'effectuer un transfert de fichiers directement entre deux serveurs FTP.

Telnet

Telnet (TErminal NETwork ou TELecommunication NETwork), ou encore TELetype NETwork) est un protocole réseau utilisé sur tout réseau prenant en charge le protocole TCP/IP. Il appartient à la couche application du modèle OSI et du modèle ARPA. Il est normalisé par l'IETF (RFC854 et RFC 855). Selon l'IETF, le but du protocole Telnet est de fournir un moyen de communication très généraliste, bi-directionnel et orienté octet.

telnet est aussi une commande permettant de créer une session Telnet sur une machine distante. Cette commande a d'abord été disponible sur les systèmes Unix, puis elle est apparue sur la plupart des systèmes d'exploitation.

Détails du protocole

Telnet est un protocole de type client-serveurs'appuyant sur TCP. Les clients se connectent généralement sur le port 23 du serveur.

Parmi les caractères envoyés par le serveur Telnet, il y a évidemment les caractères de texte à afficher, mais il y a aussi des séquences de caractères qui permettent de contrôler l'affichage, par exemple pour effacer le contenu de la ligne courante. Par souci de portabilité, Telnet définit des séquences d'échappement qui ne dépendent pas du type de terminal. Le protocole de présentation correspondant est appelé NVT (Network Virtual Terminal). Le client Telnet est censé interpréter ces séquences portables de contrôle du terminal.

NVT s'appuie sur:

-des caractères de contrôle empruntés au code ASCII, comme le caractère Form Feed de code hexadécimal 0C pour effacer l'écran,

-des séquences de plusieurs caractères introduites par le code hexadécimal FF appelé IAC ("Interpret AS Command"), comme la séquence hexadécimale FF F8 pour effacer une ligne.

NVT va au-delà des fonctionnalités d'affichage et permet par exemple d'envoyer de façon urgente des signaux d'interruption au serveur pour interrompre l'application en cours. Il permet aussi de négocier des options entre le client Telnet et le serveur Telnet: on peut ainsi négocier le type de terminal, ce qui permet d'utiliser des séquences de contrôle de l'affichage comme celles du terminal VT100 qui soient moins rudimentaires que celles que NVT propose.

NVT est conçu pour des caractères de texte sur 7 bits et n'est par défaut pas adapté à une transmission sur 8 bits. Ce protocole est repris sous une forme simplifiée pour la connexion de contrôle du protocole de transfert de fichier FTP.

Utilisation

Une des utilisations de la commande telnet était de se connecter à des serveurs telnet, qui demandaient un identifiant, puis un mot de passe, et donnaient une ligne de commande sur la machine distante en échange. Pour cela elle nécessitait le lancement d'un démon sur la machine hôte, souvent appelé telnetd. Cette utilisation est progressivement devenue marginale car le protocole Telnet n'est pas sécurisé.

La commande telnet reste une commande très pratique pour tester des serveurs. Vu la flexibilité du programme, il est possible d'utiliser la commande telnet pour établir une connexion TCP interactive avec d'autres services tels que SMTP, HTTP, POP, IMAP, etc... en utilisant alors le port du protocole au lieu du port telnet standard.

Telnet est indispensable pour paramétrer certains matériels réseau n'ayant pas d'interface de gestion web, et reste utile en complément d'une telle interface. On peut ainsi configurer des commutateurs, des routeurs, des serveurs d'impression, des téléphones IP, etc....

Utiliser Telnet sous Windows Vista et Windows 7

Depuis Windows Vista, le protocole Telnet n'est plus activé par défaut. Microsoft explique son choix de le désactiver pour des raisons de sécurité, mais aussi car de moins en moins d'utilisateurs y feraient appel. Il reste malgré tout possible de l'activer, que ce soit sous Windows Vista ou Windows 7: il faut exécuter la commande pkgmgr.exe/iu:TelnetClient ou pkgmgr/iu:"TelnetClient" en tant qu'Administrateur. De la même manière, on peut installer le serveur Telnet en exécutant la commande pkgmgr.exe/iu: TelnetServer ou pkgmgr/iu: "TelnetServer". La commande telnet peut aussi être activée dans le panneau de configuration Programme/programmes et fonctionnalités, section à gauche de la fenêtre, Activer ou désactiver des fonctionnalités Windows, en cochant Client Telnet et Serveur Telnet.

Non sécurisé

Le côté sommaire de Telnet fait que toute communication est transmise en clair sur le réseau, mots de passe compris. Des sniffeurs comme tcpdump ou Wireshark permettent d'intercepter les communications de la commende telnet. Des protocoles chiffrés comme SSH ont été développés pour fournir un accès distant remplaçant Telnet et dont l'interception ne fournit aucune donnée utilisable à un éventuel espion du net.

Simple Mail Transfer Protocol

Le Simple Mail Transfer Protocol (littéralement "Protocole simple de transfert de courrier"), généralement abrégé SMTP, est un protocole de communication utilisé pour transférer le courrier électronique (courriel) vers les serveurs de messagerie électronique.

SMTP est un protocole assez simple (comme son nom l'indique). On commence par spécifier l'expéditeur du message puis, le ou les destinataires d'un message, puis, en général après avoir vérifié leur existence, le corps du message est transféré. Il est possible de tester un serveur SMTP en utilisant la commande telnet sur le port 25 d'un serveur distant.

Le SMTP commence à être largement utilisé au début des années 1980. Il est alors un complément à l'UUCP, celui-ci étant plus adapté pour le transfert de courriers électroniques entre des machines dont l'interconnexion est intermittente. Le SMTP, de son côté, fonctionne mieux lorsque les machines qui envoient et reçoivent les messages sont interconnectées en permanence.

Le logiciel Sendmail est l'un des premiers, sinon le premier serveur de messagerie électronique à utiliser SMTP. Depuis, la plupart des clients de messagerie peuvent utiliser SMTP pour envoyer les messages. Certains nouveaux serveurs sont apparus, comme Postfix, Qmail de Daniel J.Bernstein, Exim et Exchange de Microsoft.

Comme le protocole utilisait du texte en ASCII (7 bits), il ne fonctionnait pas pour l'envoi de n'importe quels octets dans des fichiers binaires. Pour pallier ce problème, des standards comme MIME ont été développés pour permettre le codage des fichiers binaires au travers de SMTP. Aujourd'hui, la plupart des serveurs SMTP acceptent le MIME sur 8 bits, ce qui permet de transférer des fichiers binaires presque aussi facilement que du texte simple.

SMTP utilise TCP pour le transfert des données

SMTP ne permet pas de récupérer à distance des courriels arrivés dans une boîte aux lettres sur un serveur. Les standards Post Office Protocol (POP) et IMAP ont créés dans ce but.

Principes d'envoi

Principe d'envoi via SMTP

Le transfert de messages entre serveurs de messagerie électronique se fait généralement sur le port 25 qui est le port standard enregistré auprès de l'IANA. Les serveurs utilisent les enregistrements MX des serveurs DNS pour acheminer le courrier.

Les clients de messageries utilisaient aussi le port 25 (smtp) pour soumettre des messages en utilisant le protocole SMTP. Mais la nécessité de mieux contrôler les envois des clients, en particulier par l'authentification, a conduit à l'attribution du port 587 (submission).

Les administrateurs de serveur peuvent choisir si les clients utilisent le port TCP 25 (SMTP) ou le port 587 (soumission), tel que formalisé dans la RFC 6409 (RFC 2476 précédemment), pour relayer le courrier sortant vers un serveur de messagerie. Les spécifications et de nombreux serveurs supportent les deux.Bien que certains serveurs prennent en charge le port 465 (historique) pour le SMTP sécurisé en violation des spécifications, il est préférable d'utiliser les ports standards et les commandes ESMTP standard selon la RFC 3207, si une session sécurisée doit être utilisée entre le client et le serveur.

Syntaxe type d'une session ESMTP

Le test par telnet mentionné ci-dessus donnerait un dialogue du genre (les messages du serveur sont en rouge):





telnet smtp.xxxx.xxxx 25
connected to smtp.xxxx.xxxx.
220 smtp.xxxx.xxxx SMTP Ready
Helo client
250-smtp.xxxx.xxxx
250-PIPELINING
250 8BITMIME
MAIL FROM : auteur@yyyy.yyyy
250 Sender ok
250 Recipient ok.
DATA
354 Enter mail, end with « . » on a line by itself
Subject : Test

Corps du texte

250 ok
Quit
221 Closing connection
Connection closed by foreign host


Les codes retour SMTP

Comme vous pouvez le constater sur l'exemple ci-dessus, il existe une syntaxe précise pour envoyer les messages et une série de codes retour pour indiquer le statut de la demande.

Pour vous repérer rapidement vous pouvez, à l'aide du premier chiffre du code retour, avoir le statut global de la demande. Les 2 autres chiffres vous donneront le détail du statut.

-Code 2: La demande a été exécutée sans erreur
-Code 3: La demande est en cours d'exécution
-Code 4: Indique une erreur temporaire. Ré-essayez plus tard
-Code 5: La demande n'est pas valide et n'a pas pu être traitée. Vérifiez votre syntaxe

Sécurité et problème du spam

Une des limitations de SMTP vient de l'impossibilité d'authentifier l'expéditeur. Pour ceci, l'extension SMTP-AUTH a été définie. Malheureusement, l'impossibilité d'imposer largement SMTP-AUTH a rendu ce protocole impuissant face au phénomène du spam.

Le spam est dû à un certain nombre de facteurs dont: l'implémentation de logiciels Mail Transfert Agent (MTA) ne respectent pas les standards, les failles de sécurité dans les systèmes d'exploitation autorisant les spammeurs à contrôler à distance des PC utilisateurs pour leur faire envoyer du spam et enfin un manque d'intelligence de certains MTA.      

Afin de lutter efficacement contre ce phénomène, il existe deux approches: modifier profondément SMTP ou bien lui adjoindre d'autres protocoles pour combler ses lacunes. Modifier SMTP de manière importante, ou le remplacer complètement, ne paraît pas faisable, à cause de l'importance du réseau de serveurs déjà installé. Malgré tout, des solutions altenatives ont été développées comme Internet Mail 2000 ou ePost.

Une autre approche consiste à créer des systèmes visant à assister les opérations du protocole SMTP.Le groupe de recherche anti-spam (ASRG) de l'IRTF (Internet Research Task Force), travaille actuellement sur l'authentification des courriers électroniques dans le but de fournir un système flexible, léger, extensible, et évolutif. L'ensemble de ces recherches ont abouti au protocole MARID en 2004 ainsi qu'au protocole DomainKeys Identified Mail en 2006.

Blocage du port 25 par les fournisseurs d'accès

En 2006 l'AFA recommande aux fournisseurs d'accès internet de bloquer les paquets TCP/IP sortant à destination du port 25. L'idée développée est que: un utilisateur résidentiel ne devrait pouvoir émettre ses messages électroniques que via le serveur de son fournisseur de messagerie électronique.

A l'époque entre 50% et 80% du SPAM était généré par des ordinateurs infectés.

En France les principaux FAI ont suivi cette recommandation: Orange bloque le port 25 depuis juin 2007, Free Télécom depuis décembre 2006 (c'est une option, le blocage peut être désactivé), AOL depuis 2003.

La pratique aujourd'hui est la soumission de l'e-mail par l'utilisateur au serveur de messagerie en utilisant du SMTP authentifié (port 587). Le port 25 sert uniquement aux serveurs smtp entre eux.

Post Office Protocol

En informatique, le POP (Post Office Protocol littéralement le protocole du bureau de poste), est un protocole qui permet de récupérer les courriers électroniques situés sur un serveur de messagerie électronique. Ce protocole a été réalisé en plusieurs versions respectivement POP1, POP2 et POP3. Actuellement, c'est POP3, ou Post Office Protocol Version 3 qui est utilisé de façon standard. 

Cette opération nécessite une connexion à un réseau TCP/IP. Le port utilisé est le 110. Ce protocole a été défini dans la RFC 1939.

POP3S (POP3 over TLS) pour sécuriser la communication avec le serveur, tel que décrit dans la RFC 2595. POP3S utilise le port 995.

POP3 et POP3S utilisent tous deux le protocole de transfert TCP.

Commandes

Pour récupérer les courriers électroniques, on peut:

-soit utiliser un client de messagerie, qui le fait automatiquement et qui cache les commandes.

-Soit directement utiliser les commandes POP3 de manière interactive.

Voici un exemple de connexion du protocole POP3 sur un interpréteur de commandes:

Tout d'abord, il faut se connecter au serveur

-telnet nom_du_serveur 110

-Exemple: telnet mail.altern.org 110

Ensuite, il faut s'identifier et s'authentifier

-USER nom_de_votre_compte (généralement, ce qui se trouve avant le "@" de l'adresse électronique)

PASS mot_de_passe (le mot de passe pour accéder à la boîte de courrier)

Commandes principales

-DELE numéro_du_message: efface le message

-LIST: donne une liste des messages ainsi que la taille de chaque message: un numéro suivi de la taille en octets.

RETR numéro_du_message: récupère le message indiqué

STAT: indique le nombre de messages et la taille occupée par l'ensemble des messages

TOP numéro_du_message nombre_de_lignes: affiche les premières lignes du message

Autres commandes POP3

-APOP: permet une authentification sécurisée (le mot de passe ne transite pas en clair)

-NOOP: ne rien faire, utile pour ne pas perdre la connexion et éviter un "délai d'attente dépassé"

-QUIT: Quitter la session en courd

-RSET: réinitialise complètement la session

-UIDL: affiche (pour un seul ou pour tous les messages) un identifiant unique qui ne varie pas entre chaque session

-CAPA: affiche les informations du serveur.

Internet Message Access Protocol

Internet Message Access Protocol (IMAP) est un protocole qui permet de récupérer les courriers électroniques déposés sur des serveurs de messagerie. Son but est donc similaire à POP3, l'autre principal protocole de relève du courrier. Mais contrairement à ce dernier, il a été conçu pour permettre de laisser les messages sur le serveur.

Fonctionnement

Ce protocole permet de laisser les courriels sur le serveur dans le but de pouvoir les consulter de différents clients de messagerie ou webmail. Il comporte des fonctionnalités avancées comme la possibilité de créer des dossiers ou de manipuler les messages directement sur le serveur. Il offre aussi la possibilité de trier ses courriels sur le serveur. Le langage Sieve a été conçu pour permettre de filtrer des messages sur des serveurs sur lesquels l'utilisateur n'a pas le droit d'exécuter des tâches.

Le fait que les messages soient archivés sur le serveur fait que l'utilisateur peut y accéder depuis n'importe où sur le réseau et que l'administrateur peut facilement faire des copies de sauvegarde.

Le fait que les messages soient archivés sur le serveur fait que l'utilisateur peut y accéder depuis n'importe où sur le réseau et que l'administrateur peut facilement faire des copies de sauvegarde.

L'inconvénient est qu'IMAP requiert une connexion permanente. Cependant de nombreux clients de messagerie proposent un mode hors ligne pour pallier ce problème. D'autre part, il limite l'utilisation de la capacité du réseau car il permet de ne récupérer qu'une partie des messages (par exemple les entêtes, sans le corps du message). Les messages peuvent être déplacés ou effacés sans être entièrement récupérés par le client.

IMAP utilise le port TCP 143. L'utilisation de TLS permet l'accès sécurisé au serveur. La RFC 2595, qui décrit le fonctionnement de TLS avec IMAP, déconseille l'utilisation du port 993 qui avait été préalablement enregistré pour IMAPS (IMAP over SSL).

Des logiciels client courriel

La plupart des clients de messagerie implémentent le protocole IMAP puisque celui-ci est largement utilisé par les différents fournisseurs d'accès à Internet.

Libres:

-Balsa
-Claws Mail
-Evolution
-KMail
-Mozilla Thunderbird
-Mutt
-Sylpheed
-Trojita

Propriétaires:

-Apple Mail
-ContactOffice
-Foxmail
-Lotus Notes
-Microsoft Outlook
-Microsoft Outlook Express
-Microsoft Windows Mail
-Opera
-Pegasus Mail
-The Bat!

Historiques et controverses

Le protocole IMAP a été mis au point par Mark Crispin en 1986. Plusieurs versions se sont succédé, jusqu'à la version 4rev1 encore en vigueur aujourd'hui, qui fut proposée par un groupe de travail de l'IETF en 1996 et mise à jour en 2003. Les premiers serveurs IMAP à voir le jour au début des années 1990 furent notamment Cyrus (1994), Qmail (1996), UW-IMAP (1996), Courrier (1999).

A noter qu'une controverse existe entre les auteurs des différentes implémentations, notamment entre Mark Crispin et Sam Varshavchik (le créateur de Courier), sur le respect des standards par les différents logiciels et sur la précision des textes des RFC définissant le protocole IMAP.

Serveurs IMAP

-Courier-IMAP
-Dovecot
-MDaemon (http://www.altn.com)
-Microsoft Exchange Server
-Sun Java System Messaging Server (http://www.sun.com/software/products/messaging_srvr/index.xml)
-IBM Lotus Domino
hMailServer, serveur libre sous Windows (http://www.hmailserver.com/)

Internet Control Message Protocol

Internet Control Message Protocol est l'un des protocoles fondamentaux constituant la suite de protocoles Internet. Il est utilisé pour véhiculer des messages de contrôle et d'erreur pour cette suite de protocoles, par exemple lorsqu'un service ou un hôte est inaccessible.

ICMP se situe au même niveau que le protocole IP bien qu'il ne fournisse pas les primitives de service habituellement associées à un protocole de couche réseau. Son utilisation est habituellement transparente du point de vue des applications et des utilisateurs présents sur le réseau.

Cet article traite d'ICMP version 4 qui accompagne IPv4. Pour la version 6, voir Internet Control Message Protocol V6.

Présentation 

ICMP (Internet Control Message Protocol- Protocole de message de contrôle sur Internet) est un protocole de niveau 3 sur le modèle OSI, qui permet le contrôle des erreurs de transmission. En effet, comme le protocole IP ne gère que le transport des paquets et ne permet pas l'envoi de messages d'erreur, c'est grâce à ce protocole qu'une machine émettrice peut savoir qu'il y a eu un incident de réseau. Il est détaillé dans la RFC 792.

Format d'un paquet ICMP

Bien qu'il soit à un niveau équivalent au protocole IP (si l'on tente de rapprocher le modèle OSI au modèle TCP/IP), un paquet ICMP est néanmoins encapsulé dans un datagramme IP. Dans le cadre de l'IPv4, la forme générale d'un tel paquet est la suivante:

Bit 0-7
Bit 8-15
Bit 16-23
Bit 24-31
Version /IHL
Type de service
Longueur totale
Indentification (fragmentation)
Flags et offset (fragmentation)
Durée de vie (TTL)
Protocole
Somme de contrôle de l’en-tête
Adresse IP source
Adresse IP destination
Type de message
Code
Somme de contrôle
Bourrage ou données
Données (optionnel et de longueur variable)


Un tel datagramme est composé:

-d'un en-tête IP (en bleu), avec Protocole valant 1 et Type de Service valant 0.
-du type de message ICMP (8 bits)
-du code de l'erreur (8 bits)
-d'une somme de contrôle (16 bits), calculée sur la partie spécifique à ICMP (sans l'en-tête IP)
-d'une partie aménagée pour des données relatives aux différents types de réponses (32 bits), si elle n'est pas utilisée, on procède à un bourrage (cette partie peut correspondre aux Identifiant et Numéro de séquence pour un paquet de type PING par exemple, pour plus d'informations se référer à la RFC) 
-du message

Les différents incidents possibles sont reportés ci-dessous, avec le code d'erreur correspondant.

Les différents types


Type
Explication
Type 0 (réponse echo
Type : 0
Code : 0
Message : réponse d’ECHO (echo-reply)
Signification : réponse au message de type 8
Type 1 et 2 (réservés)
-
Type 3 (destinataire inaccessible)
Type : 3
Code : 0 à 15
Message : destinataire inaccessible
Le code dépend de la cause du problème, respectivement :

0 : le réseau n’est pas accessible
1 : la machine n’est pas accessible
2 : le protocole n’est pas accessible
3 : le port n’est pas accessible
4 : fragmentation nécessaire mais impossible à cause du drapeau (flag) DF
5 : le routage a échoué
6 : réseau inconnu
7: machine inconnue
8 : machine non connectée au réseau (inutilisé)
9 : communication avec le réseau interdite
10 : communication avec la machine interdite
11 : réseau inaccessible pour ce service
12 : machine inaccessible pour ce service
13 : communication interdite (filtrage)
14 : priorité d’hôte violé
15 : limite de priorité atteinte
Type 4 (extinction de la source)
Type : 4
Code : 0
Message : extinction de la source (source quench)

Signification : Un routeur de transit ou la machine d’extrémité demande à l’émetteur de ralentir le rythme des envois de trame. Les routeurs de transit stockent les trames reçues dans un buffer avant de les router (store and forward). Si ce buffer venait à être plein ou si la charge CPU du routeur dépassait un seuil (ou toute autre motif de congestion) il ne pourrait plus assumer le routage des paquets à venir. Ils seraient alors perdus silencieusement. Afin que cela ne se produise pas n’importe quel nœud de transit peut ainsi informer l’émetteur de ralentir la cadence. Et cela pour n’importe quel protocole de la couche 4 (UDP, TCP,….).

NB : Ce n’est pas redondant avec le mécanisme d’annonce de la taille de la fenêtre glissante d’une connexion TCP car cette dernière ne peut être contrôlée que par le destinataire (sauf proxification) or ici il s’agit des routeurs de transit.

Ce type de message a été rendu obsolète par la RFC 6633 en 2012.
Type 5 (redirection)
Type : 5
Code : 0 à 3
Message : redirection pour

-un hôte
-un hôte et un service
-un réseau
-un réseau et un service

Signification : le routeur remarque que la route qu’a choisie l’ordinateur émetteur n’est pas optimale car le prochain routeur à passer pour atteindre le destinataire se trouve sur le même réseau que celui de l’ordinateur émetteur. Le routeur envoie l’adresse du prochain routeur à ajouter dans la table de routage de l’ordinateur émetteur de façon à ce que le prochain envoi vers le même destinataire ne passe pas inutilement par lui. Cette option est souvent bloquée dans les réseaux des entreprises parce qu’elle peut être utilisée par un attaquant pour rediriger le flux de données d’une victime vers sa propre machine.
Type 8 (echo)
Type : 8
Code : 0
Message : demande d’ECHO (echo-request)
Signification : demande de renvoi d’informations, avec la commande ping par exemple
Type 11 (temps dépassé)
Type : 11
Code : 0 ou 1
Message : temps dépassé ou temps de ré-assemblage des fragments d’un datagramme dépassé
Signification : ce message est envoyé lorsque le temps de vie d’un datagramme ou le temps de ré-assemblage des parties d’un datagramme est dépassé. L’en-tête du datagramme est renvoyé pour que l’utilisateur sache quel datagramme a été détruit
Type 12 (en-tête erroné)
Type : 12
Code : 0
Message : en-tête erroné
Signification : ce message est envoyé lorsqu’un champ d’un en-tête est erroné. La position de l’erreur est retournée
Type 13 (demande heure)
Type : 13
Code : 0
Message : timestamp request
Signification : une machine demande à une autre son heure et sa date système (universelle)
Type 14 (réponse heure)
Type : 14
Code : 0
Message : timestamp reply
Signification : la machine réceptrice donne son heure et sa date système afin que la machine émettrice puisse déterminer le temps de transfert des données
Type 15 (demande adresse IP)
Type : 15
Code : 0
Message : demande d’adresse réseau
Signification : ce message permet de demander au réseau une adresse IP
Type 16 (réponse adresse IP)
Type : 16
Code : 0
Message : réponse d’adresse réseau
Signification : ce message répond au message précédent
Type 17 (demande masque sous-réseau)
Type : 17
Code : 0
Message : demande de masque de sous-réseau
Signification : ce message permet de demander au réseau un masque de sous-réseau
Type 18 (réponse masque sous-réseau)
Type : 18
Code : 0
Message : réponse de masque de sous-réseau
Signification : ce message répond au message précédent

 

Failles dans le protocole ICMP

Failles de Fernando Gont

L'argentin Fernando Gont, professeur, administrateur système et chercheur en réseau, a découvert en août 2004 plusieurs failles de sécurité dans le protocole ICMP. Il a tenté d'alerter les organismes concernés (auteurs de système d'exploitation comme Microsoft Windows ou Linux), mais également Cisco Systems (qui vend, entre autres, des routeurs), mais tous n'ont pas répondu, et Cisco a même tenté de breveter ces failles.

Parmi les failles, on peut citer:

-Les messages ICMP de type 3 pour les codes 2 ou 3 (voire 4) peuvent clore une connexion TCP

-Un envoi répété de message ICMP de type 4 (code 0) ralentit grandement le débit d'une connexion

-Le message ICMP de type 3 pour le code 4 ralentit une connexion en passant le MTU au minimum (68octets) puis en l'augmentant progressivement.

ICMP Redirect

Les messages ICMP de type 5 (redirection) peuvent être utilisés de manière malhonnête pour traverser un pare-feu. L'attaque consiste à faire passer un ordinateur par un chemin détourné qui va éviter le pare-feu. La solution consiste à configurer l'ordinateur pour ignorer ce genre de message.

Simple Network Management Protocol

Simple Network Management Protocol (abrégé SNMP), en français"protocole simple de gestion de réseau", est un protocole de communication qui permet aux administrateurs réseau de gérer les équipements du réseau, de superviser et de diagnostiquer des problèmes réseaux et matériels à distance.

Principe

Les systèmes de gestion de réseau sont basés sur trois éléments principaux: un superviseur, des noeuds (ou nodes) et des agents. Dans la terminologie SNMP, le synonyme manager est plus souvent employé que superviseur. Le superviseur est la console qui permet à l'administrateur réseau d'exécuter des requêtes de management. Les agents sont des entités qui se trouvent au niveau de chaque interface, connectant au réseau l'équipement géré (noeud) et permettant de récupérer des informations sur différents objets.

Commutateurs, concentrateurs, routeurs, postes de travail et serveurs (physiques ou virtuels) sont des exemples d'équipements contenant des objets gérables. Ces objets gérables peuvent être des informations matérielles, des paramètres de configuration, des statistiques de performance et d'autres objets qui sont directement liés au comportement en cours de l'équipement en question. Ces objets sont classés dans une sorte de base de données arborescente définie par l'ISO appelée MIB ("Management Information Base"). SNMP permet le dialogue entre le superviseur et les agents afin de recueillir les objets souhaités dans la MIB.

L'architecture de gestion du réseau proposée par le protocole SNMP est donc fondée sur 3 principaux éléments:

-Les équipements gérés (managed devices) sont des éléments du réseau (ponts, commutateurs, concentrateurs, routeurs ou serveurs), contenant des "objets de gestion" (managed objects) pouvant être des informations sur le matériel, des éléments de configuration ou des informations statistiques,

-Les agents, c'est-à-dire les applications de gestion de réseau résidant dans un périphérique, sont chargés de transmettre les données locales de gestion du périphérique au format SNMP,

-Les systèmes de gestion de réseau (network management systems notés NMS), c'est-à-dire les consoles à travers lesquelles les administrateurs peuvent réaliser des tâches d'administration).

En pratique

Concrètement, dans le cadre d'un réseau, SNMP est utilisé:

-pour administrer les équipements

-pour surveiller le comportement des équipements

Une requête SNMP est un datagramme UDP habituellement envoyée par le serveur à destination du port 161 du client. Les schémas de sécurité dépendent des versions de SNMP (v1, v2 ou v3). Dans les versions 1 et 2, une requête SNMP contient un nom appelé communauté, utilisé comme un mot de passe. Sur de nombreux équipements, la valeur par défaut de communauté est public ou private. Pour des raisons de sécurité, il convient de modifier cette valeur. Un nom de communauté différent peut être envisagé pour les droits en lecture et ceux en écriture. Les versions 1 et 2 du protocole SNMP comportent de nombreuses lacunes de sécurité. C'est pourquoi les bonnes pratiques recommandent de n'utiliser que la version 3. Pour les tâches d'administration de serveurs sensibles vi SNMP (reboot, etc...), la version 3 montre tout de même certaines limites en sécurité (chiffrement plutôt faible).

Un grand nombre de logiciels libres et propriétaires utilisent SNMP pour interroger régulièrement les équipements et produire des graphes rendant compte de l'évolution des réseaux ou des systèmes informatiques (centeron, NetCrunch 5, MRTG, Cacti, Shinken, Nagios, Zabbix, What's up gold,.....)

Le protocole SNMP définit aussi un concept de trappe (ou trap). Une fois défini, si un certain événement se produit, comme par exemple le dépassement d'un seuil, l'agent envoie un paquet UDP à un serveur. Ce processus d'alerte est utilisé dans les cas où il est possible de définir simplement un seuil d'alerte. Les traps SNMP sont envoyés en UDP sur le port 162.

Autres utilisations

Le protocole SNMP peut aussi être utilisé dans le domaine industriel. SNMP sert à transporter des informations ne concernant pas le réseau informatique et transporte alors des informations applicatives industrielles.   
 

Aucun commentaire:

Enregistrer un commentaire