Master Professionnel. Informatique
Ingénierie de l'Internet.
Module A, unité 1: "Principes et utilisation des systèmes
et des réseaux"
But et utilité du réseau Internet : communiquer entre des ordinateurs répartis sur la planète.
On peut faire une analogie avec le réseau téléphonique : pour ce dernier, les numéros de téléphone et annuaires (manuels ou semi-automatiques, cf. 3611 ou www.pagesjaunes.fr) permettent de choisir le correspondant et de communiquer avec lui. Pour Internet, l'accès se fait essentiellement par des noms de machine. En fait, le fonctionnement repose bien sur des numéros (cf. cours 2) mais un système "d' annuaire automatique" permet de s'en affranchir dans la plupart des cas, au niveau de l'utilisateur.
Le choix des noms de machines est décentralisé : c'est le gestionnaire réseau de chaque entreprise qui les choisit. Afin d'éviter des doublons, ces noms doivent aussi comporter l'identification de l'entreprise. Pour cette raison, le système prévoit une structuration hiérarchique en noms de domaines (géographiques au niveau des états : us, fr, uk, it, ..., ou par domaine d'activité : com, edu, net, gov,...). Ces domaines sont eux mêmes divisés en sous-domaines, en sous-sous-domaines,... Un nom complet sera de la forme suivante :
nom-de-machine.nom-de-sous-domaine.nom-de-domaine
Exemples : www.ibm.com, sully.info.unicaen.fr, camembert.etu.info.unicaen.fr.
N.B. :
On peut poursuivre l'analogie avec le réseau téléphonique : ce dernier est utilisé pour :
On va utiliser le réseau Internet pour communiquer, généralement entre deux ordinateurs, pour :
Il faut bien entendu que les machines puissent se comprendre (même si elles ne sont pas du même type, ni sous le même système) : elles doivent donc faire tourner des logiciels respectant un même protocole (exemples correspondants aux utilisations listées ci-dessus : telnet, ftp, smtp, http,...).
Les logiciels d'application sont conçus pour utiliser un (ou éventuellement plusieurs : cas des navigateurs tels que Netscape, InternetExplorer, Mozilla, Galeon, ...) de ces protocoles.
Il y a un protocole pour chaque application (utilisation à distance, transfert de fichier, courrier électronique, Web,...), mais ils s'appuient tous sur des fonctionalités de base communes (établir une communication avec le correspondant, échanger des paquets de données une fois cette connexion établie,...).
Les protocoles et des logiciels les implémentant sont donc organisés en couches : les couches basses (transport) sont chargées de ces fonctions élémentaires, leurs principes seront vus dans les cours suivants, alors que les couches hautes (applications) s'appuient sur les services offerts par les couches basses pour offrir les services de haut niveau tels que messagerie, transfert de fichiers, ...
Le courrier électronique (de personne à personne) nécessite une extension aux noms : il faut ajouter les noms (ou les identifiants) des personnes aux noms des machines : une adresse électronique sera donc de la forme suivante :
nom@nom-complet-de-machine
Exemple : jean@mail.info.unicaen.fr, ou Jean.Saquet@info.unicaen.fr
N.B.: Dans le deuxième exemple, la partie machine proprement dite du nom a disparu, ne laissant que domaines et sous (sous) domaines, parce que le système "d'annuaire" connaît la machine qui gère le courrier pour chaque sous domaine (ici mail). D'autre part, "Jean.Saquet" est un alias de messagerie plus parlant que l'identifiant de login "jean". Ceci nécessite que les administrateurs systèmes aient programmé cet alias.
Au niveau des logiciels d'application, l'accès aux différents services s'effectue le plus souvent au moyen d'une URL (Uniform Resource Locator), surtout si on utilise un logiciel multi-protocoles tel que Mozilla :
protocole://nom_complet_de_machine/identification_de_la_ressource
Exemples :
Le plus souvent, la communication se fait suivant le modèle Client/Serveur : côté utilisateur, un logiciel client, pouvant "parler" un ou des protocoles d'application, permet de se connecter et d'échanger des données (souvent en recevoir plus qu'en envoyer, mais la communication doit être bidirectionnelle pour assurer l'interactivité) avec un ou des serveurs (machines fonctionnant sans intervention permanente d'humains) "parlant" le même protocole, et offrant des services s'appuyant sur ces protocoles tels que :
Les serveurs sont conçus pour pouvoir répondre à plusieurs clients simultanément (en apparence au moins), et éventuellement être serveur pour plusieurs protocoles en même temps. D'où l'intérêt d'utiliser un vrai système multitâches tel qu'Unix (ou Windows NT). Les clients, manipulés le plus souvent par un utilisateur humain, le sont souvent en mono-tâche. Toutefois, la plupart des logiciels clients peuvent ouvrir plusieurs sessions simultanément, et peuvent être utilisés en même temps (clients ftp, www, telnet,...). Sur les systèmes encore en service des micro-ordinateurs (MacOS9, Windows 95/98), ça fonctionne aussi, mais avec parfois quelques "plantages"... Les systèmes récents ont à présent des bases beaucoup plus solides, et sont donc beaucoup moins sujets à ce genre de mésaventure (Windows XP, MacOSX).
Les clients http sont le plus souvent appelés "navigateurs web". ce sont Internet Explorer, Netscape, Mozilla, Galeon, Safari,...Ils communiquent avec les serveurs http au moyen de ce protocole, mais sont aussi capables d'utiliser la plupart des fonctionnalités du protocole ftp de transfert de fichiers (voir plus tard)
Les clients de messagerie sont Outlook, Eudora, Sylpheed, Netscape ou Mozilla messenger,...Ils connaissent le protocole smtp d'envoi de messages, ainsi que les protocoles imap et pop de récupération du courrier sur le serveur à partir d'un poste utilisateur.
N.B. : le protocolet http et un navigateur peuvent parfois être utilisés pour d'autres fonctions que la consultation de pages (courrier, transfert de fichiers). Ce peut être commode car c'est le même logiciel qui est utilisé pour la plupart des fonctions de base, mais ceci peut introduire des limitations (cf. ci-dessous : webmail versus client de messagerie).
Pour un navigateur, il pourra éventuellement être obligatoire de configurer le "proxy" permettant de "sortir" du réseau privé dans lequel on se trouve. C'est le cas au département d'informatique : il faut passer par "proxy.info.unicaen.fr", port 3128. En dehors de cette spécificité locale, le navigateur peut être personnalisé au niveau de l'aspect visuel (polices, couleurs par défaut, autres caractéristiques d'affichage), des choix de la page de démarrage, de la gestion de la "mémoire cache" (permet de conserver localement les documents récemment accédés), de la sécurité (activation ou non des programmes Java ou Javascript, des "cookies"), ...
Un client de messagerie devra être configuré avec les paramètres du compte : noms des serveurs d'envoi et de réception, protocole de réception, nom du compte et mot de passe. Voir par exemple les paramètres du mail étudiant. On pourra en outre spécifier si les messages doivent être effacés du serveur après récupération, et personnaliser la forme des mails envoyés, l'emplacement pour recevoir les pièces jointes, ...
Notons que beaucoup de fournisseurs offrant des comptes de messagerie permettent de consulter et d'envoyer des mails à l'aide d'un navigateur ("webmail"). Voir par exemple celui du département d'informatique. L'avantage est la simplicité d'emploi, l'absence de configuration; l'inconvénient est la nécessité de rester connecté à l'Internet pendant toute la durée de consultation ou d'envoi de mails.
Pour des raisons de disponibilité d'adresses, mais aussi pour des raisons de sécurité (même si ce n'est pas fait pour cela), la plupart des entreprises placent leurs machines dans une partie "privée" du réseau. Ces machines utilisent les protocoles et logiciels créés pour Internet, mais n'ont pas accès directement au réseau mondial (et ne sont pas connues de ce dernier).
Pour accèder aux services disponibles sur internet, il convient alors de s'adresser à un intermédiaire, accessible à la fois du réseau privé et d'Internet : c'est un "server proxy" ou "serveur mandaté". Il fonctionne pour certains protocoles seulement. Il pourra donc être nécessaire de configurer les logiciels clients pour qu'ils s'adressent au bon proxy, et ceci pour chaque protocole qu'on souhaite utiliser.
Par contre, on n'utilisera pas le proxy pour accéder aux serveurs "internes" (ceux du domaine "info.unicaen.fr").
Il ne faut pas confondre :
L'utilisation d'un protocole d'application consiste donc en l'utilisation d'un logiciel client écrit pour ce protocole, lequel dialogue (ou au moins essaie) avec un logiciel serveur situé généralement sur une autre machine, lui aussi écrit pour ce protocole.
Pour l'utilisateur, ceci reviendra souvent (au moins en mode ligne de commande Unix) à invoquer une commande système (le logiciel client) du même nom que le protocole, avec les paramètres appropriés. Par exemple, la commande:Le protocole telnet permet au client de se positionner en tant que terminal de commande du serveur. Ainsi, l'utilisateur côté client dispose (après la phase de login) d'un shell (ou équivalent pour les systèmes autres qu'Unix) lui permettant de taper et de lancer des commandes qui s'exécutent sur le système distant, mais dont les résultats s'afficheront sur le terminal de celui qui les a lancées, donc sur le poste du client. Ce protocole est assez ancien, et ne permet qu'un mode commande ligne et des affichages texte. Il permet toutefois de s'adapter à des touches de fonction, codes de mise en page, ...
L'inconvénient majeur de ce protocole est que, à l'établissement du lien telnet entre client et serveur, le client s'identifie au moyen du login habituel de la machine distante, donc en tapant, et en envoyant au travers du réseau, ses login et mot de passe, lesquels risquent d'être vus au passage par des utilisateurs indélicats.
Sous unix, la commande telnet implémente ce protocole et permet donc de se connecter à des machines distantes. Il suffit de préciser le nom de la machine en paramètre. Bien entendu, cette commande n'aura de succès que si un serveur telnet tourne sur la machine demandée.
Notons qu'un deuxième paramètre (optionnel, le défaut étant le protocole telnet) permet, avec cette commande, de se connecter en utilisant d'autres protocoles que telnet, à condition de savoir "parler" (au clavier) le protocole souhaité, ce qui n'est possible qu'avec certains d'entre eux : voir plus loin avec smtp ou http par exemple.
Le protocole ssh permet également d'utiliser des commandes de la machine distante, mais tout l'échange de données est crypté. Le cryptage/décryptage s'effectue au moyen de paires de clefs publique/privée. Les machines doivent s'échanger leurs clefs publiques. La connaissance de la clef publique d'une machine ne permet pas de retrouver la clef privée, ceci grâce à des propriétés mathématiques des nombres, et au fait que les algorithmes qui permettraient de "casser" les clefs sont trop complexes pour être exécutés en un temps raisonnable à l'échelle humaine.
Ce protocole peut utiliser le système login/mot de passe, mais ceux-ci "voyagent" alors cryptés sur le réseau. Il posséde aussi son propre système d'authentification, qui permet par le jeu des paires de clefs publique/privée de vérifier l'identité du correspondant.
Le protocole ssh a connu des évolutions, ce qui fait que plusieurs versions, utilisant des principes légèrement différents, coexistent.Il convient donc de se renseigner sur les versions utilisables sur les différentes machines auxquelles on désire se connecter. On préferera SSH2 à SSH1 à chaque fois que c'est possible, pour un maximum de sécurité.
Pour pouvoir utiliser ce mécanisme d'authentification, les utilisateurs doivent avoir généré leur paire de clef privée/publique, soit à l'installation de ssh sur leur machine, soit au moyen de la commande ssh-keygen. Ensuite, la connexion avec authentification sera possible à condition que chaque côté connaisse la clé publique de l'autre. Remarquez bien que, puisqu'elles sont publiques, ces clés peuvent être échangées avec des moyens non sécurisés.
Par ailleurs, de nombreux clients ssh permettent de visualiser les résultats des commandes dans un environnement graphique multi-fenêtré (option -X). Ils permettent également des communications utilisant d'autres protocoles en profitant du cryptage des données (sftp par exemple : voir les clients adaptés à cette possibilité).
Les serveurs telnet ou ssh permettent, sauf configuration spécifique, à plusieurs utilisateurs de se connecter en même temps à la machine sur laquelle ils tournent. Ainsi, vous pouvez, en étant l'utilisateur du clavier et de l'écran de la machine1, vous connecter par ssh sur la machine2 du même réseau, par exemple une de celles qui sont situées dans la même salle, et sur lesquelles d'autres personnes travaillent. Ceci n'est pas très utile, dans la mesure où, quelle que soit la machine, vous retrouvez votre environnement et le même accès à vos fichiers. Par contre, ce peut être très utile dans un des cas suivants :
Bien entendu, tout ceci a un coût : charge du réseau, et de la machine sur laquelle plusieurs utilisateurs sont connectés. Les commandes who ou users permettent de connaître les logins des personnes connectées à la machine à un instant donné.
Configuration, utilisation des logiciels clients (Mozilla,gftp, Sylpheed ou Thunderbird, ssh, telnet).
Les points importants sont les suivants (voir les détails sur les feuilles de TP):