Accueil > Ressources > Connexion sécurisée à un serveur LINUX

Connexion sécurisée à un serveur LINUX

vendredi 18 septembre 2009, par Eric Sanjuan

Notions et outils pour accèder et contrôler un compte sur un serveur LINUX distant via des clients ssh portables.

Introduction

Il est de plus en plus courant que les serveurs Web, la messagerie électronique et même une part des bases de données avec les applications clients d’une entreprise ou d’un organisme se trouvent sur un ou plusieurs serveurs extérieurs. Ces serveurs sont généralement en location chez un hébergeur qui garantit la disponibilité :

  • d’une certaine capacité de disque pour pouvoir stocker les données,
  • de mémoire vive et capacité de calcul pour les traitements
  • de bande passante pour les connexions, en particulier sur les sites webs.
  • des moyens de sauvegarde.

L’intérêt de la location d’un serveur distant sont la maintenance et la possibilité d’adapter les capacités en fonction de ses besoins.

On parle alors de "cloud computing" : informatique sur le nuage.

Le principal inconvénient est que le serveur se trouve à l’extérieur du pare-feu local du client sensé protéger ses ressources en les mettant hors d’atteinte du reste du réseau Internet.

Comment alors contrôler le serveur externe d’une manière sécurisée ?
Il y a deux méthodes :

  • on ne contrôle pas le serveur directement mais via une interface web sécurisée du fournisseur .
  • on utilise les connexions ssh pour contrôler directement le serveur comme si on avait accès à sa console locale.

L’avantage de la première méthode est sa simplicité, mais on n’a pas un contrôle complet sur l’ensemble des ressources du serveur. Il arrive alors qu’on ne puisse pas faire tourner tout type de programme sur le serveur et que l’on doive développer les applicatifs en un langage particulier.

La connexion ssh permet un contrôle total mais dans ce cas c’est l’utilisateur qui est chargé de l’administration. Cela requiert la présence permanente chez le client d’un informaticien. Cependant, grâce aux multiples distributions libres du système exploitation LINUX pour serveurs, on peut avec un minimum de connaissances en systèmes informatiques, exploiter aisément et complètement de telles machines sans jamais avoir besoin d’y accéder physiquement.

ssh signifie "secured shell" (coquille sécurisée), et par "shell" on entend le langage de commandes qui permet d’interagir facilement avec le noyau d’un système d’exploitation (OS). Les OS Unix et LINUX disposent de shell en ligne de commandes très complets et relativement indépendants du noyau. Le principe de la sécurisation est le cryptage avec un système de clefs. L’une publique est communiquée au client et permet de crypter les données avant de les envoyer. L’autre privée, non communiquée à l’extérieur, permet le décryptage des données. Lorsque l’on crypte les données en utilisant la clef publique d’un serveur, seul celui-ci pourra les décrypter. Ainsi il n’y a pas en théorie de risque si la communication est interceptée, ce qu’il est toujours possible de faire sur Internet puisqu’il ne s’agit pas d’un réseau de point à point.

Ce protocole de communication entre machines est désormais intégré à toute distribution de LINUX et de Mac OS (aussi développé sur un noyau LINUX) mais pas de Windows, pourtant encore le plus répandu sur les ordinateurs personnels de bureau.
Nous allons donc considérer la situation où l’on dispose d’un compte sur une machine Linux distante et que l’on souhaite s’y connecter depuis une machine client Windows.

Si on est sur Linux il suffit d’utiliser en console la commande ssh pour se connecter et scp pour transférer les fichiers. Plus simple encore que scp, les distributions actuelles telles que Ubuntu pour bureau intègrent dans leurs menus par défaut la connexion à un serveur distant via ssh, et dans ce cas le disque distant apparait comme un disque local.

Les clients ssh pour Windows

Putty et WinScp sont tous deux des clients ssh, c’est à dire que tous deux se connectent au même service de ma machine serveur. Il s’agit du sshd (ssh daemon) qui permet de lancer des commendes shell à distance. Ce service regroupe tout en les sécurisant les fonctionnalités des connexions à distance rlogin et du transfert par ftp (file transfer protocol).

Ainsi, côte machine serveur, Putty et WinScp ne sont pas différentiables. par contre côté utilisateur,

  • Putty ouvre une console pour lancer des commandes, par console on entend qu’il n’y a pas d’interface graphique. On n’affiche que du texte éventuellement en couleur.
  • winscp ouvre une interface graphique permettant de transférer tout type de fichiers entre machine locale et distante. Le choix des fichiers à transférer se fait avec la souris par sélection et glissement dans la fenêtre côté serveur.

Les deux disposent aussi d’une version totalement portable qui peut être exécutée depuis n’importe quel compte windows sans nécessiter aucune installation.

Dans le cas de PUTTY il existe aussi une version compilée pour Linux mais cela est moins nécessaire, linux disposant naturellement de commandes pour se connecter en ssh.

Vous pouvez récupérer les versions portables de ces clients ici ou les télécharger directement depuis Internet (utilisez les liens précédents, sinon tapez putty ou winscp suivi de download page dans un moteur de recherhe).

Au lancement de putty on dispose d’un menu type boîte à outils. Pour l’utiliser directement il suffit d’entrer le nom ou l’adresse IP du serveur dans le champ host. On peut sauvegarder ce nom pour une ré-utilisation ultérieure. Les autres éléments du menu permettent de contrôler l’affichage (police, couleur et encodage des caractères). Plus important, PUTTY permet aussi d’ouvrir "un tunnel" sécurisé entre le réseau local et le serveur. On peut ainsi rendre disponible localement des applications telles que les système de gestion de bases de données (SGBD) distants. Cela permet aux outils locaux de bureautique (traitement de texte, tableur, présentations) d’intégrer des données partagées sur le serveur. On bénéficie ainsi de la convivialité d’applications locales et des avantages d’un SGBD centralisé.

Au lancement de WinScp, un formulaire s’ouvre dans lequel seul le nom de la machine hôte est obligatoire. Les autres éléments tels que nom d’utilisateur et mot de passe seront demandés par la suite si non renseigné. En fait, il est préférable de ne pas se servir du champ mot de passe de ce formulaire si l’on souhaite enregistrer le profil. De manière générale, il vaut mieux éviter de stocker les mots de passes dans applications clients.

Lors de la première connexion à un service sshd, si la clef publique du serveur n’a pas été enregistrée, le serveur hôte vous la propose. C’est le seul moment où la communication n’est pas sécurisée car dans ces conditions vous n’êtes pas sur que la machine qui vous propose cette clef de cryptage est réellement l’hôte auquel vous essayez de vous connecter. Si on veut éviter cette incertitude, il suffit d’avoir récupéré au préalable par un moyen sûr la clefs publique du serveur auquel on veut se connecter et d’enregistrer manuellement cette clef dans le client ssh. On peut aussi aller plus loin en utilisant un double cryptage côté client et côté serveur comme expliqué ici.

Une fois la clef publique acceptée, la console s’ouvre et on vous demande sous quel identifiant vous désirez vous connecter, puis quel mot de passe. Comme sur toute console linux, quand on tape son mot de passe il ne s’affiche rien, même pas un curseur qui avancerait selon le nombre de caractères tapés.

Si la connexion réussit, c’est à dire si le nom d’utilisateur et le mot de passe sont acceptés, côté putty vous pouvez maintenant lancer toute commande linux, côté winscp, dans le cas de la version portable, vous avez une double fenêtre :

  • à gauche l’arborescence de votre machine locale.
  • à droite celle du serveur distant.

Contrairement à Putty, toutes les opérations sur WinScp peuvent se faire avec la souris et les menus en haut et en bas de la double fenêtre. Les boutons du bas sont communs aux deux fenêtres et l’action correspondante s’applique à la fenêtre active (la dernière dans laquelle on a cliqué). Pour les bontons juste au dessus de chaque fenêtre, un bouton à utiliser régulièrement est celui de "reload" pour actualiser l’affichage. En effet, puisque on va lancer aussi des commandes plus spécifiques via une autre interface telle que putty, le contenu des dossiers distants va changer sans que l’interface WinScp n’en soit informée.

Dans la rangée des boutons communs en haut des fenêtre, attention à celui de synchronisation car il va faire correspondre le contenu des deux fenêtres,
selon la manière dont il est paramétré, cela peut entrainer la suppression ou l’écrasement intempestif de fichiers.

Quelques commandes bash

Bash signifie bourne again shell ce qui est un jeu de mots avec born again. C’est un interpréteur de commandes assez répandu actuellement sur les OS Linux.

Les commandes du bash se lancent toutes sous la forme :

cmd - argument1 argument2 ...

On utilise les espaces pour séparer les noms de commande du reste des arguments, du coup il vaut mieux éviter de mettre des espaces dans les noms des fichiers. De même, on évite aussi les caractères accentués car leur encodage varie trop suivant les modes des consoles.

Par défaut le résultat d’une commande s’affiche à l’écran, on peut rediriger ce résultat vers un fichier en utilisent le symbole ">" suivi du nom de fichier et directement vers un autre programme en utilisant le symbole "|". On peut aussi utiliser ">>" au lieu de ">" si l’on veut ajouter la sortie à la suite d’un fichier existant.

Voici une séquence habituelle de commandes lorsque on se connecte à un compte Linux.

  1. uname -a donne les informations sur l’OS installé.
  2. who permet de voir qui est connecté en même temps.
  3. top permet de voir les processus et services en cours (tapez "q" pour sortir de l’affichage.
  4. netstat -plane permet de voir toutes les connexions réseau en cours.
  5. df -h permet de voir les espaces disques et différent médias accessibles avec leur occupation et les chemins logiques pour y accéder. En effet, dans un système Linux, tous les supports disques sont organisés en une unique arborescence dont la racine est dénotée par "/".
  6. pwd qui signifie "print working directory" vous montrer quel est votre dossier de travail actuel. Toutes le commandes que vous allez lancer le seront depuis ce dossier.
  7. cd pour changer de dossier de travail.
    • Sans aucun argument, cette commande vous ramène à la racine de votre compte.
    • Avec un argument comme ceci cd cible, le sous-dossier cible devient votre nouveau dossier de travail à condition qu’il existe.
    • On peut aussi utiliser comme argument un chaîne de sous-dossiers rep1/rep2/.../cible séparés par le caractère "/"
    • Si en argument on donne un chemin qui commence par "/", alors il s’agit d’un chemin absolu qui donne la position du dossier cible depuis la racine du système.
  8. mkdir cible permet de créer un nouveau sous-dossier cible.
  9. cp -R chemin1 chemin2 permet de copier toute l’arporescence chemin1 dans chemin2. Si on ne veut copier qu’un fichier, on peut enlever l’option -R.
  10. rm -R permet de supprimer tout une arborescence (à manipuler avecprécaution).
  11. ls -lah permet de voir le contenu du dossier courant ou de celui donné en paramètre.
  12. chmod permet de changer les droits d’un fichier. En Linux la gestion des droits est la même que sous UNIX, c’est la principale sécurité contre l’effacement erroné de données et l’activation de virus informatiques. Tout fichier et dossier a un propriétaire et un groupe. Le premier argument de cette commande peut être de la forme ABC où :
    1. A est une combinaison des lettres ugoa (u pour utilisateur, g por groupe, o pour "others" et a pour "all"),
    2. B est + pour ajouter des droits, - pour enlever, = pour fixer.
    3. C est une combinaison des lettres rwx (r pour "read" lecture, w pour write écriture et x pour execute).

    Voici quelques exemples pratiques d’utilisation :

    • chmod -R a-w cible enlève le droit d’écriture pour tout le monde à l’arborescence cible. Ainsi on ne pourra pas l’altérer par erreur.
    • chmod -R u+w cible rétablit les droits d’écriture pour l’utilisateur.
    • chmod -R go-x cible enlève les droits d’exécutions au groupe et aux autres utilisateurs du système pour l’arborescence cible.
  13. less cible permet de voir le contenu du fichier cible aussi long celui-ci soit-il. Taper "q" pour sortir de l’affichage.
  14. perl permet de lancer tout programme perl.
  15. bash permet de lancer tout programme fait d’instruction bash, c’est à dire tout script cohérent de commandes telles que celles qui précèdent. On peut ainsi s’amuser à créer des programmes qui écrivent eux mêmes d’autres programmes et les lancent. Les possibilités sont illimitées.
  16. echo permet d’afficher un message, utile surtout quand on écrit des scripts.
  17. cat fichier1 fichier2 ... fichiern permet d’afficher à la suite tout le contenu des fichiers passés en argument. On l’utilise surtout avec ">" pour concatener une suite de fichiers en un seul.
  18. wc -l permet de compter le nombre de lignes d’un fichier.

Ce qui précède n’est qu’une sélection très succincte des commandes possibles, pour une liste exhaustive le mieux est de regarder la page de documentation du projet GNU. Seul soucis, elle est en anglais, mais je n’ai pas trouvé de traduction libre en français.

Il est en fait possible de tout programmer en bash. On peut définir des variables dont on accède au contenu avec l’opérateur "$" et on peut se servir de tout type de boucle. Cependant , par défaut le bash traite des flux de texte et non pas des objets numériques. Il est donc adapté pour gérer des scripts complexes de commandes et donc, pour administrer un système, non pas pour faire de la programmation scientifique.

Quand on commence à jouer avec les boucles il est courant de créer des programmes qui ne s’arrêtent jamais. Pour arrêter un programme en cours sur la consoler il faut utiliser la combinaison Ctrl C. Pour lister les programmes en cours on dispose de la commande ps qui permet de voir les pid (numéros d’identification des processus) que l’on peut tuer avec kill. Pour lister tous les programmes, de tous les utilisateurs en cours on peut taper ps aux | less -S. Utiliser "q" pour sortir de cet affichage.

On peut aussi lancer une commande en arrière plan en ajoutant le symbole "&".
Si de plus on veut que cette commande se poursuivre même après déconnexion de la console il suffit de la faire précéder de l’instruction nohup.

Enfin, pour clore la session proprement, utiliser Ctr D.

Editeurs de texte et encodage

La bash manipule des flux de textes, du coup on a besoin d’éditeurs de textes pratiques (et non pas de traitement de textes qui ajoutent au texte une mise en forme). Il est possible d’éditer le texte directement sur la console avec les programmes vi (préféré par les informaticiens) ou emacs (préféré par les mathématiciens et moi même). Mais ces éditeurs très complets ont chacun leu langage propre qu’il n’est pas immédiat à maîtriser.

L’autre solution est de brancher un éditeur de texte localement sur WinScp ou le programme de connexion via ssh au serveur distant. WinScp s’occupe alors de :

  1. faire venir le fichier distant chaque fois que l’on veut l’éditer,
  2. le poser dans un dossier temporaire,
  3. l’ouvrir dans l’éditeur local,
  4. et remettre sur le serveur un copie du fichier édité chaque fois qu’il est sauvegardé.

Attention quand même qu’il arrive bien à renvoyer cette copie sur le serveur. Si la connexion a été entre temps interrompue, votre mot de passe sera à nouveau sollicité.

On peut alors utiliser tout éditeur de texte local tel que le "bloc note". Cependant, il est beaucoup plus confortable d’utiliser un éditeur tel que Notepad++ qui peut s’installer sur tout Windows ou Linux sans avoir besoin de droits particuliers d’administration. L’avantage est qu’il reconnait de multiples langages de programmation et offre une interface en couleur adapté. Une fois installé, il faut déclarer cet éditeur comme l’éditeur par défaut dans les options de WinScp.

Il faut aussi vérifier que l’encodage du texte édité est compatible avec le système sur le quel on travaille. En effet, qu’est ce que le texte pour la machine ? La machine ne connaît en fait que des entiers, de 0 à 2³²-1 lorsque le processeur est en 32 bits et de 0 à 2⁶⁴-1 lorsqu’il est 64 bits et que le système d’exploitation sait l’utiliser. Le fichiers ne sont donc que des suites d’entiers écrits en base 2. Cependant on peut utiliser les entiers pour coder d’autres objets tels que les entiers relaltifs en les partageant deux, des approximations de réels écrits en notation scientifique, et des caractères. Pour les caractères il suffit de les numéroter. Au départ, on n’avait numéroté que les caractères de l’alphabet anglais plus quelques caractères spéciaux comme le caractère de nouvelle ligne ou le retour à la ligne. Cela a donné la table ASCII. Mais évidemment il manquait tous les caractères accentués utilisés dans les autres langues européennes, les symboles scientifiques, et pire encore, tous les caractères des alphabets non latins. Alors on étendu la numérotation et cela a donné l’Unicode. Mais il s’agit là plus d’une convention d’encodage que d’un code précis. L’Unicode a de fait engendré plusieurs normes d’encodage tels que l’UTF-8, l’UTF-16 et l’UTF-32. Contrairement à l’ASCII, la longueur des codes des caractères est variable, ce qui permet de l’étendre théorie à l’infini mais complique sérieusement les opérations sur les chaînes de caractères telles que l’extraction d’une sous-chaîne. Ainsi l’UTF-8 est le plus économe en espace, mais le plus coûteux en temps de calcul. L’Unicode étend le code ASCII, en particulier tout texte ASCII demeure inchangé lorsque on le convertit en UTF-8. Cela concerne en particulier tous les programmes écrits en langage C. Par contre, dès que un texte contient des caractères accentués, l’encodage change.

Moralité, avant de sauvegarder votre texte, vérifier l’encodage par défaut du système cible (tapez env dans un système linux pour obtenir toutes les variables d’environnement), et sauvegarder dans cet encodage. Un éditeur tel que notepad++ vous permet de choisir tout type encodage.

On peut aussi changer l’encodage du fichier texte côté serveur linux en utilisant la commande bash iconv :
- de l’ASCII étendue vers UTF-8 : iconv -f latin1 -t utf8 fichier.txt > fichier-utf8.txt
- de l’UTF-8 vers l’ASCII étendu : iconv -f utf8 -t latin1 fichier.txt > fichier-iso.txt

On peut aussi utiliser la commande recode telle que décrite ici.

Même au temps de l’ASCII, on a cherché à donner des noms aux caractères pour éviter de devoir manipuler directement leur code binaire, surtout en programmation. On a aussi attribué des séquences de caractères aux caractères spéciaux. Ainsi dans un programme shell, la séquence "\n" désigne la nouvelle ligne, "\r" le retour à la ligne, "\t" la tabulation. Et comme du coup le caractère "\" a pris une nouvelle significations, il faut écrire "\\" pour obtenir en fait ’\’. Notez la différence entre les quottes et les guillemets. Dans le premier cas on interprète les séquences de caractères. Dans le deuxième non. La liste complète des caractères spéciaux enLlinux avec leurs séquences peut être trouvée ici. Notez la manière de pouvoir indiquer tout caractère ASCII par son code en base 8.

Pour conclure sur les éditeurs de texte, leur différence avec les traitements de textes est qu’ils ne manipulent que du texte. Par contre les traitements de texte ajoutent autour du texte toutes les informations de mise en forme. Il existe de multiples façons de codes la mise en forme, une ancienne est le format rtf où ces information sont insérées sous forme de commandes. Ce principe a été poussé à l’extrême avec Latex. Dans ce cas écrire un texte devient un exercice de programmation. Latex est le format le plus rependu pour les articles en mathématiques et en informatique. Un convention plus récente est l’utilisation d’un langage de balisage type XML qui étend le HTML utilisé pour les pages Web. Toute partie de texte à laquelle on applique une mise en forme est encadrée par des étiquettes ... . Le résultat d’un traitement de textes n’est alors plus un unique fichier texte, mais dossier compressé de multiples fichiers xml. Pour vous en rendre compte, décompressez un fichier au format open document (format utilisé à la fois par OpenOffice et Google documents) en utilisant un programme reconnaissant le format de compression zip (article en Anglais, vous pouvez vous proposez pour le traduire).

Notions de réseau TCP/IP

Le réseau Internet est né de la volonté duDARPA de connecté les différents réseau locaux
dispersés aux USA en utilisant les infrastructure existantes, en particulier les lignes téléphoniques. Il ne s’agissait donc pas de construire un nouveau réseau physique, mais de s’entendre sur une suite de standards d’encodage et de routage de données entre réseaux hétéroclites et infrastructures non homogènes. Le nom TCP/IP donnée à cette suite vient des deux principaux protocoles qui constituent cette norme. TCP est un protocole de transport ou transmission des données émises par une application réseau de type http, ftp, ssh, dhcp, dns, imap etc. Il précise comment il faut découper et en-capsuler les données pour une transmission (ou émission) sur le réseau internet. Ce protocole est complexe, la suite en comprend d’autres tel que l’UDP plus simple et normalement préféré pour les applications locales.

Le protocole IP est un protocole d’adressage qui vient à son tour en-capsuler les paquets encodés selon un protocole de transport (generalement TCP ou UDP). Dans la version IPv4, l’adressage doit être contenu sur quatre octets. Aux origines d’internet cela semblait permettre de numéroter tout objet à inclure dans ce réseau essentiellement virtuel. L’utilisation sociale et économique de l’internet a totalement dépassé ces limites et on a assisté à une pénurie d’adresses. Pour contourner cette limitation on réservé une plage d’adresses pour la constitution de réseaux locaux. L’ensemble du réseau local étant connecté au reste du réseau internet via des machines passerelles. Seules ces passerelles ont la nécessité d’avoir une adresse unique sur Internet. Les adresses locales peuvent être reproduites sur autant de réseaux locaux que nécessaire.
Ainsi chacun gère son adressage local comme il le souhaite, par contre l’adressage global est réservé aux fournisseur d’accès enregistrés à l’agence ICANN. Dans les deux cas on utilise des serveurs DHCP pour allouer ces adresses IP de manière dynamique.

Une autre défaut de naissance, est que par défaut les paquets sont dupliqués sur le réseau pour s’assurer qu’au moins un parviendra à son destinataire. Cela a comme conséquence qu’il est facile d’intercepter une communication. Pour remédier à cela il a fallu introduire le cryptage de données tel que SSL et TSL au niveau des applications de manière à s’assurer que seul le réel destinataire pourra les lire.

Enfin, pour faciliter l’utilisation des adresses par les utilisateurs humains, ont été mis en place des serveurs dns permettant d’associer des noms de domaines aux adresses et d’en assurer la traduction en toute transparence pour l’utilisateur.

Architecture client/serveur

Comme nous l’avons dit, la naissance d’internet est liée au besoin de connecter de puissants réseaux locaux qui eux étaient centralisés chacun sur un "mainframe" (puissant ordinateur central). Les calculs étaient centralisés et on communiquait avec ces cœurs au moyen de terminaux légers ou par l’intermédiaire d’ordinateurs intermédiaires. Ces architectures naturellement multi-utilisateurs ont conduit à partager les applications en deux types de modules :
- le module serveur exécuté par le mainframe central,
- les interfaces utilisateurs exécutés sur les terminaux.
On a ainsi séparé la partie traitement de la partie interface. Aujourd’hui que l’informatique est devenu principalement distribuée, cette séparation entre le client et le serveur a pris d’autant plus d’importance.

Les applications clients-serveur les plus répandues sont :
- les applications web où les clients sont les navigateurs.
- les Systèmes de gestion de bases de données dans lesquels on veut centraliser les données pour tout utilisateur.
- les messageries.
- les serveurs d’impressions qui gèrent l’envoie de documents à une imprmante.
- les annuaires informatiques type LDAP qui centralisent les identifications des utilisateur sur un système ou un raison.
- etc.

A contrario, les applications de bureautique fusionnent généralement interface et traitement des données.

Une petite confusion à éviter, un "serveur" dans ce contexte ne désigne pas une machine particulière, mais un programme qui écoute en permanence sur le réseau en attente des sollicitations. Ainsi de multiples programmes serveurs peuvent tourner sur une machine. Sur Windows, ouvrez l’utilitaire de gestion de services, tous les programmes qui s’affichent sont de ce type. Ici même nous avons parlé de serveurs web et ssh en supposant qu’ils existent sur la même machine LINUX.

Avoir des programmes qui écoutent en permanence sur le réseau c’est pratique mais cela peut aussi constituer autant de failles de sécurité. Il est alors indispensable de configurer son réseau local pour filtrer les machines autorisés à se connecter à ces applications. C’est le rôle des pare feu.

Puisque une machine peut comprendre des dizaines de programmes serveurs, tous ces programmes vont écouter sur la même adresse IP, celle de la machine qui les héberge. Pour les distinguer, il est donc nécessaire d’ajouter un nombre à l’adresse. On appelle ce nombre le port de l’application. ll existe des conventions qui attribuent le nombre 80 au serveur web, 22 au serveur ssh etc. Cependant il ne s’agit là que de conventions. L’administrateur d’une machine peut redéfinir ces ports comme il le souhaite. Il faut simplement que toutes les applications clients connaissent ces choix pour interroger la bonne application serveur. De même, lorsque une application client cherche à se connecter à un serveur, elle ajoute un port d’émission à l’adresse internet d’où elle émet.

Pour aller plus loin ...

Articles à venir :

Le rôle de l’agence DARPA dans la création de l’InterNet par Elisa S.

Le rôle de l’agence ICANN dans le gestion de l’InterNet par Nadine P.

Le protocole SSH par Benoulaid E. M.

Gestion du pare feu informatique sur un serveur d’applications WEB de bases de données par Jordan P.

Créer un tunnel sécurisé entre deux réseaux protégés par des pare feus par Nocolas D.

La distribution Ubuntu de LINUX par Margot L.

La distribution Mac de LINUX par Vincent F.

La programmation bash par Ludovic M.

Notepad++ par Carine B.

Architecture Client Serveur via IP par Mailys A.

Le traitement de texte Latex par Isabelle P.