Administration Système

1. Définition
2. Historique
3. Caractéristiques
4. Gestion des réseaux
5. Unix
6. Windows Server
7. Gestion de la sécurité

1. Définition

Système d'exploitation :

 - Application de gestion des ressources d'un ordinateur et de gestion de l'interaction entre ces ressources :
   - mémoire
   - processeur
   - périphériques
   - réseau
   - processus
   - ...
 - Application permettant l'abstraction entre le matériel et le logiciel.
 - Application fournissant une interface utilisateur permettant d'utiliser l'ordinateur.

Application ouverte aux développeurs pour que ceux-ci puissent créer leurs propres applications en utilisant les ressources proposées par le système d'exploitation. Certaines de ces applications peuvent être des applications "systèmes" destinées à être utilisées en association rapprochée avec le système d'exploitation, exemple : Gestionnaire d'environnement fenêtré. A ce titre, ces applications pourraient être assimilées au système d'exploitation.

Conception en couches : Système d'exploitation généralement développé sous la forme d'un noyau (kernel) comportant l'ensemble des fonctionnalités de base de gestion des ressources, accompagné d'un ensemble d'utilitaires indépendants ou interdépendants apportant des services plus élaborés que les fonctionnalités de base du noyau.

2. Historique

Apparus avec les premiers ordinateurs dans les années 50.
Plusieurs concepts au cours du temps pour arriver aux technologies actuellement utilisées.
Buts de ces évolutions :
 - Optimisation de l'utilisation des ressources matérielles.
 - Fiabilisation du fonctionnement des ordinateurs.
 - Emploi plus facile des ordinateurs par leurs utilisateurs.
 - Apport de nouvelles fonctionnalités.

Traitement par lots (années 50)

Le système d'exploitation exécute séquentiellement des lots de programmes : des batchs.
Les programmes sont fournis par leurs développeurs sous la forme de cartes perforées ou de bandes magnétiques à un opérateur humain qui procède à leur intégration dans un batch puis à son exécution puis à la récupération des résultats (souvent imprimés) pour restitution au développeur.

00000000111111111122233333444444444444555566666666
Exécution d'un batch de 7 programmes numérotés de 0 à 6 lancés "en même temps"

Pas d'interaction temps réel entre un programme et son utilisateur.

Multiprogrammation (années 60)

L'accès aux ressources étant fréquement lent, l'introduction de la multiprogrammation a permis l'optimisation de leur utilisation. Les programmes ne sont plus exécutés les uns après les autres, mais "en même temps". Lorsqu'un programme en exécution accède à une ressource (voire quand il le souhaite même sans accéder à une ressource), il peut rendre la main au système d'exploitation de façon à ce que celui-ci puisse donner la main à un autre programme. Il récupérera la main lorsque le système d'exploitation la lui redonnera.

00111111111234555666666660000122334450033444444444
Exécution de 7 programmes numérotés de 0 à 6 lancés en même temps

Problème : Rien n'oblige un programme à rendre la main. Il peut donc accaparer le processeur.

Avec l'apparition début 60 du couple clavier-écran connectable aux ordinateurs, l'interaction temps réel entre un programme et son utilisateur devient possible.

Temps partagé (années 70)

Le système d'exploitation devient maître de l'allocation des temps de calcul. Il les attribue de façon discrétionnaire en tenant éventuellement compte de priorités. Chaque programme a l'impression d'être le seul programme en exécution sur l'ordinateur.
La cadence de réattribution étant très rapide, l'illusion est donnée que les programmes fonctionnent en parallèle (effet dessin animé).

01234560123456012345601345601346014601460146141444
Exécution de 7 programmes numérotés de 0 à 6 lancés en même temps

Un programme ne peut pas accaparer le processeur.
Cette technologie a rendu possible l'utilisation interactive d'un même ordinateur par plusieurs utilisateurs simultanés.

Unix

Créé au tout début des années 70 aux Bell Labs, composante d'AT&T, par une équipe dirigée par Kenneth Thompson.
Deux branches principales historiques : BSD et System V.
BSD (Berkeley Software Distribution) : Développé initialement à l'Université de Berkeley. Ancêtre de certains systèmes Unix libres (FreeBSD, OpenBSD, ...) et de certains Unix propriétaires voire très propriétaires (SunOS, NeXTSTEP, Mac OS X).
AT&T System V : Ancêtre de la plupart des systèmes Unix propriétaires (SCO Unix, Solaris, AIX, HP-UX, IRIX, ...).
Support des réseaux.

Linux

Ersatz d'Unix (mêmes commandes, code différent) créé par Linus Torvald au début des années 90. Inspiré d'Unix System V.
A rencontré un grand succès et a remplacé Unix sur la majorité des grands systèmes informatiques. Ultra-dominateur sur les super-calculateurs.
Noyau accompagné d'un ensemble d'utilitaires développés par une communauté de développeurs, et regroupés au sein de distributions. Le noyau est libre, mais les distributions et surtout leurs services associés peuvent être payants.
Support des réseaux.

Principales distributions : Debian, Ubuntu (issue de Debian), Mint (issue de Ubuntu) , Red Hat, Fedora (supportée par Red Hat), OpenSUSE, ...

MS/DOS, Windows, Windows NT et Windows Server

Ligne des systèmes d'exploitation de Microsoft Corp..

MS/DOS : Système d'exploitation fourni au début des années 80 par Microsoft à IBM pour le nouvel ordinateur personnel IBM PC. Système d'exploitation racheté par Microsoft à la société SCP.
Fonctionnement en ligne de commandes. Pas de support natif des réseaux.
Dernière version majeure : MS/DOS 6.22 en 1994

Windows 1.0 à Windows 3.11 (1985 à 1993) : Interface graphique produite par Microsoft pour le système d'exploitation MS/DOS. Apport du réseau avec Windows 3.11 pour workgroup.

Windows 95 à Windows Millenium (1995 à 2000) : Transformation de Windows en un système d'exploitation classique, c'est à dire muni d'un noyau propre.
Support des réseaux.

Windows NT 3.51 et Windows NT 4.0 (1993) : Système d'exploitation à vocation professionnelle caractérisé par un noyau entièrement réécrit par rapport au noyau de Windows 95 dans le but pour Microsoft de fusionner in fine les noyaux de ses systèmes d'exploitation personnels et professionnels.
Support natif des réseaux.
Existence de deux releases : Workstation pour les postes clients et Server pour les serveurs. Noyaux et interfaces utilisateur identiques, mais services en plus pour Server de façon à permettre de créer des serveurs de fichiers, d'applications, de comptes d'utilisateurs, de terminaux, ...

Windows XP à Windows 10 (2001 à 2020) : Versions poste client à vocation personnelle ou professionnelle.

Windows Server 2000 à Windows Server 2019 (2000 à 2020) : Version serveur professionnelle.

Mac OS et Mac OS X

Ligne des systèmes d'exploitation d'Apple pour ses Macintosh.

Apparu en 1984 pour l'ordinateur Apple Macintosh.
Premier système d'exploitation commercial basé sur l'utilisation du couple souris/interface graphique fenêtrée.
Code source fermé.
Système d'exploitation totalement spécifique des versions 1 à 9 (84 à 99).
Rachat de la société NeXT en 1997 et utilisation de ses technologies systèmes (NeXTSTEP) pour développer et déployer Mac OS X en 2001 qui est donc en fait un Unix BSD largement modifié.
Mac OS X a eu 16 mises à jour entre 2001 et 2019. Mac OS 11 vient d'être publié par Apple.

Google Android, Apple iOS

Systèmes d'exploitation pour téléphone portable de toutes marques pour Android, de marque Apple pour iOS.
Tous deux dérivés d'Unix.
Android et iOS tous deux lancés en 2007.

3. Caractéristiques

3.1. Multi-processus

Exécution concurrente possible de plusieurs processus indépendants.
Chaque processus possède sa propre zone mémoire allouée de façon exclusive et ne peut accéder directement qu'à sa propre zone mémoire -> protection des données d'un processus vis à vis des écritures mémoires réalisées par les autres processus. L'adressage se fait dans cette zone mémoire sous forme virtuelle, c'est à dire que les adresses mémoires utilisées par le processus ne sont pas les adresses réelles, mais sont automatiquement mappées sur les adresses réelles.
Distribution en 1982 par Intel du processeur 80286 destiné aux ordinateurs de type IBM PC et qui a apporté un mode de fonctionnement dit en "mode protégé" qui permet de gérer et de protéger le fonctionnement de chaque processus et de sa mémoire virtuelle dédiée.
-> Emulation de autant de processeurs 8086 que souhaité sur un seul processeur 80286.
C'est sur cette notion de mémoire virtuelle que s'est construite une partie du travail visant à améliorer la sureté de fonctionnement des systèmes d'exploitation.

3.2. Multi-utilisateurs

Gestion de plusieurs utilisateurs regroupables en groupes d'utilisateurs.
Utilisateurs définis a minima par un nom de login et un mot de passe.
Possibilité, suivant les systèmes d'exploitation, de définir de multiples autres informations pour chaque utilisateur :
 - Répertoire home ou répertoire de base.
 - Horaires
 - Groupe(s) d'appartenance
 - Applications autorisées
 - Actions autorisées (privilèges, droits)
   - Ouvrir une session de travail
   - Eteindre la machine
   - Configurer le système d'exploitation
   - Changer la configuration matérielle
   - ...
 - Description
 - ...

Utilisation des utilisateurs et des groupes d'utilisateurs pour attribuer des autorisations (des permissions) sur tout ou partie des ressources.
Utilisation des utilisateurs et des groupes d'utilisateurs pour attribuer des droits (des privilèges) systèmes.

Existence d'un utilisateur particulier, l'administrateur, qui peut tout faire, y compris se donner tout privilège ou toute autorisation dont il ne dispose a priori pas. Son nom est root sous Unix et administrateur sous Windows pour les releases françaises (administrator en anglais).

3.3. Multi-tâches

Plusieurs processus en fonctionnement s'exécutent en parallélisme simulé (voir ci-dessus).

3.4. Multi-sessions

Plusieurs utilisateurs peuvent ouvrir simultanément une session de travail et travailler en même temps. Ces sessions peuvent être locales ou à distance (via réseau), en ligne de commandes ou en interface graphique suivant les composants logiciels utilisés. Composants caractérisés par l'existence d'une partie serveur (un service) et d'un logiciel client.
Fonctionnalité présente dans Unix depuis toujours pour les connexions locales. Historiquement, rlogin et telnet étaient utilisés en mode texte pour les connexions via réseau (tombés en déserrance à cause de leur nature non sécurisée). Ils ont été complétés par XDMC (X Display Manager Control), basé sur le gestionnaire de fenêtrage X Window (X11), qui a apporté l'interface utilisateur graphique et des possibilités de sécurisation pour l'installation de "Terminaux X". VNC est probablement la technologie la plus utilisée actuellement sous Unix.
Fonctionnalité existant sous deux formes dans Windows : le Bureau à Distance (Remote Desktop) pour toutes les versions de Windows pour deux ouvertures de session simultanées pour deux utilisateurs différents, le service Remote Desktop Services (anciennement Terminal Services) installable sur les machines sous Windows Server pour leur permettre d'accepter autant d'ouvertures de session simultanées qu'achetées y compris pour plusieurs fois le même utilisateur.

L'interopérabilité est possible entre systèmes d'exploitation différents. Tout est une question de composant serveur et de logiciel client.

3.5. Multi-threads

Thread (processus léger) : Fil d'exécution parallèle amorcable au sein d'un processus (ou d'un autre thread).

Intérêt des threads lancés par un processus ou un thread : Ils sont exécutés dans la même zone mémoire que le processus ou le thread qui leur a donné naissance et ont un accès complet à cette zone mémoire. Ils ne nécessitent donc pas de dispositifs de développement complexe pour être utilisés. De plus, cette absence de contrôle entraine une grande rapidité.
Inconvénient : Il n'y a aucun contrôle d'accès, il est donc possible qu'un thread corrompe les données d'un autre thread sans que celui-ci puisse s'y opposer ou même s'en rendre compte.

3.6. Multi-processeurs

Les systèmes d'exploitation ont la possibilité d'exploiter plusieurs processeurs quand il en existe plusieurs dans l'ordinateur.
Répartition des processus et des threads sur les processeurs.

Deux concepts historiques plus complémentaires qu'antagonistes : Les ordinateurs à mémoire distribuée et les ordinateurs à mémoire partagée.

Mémoire distribuée

La machine est construite avec n processeurs disposant chacun de leur mémoire propre. Les communications entre processus se font par l'intermédiaire de messages avec intervention des processeurs sur lesquels les processus sont en exécution.
Avantage : Simplicité architecturale du matériel, scalabilité, accès mémoire sécurisés et bande passante mémoire prévisible.
Inconvénients : Les communications entre processus sont pénalisantes car dépendantes de la vitesse de communication entre les processeurs (bus, réseau, ...) qui est généralement limitée. Un processus ne peut pas utiliser plus de mémoire que disponible sur le processeur où il est en exécution.
Solution technique intéressante lorsque le problème que l'on souhaite implanter se décompose en tâches élémentaires indépendantes.

Mémoire partagée

La machine est construite avec n processeurs partageant une zone de mémoire unique. Les communications peuvent être réalisées par simple écriture mémoire si on utilise la programmation multi-threadée.
Avantages : La communication entre les processus est rapide (de mémoire à mémoire, voire de mémoire cache à mémoire cache). L'affectation des ressources mémoire est souple (un processus peut réserver l'intégralité de la mémoire disponible).
Inconvénients : L'architecture matérielle est plus complexe qu'en distribué et moins scalable. Problèmes éventuels de goulet d'étranglement pour l'accès à la mémoire.
Exemple : Machines SMP (Symetrical Multi-Processor)

3.7. 32 bits, 64 bits

Les processeurs manipulent des mots de données. Ces mots ont une largeur définie par l'architecture du processeur. Cette largeur a évolué au cours du temps : 8 bits dans les années 70, 16 bits au début des années 80, 32 bits des années 80 au début des années 2000, 64 bits depuis le début des années 2000.

Génération Date Adressage Transistors Gravure Vitesse Coeurs
4004 1971 4 bits 2300 ? 0,74 MHz 1
8080 1974 8 bits 6000 6000 nm 2 Mhz 1
8086 1978 16 bits 29000 3000 nm 4 MHz 1
80286 1982 16 bits 134000 1500 nm 12,5 MHz 1
80386 1985 32 bits 275000 1500 nm 25 MHz 1
80486 1989 32 bits 1.18 M 1000 nm 50 MHz 1
Pentium 1993 32 bits 3.1 M 800 nm 90 MHz 1
Pentium II 1997 32 bits 7.5 M 350 nm 400 MHz 1
Pentium III 1999 32 bits 28.0 M 250 nm 1 GHz 1
Pentium 4 2001 32 bits 42.0 M 180 nm 1.6 GHz 1
Pentium 4 EE 2004 32 bits 125.0 M 90 nm 3.4 GHz 1
Pentium D 2005 32 bits 291.0 M 65 nm 3.2 GHz 2
Génération Date Adressage Transistors Gravure Vitesse Coeurs
Itanium 2001 64 bits ? 180 nm 800 MHz 1
Itanium 2 2004 64 bits 220.0 M 130 nm 1.6 GHz 1
Core 2 Duo 2006 64 bits 291.0 M 65 nm 3.5 GMHz 2
Core I7 975X 2008 64 bits 731.0 M 45 nm 3.6 GHz 4
Core I7 990X 2011 64 bits 1.17 Mld 32 nm 3.46 GHz 6/12
Core I7 4960X 2013 64 bits 1.86 Mld 22 nm 3.6 Ghz 6/12
Core I7 6700K 2015 64 bits 1.75 Mld 14 nm 4.2 Ghz (4.4) 4/8
Core I7 6950X 2016 64 bits 3.4 Mld 14 nm 3.0 Ghz (3.5) 10/20
Core I9 9900K 2018 64 bits ? Mld 14 nm 3.6 Ghz (4.9) 8/16
Core I9 9980XE 2018 64 bits ? Mld 14 nm 3.0 Ghz (4.4) 18/36
Core I9 10900K 2020 64 bits ? Mld 14 nm 3.8 Ghz (5.2) 10/20
Core I9 10980XE 2020 64 bits ? Mld 14 nm 3.0 Ghz (4.6) 18/36
Xeon E5 2697 v2 2013 64 bits + de 3.5 Mld 22 nm 2.7 Ghz 12/24
Xeon E7 8890 v4 2016 64 bits + de 7.2 Mld 14 nm 2.2 Ghz (3.4) 24/48
Xeon Platinum 8180 2017 64 bits ? Mld 14 nm 2.5 Ghz (3.8) 28/56
Xeon Platinum 9282 2019 64 bits ? Mld 14 nm 2.6 Ghz (3.8) 56/112

Historique (très) partiel des processeurs Intel

Génération Date Adressage Transistors Gravure Vitesse Coeurs
Ryzen 2700X 2017 64 bits 4,9 Mld 12 nm 3.7 Ghz (4.3) 8/16
Ryzen 5950X 2020 64 bits ? Mld 7 nm 3.4 Ghz (4.9) 16/32
Threadripper 2990WX 2018 64 bits 19,2 Mld 12 nm 3.0 Ghz (4.2) 32/64
Threadripper 3990X 2020 64 bits ? Mld 7 nm 2.9 Ghz (4.3) 64/128

Historique (très très) partiel des processeurs AMD

Cette largeur est l'un des paramètres de quantification de la puissance d'un ordinateur : plus large = plus puissant. Un mot plus large permet de manipuler des nombres plus grands en un même nombre de cycles d'horloge -> plus de précision en moins de cycles. Un mot plus large permet d'adresser plus de mémoire car ces mots sont utilisés pour définir les adresses mémoire et les quantités de mémoire -> possibilité de gérer plus de mémoire sans dispositif complexe et lent (pagination) pour adresser cette mémoire :
 - 8 bits : 256 octets,
 - 16 bits : 64 Ko,
 - 32 bits : 4 Go,
 - 64 bits : 16 milliards de Go (avec l'architecture 64 bits, on est tranquille pour longtemps pour le problème de l'adressage mémoire).

Le choix entre générer une application 32 bits et générer une application 64 bits est réalisé au moment de la compilation et de l'édition de liens. Au prix du respect de quelques précautions de développement, en particulier pour tout ce qui relève des manipulations explicites de pointeurs et des allocations dynamiques de mémoire, changer de cible de compilation et d'édition de lien ne pose pas de problème.
Une même application compilée en 32 bits et en 64 bits sera plus "grosse" en 64 bits et consommera plus de mémoire pour elle même et pour les données qu'elle manipule lorsqu'elle est lancée.
Lancée sur un système d'exploitation 64 bits (Windows), les deux versions d'une même application présentent une légère différence de vitesse d'exécution (quelques %) au bénéfice de la version 64 bits.

3.8. Sécurisé

Les systèmes d'exploitation ont été progressivement munis d'un ensemble de caractéristiques permettant de gérer la sécurité :
 - comptes,
 - autorisations,
 - privilèges,
 - audit,
 - chiffrement,
 - ...

3.8.1. Audit, journalisation

Les activités du système d'exploitation et surtout les incidents associés à ces activités sont enregistrées.

Les activités des utilisateurs peuvent être enregistrées :
 - Tentatives d'utilisation de leurs droits
 - Tentatives d'utilisation de leurs permissions

Existence de journaux permettant de lister les événements audités enregistrés.

3.8.2 Chiffrement

Les informations sont stockées/transférées sous une forme non directement lisible. Par extension le chiffrement permet l'authentification de l'origine des données (la signature), la vérification de l'intégrité des données, ...
Les systèmes de chiffrements sont conçus à base de clés de chiffrement c'est à dire de groupes d'octets caractérisant ou non des nombres, permettant l'opération de chiffrement et/ou de déchiffrement pas transformation du groupe d'octets à chiffrer pour obtenir un autre groupe d'octets.

Chiffrement symétrique

Le chiffrement est dit symétrique lorsque la même clé est utilisée pour chiffrer et déchiffrer.
AES (Advanced Encryption Standard) est l'algorithme de chiffrement symétrique le plus utilisé actuellement. Il date du début des années 2000. Il utilise une clé sur 128, 192 ou 256 bits.
Il est adapté aux situations où l'on a besoin de rapidité et où le chiffreur et le déchiffreur sont la même "personne" et qu'il n'y a donc pas de problème de communication de clés car il n'y a pas de communication de clés à réaliser. Exemple : Chiffrer un disque dur.

Chiffrement asymétrique

Le chiffrement est dit asymétrique lorsque deux clés différentes sont utilisées pour le chiffrement et le déchiffrement d'un message. Une première clé appelée publique servira pour le chiffrement. Elle est créée est transmise par le destinataire du message à l'émetteur du message chiffré qui s'en sert pour chiffrer son message. Une seconde clé appelée privée est elle aussi créée par le destinataire du message. Elle servira pour le déchiffrement. Cette clé est bien entendu non déduisible de la clé publique. La clé privée est destinée à l'usage exclusif du destinataire et n'est donc transmise à personne.
RSA (Rivest, Shamir, Adleman) est l'algorithme de chiffrement asymétrique le plus utilisé actuellement. Il date du début des années 1980. Les clés sont des nombres entiers. Elles étaient définies jusqu'à récemment sur 1024 bits. C'est devenu insuffisant à cause de la hausse de la puissance des ordinateurs pouvant être utilisés pour les casser. Il est maintenant recommandé d'utiliser des clés de 2048 voire 4096 bits.
Ce type de chiffrement est adapté aux situations où la rapidité n'est pas un critère fondamentale et où le chiffreur et le déchiffreur sont des "personnes" différentes ayant éventuellement besoin de s'authentifier mutuellement. Exemple : Les communications entre deux machines sur un réseau.

4. Gestion des réseaux

Les réseaux d'informations sont vieux comme le monde :
 - la parole,
 - signaux de fumée ou de lumière,
 - sémaphores,
 - télégraphie filaire à la fin du 18ème siècle, code Morse en 1840,
 - télégraphie sans fil (TSF) au début du 20ème siècle,
 - téléphone à câble à la fin du 17ème siècle, téléphone optique en 1880, téléphone électrique dans les années 1870,
 - ...

Les concepts fondateurs de ce que les réseaux de données modernes allaient devenir ont été posés dans les années 1950 :
 - organisation en graphe avec des noeuds reliés par des liens de communication,
 - stockage temporaire/routage de l'information au niveau des noeuds quand les liens sont déjà occupés,
 - découpage des messages en paquets d'informations circulant de façon autonome sur le réseau,
 - ...

Naissance en 1969 du réseau ARPANET basé sur ces concepts.
Recherches universitaires financées par la DARPA (Defense Advanced Research Projects Agency), l'agence de recherche du département de la défense des Etat-Unis (le ministère de la défense). 4 universités reliées fin 1969 : UCLA à Los Angeles, Stanford Research Institut à San Francisco, UCSB à Santa-Barbara et l'Université d'Utah à Salt Lake City.
Basé sur le protocole NCP (Network Control Protocol).

Naissance du protocole TCP/IP au début des année 1970 (publication officielle en 1973). Adoption de TCP/IP par ARPANET en 1983 car le protocole NCP interdisait l'interopérabilité avec d'autres réseaux que ceux basés sur le même matériel que celui d'ARPANET.

Il est impossible de définir de façon univoque la naissance d'Internet car Internet est un réseau d'interconnexion de réseaux. ARPANET en est l'une des premières pierres au milieu des années 80. Le déploiement mondial d'Internet a été initié au tournant des années 80-90. L'Université de Franche-Comté est connectée au réseau Internet depuis 1992 initialement par un lien à 256 Kbits/s.
Le service Web (World Wide Web, WWW) basé sur le protocole http est apparu au début des années 90. Les technologies bases du Web (liens hypertexte, langage html, ...) ont été développées au CERN (Centre Européen de Recherches Nucléaires) à coté de Genève et le premier navigateur Internet, Mosaic, au NCSA (National Center for Supercomputing Applications) aux Etats-Unis.
Les technologies Web ont été versées dans le domaine public en 1993.

4.1. Communication entre machines par l'intermédiaire d'un réseau

Toute machine physiquement connectée à un réseau peut "théoriquement" communiquer avec toute autre machine elle-même physiquement connectée à ce même réseau. Dans la pratique, c'est loin d'être systématiquement le cas à cause de limitations techniques souhaitées ou non.

Un message envoyé d'une machine à une autre machine est segmenté en un ensemble de morceaux appelés paquets. Chacun de ces paquets est marqué par la machine source avec, entre autres informations de signalisation, son nom et le nom de la machine cible et est émis sur le réseau à destination de cette machine.
Rien n'interdit qu'un paquet se perde en cours de route. Suivant la technique de gestion de la communication, ces pertes peuvent être tolérées ou interdites. Dans le second cas, la perte est détectée et le paquet est envoyé de nouveau.

Le transfert de ces paquets requière la présence d'une infrastructure matérielle gérée au moyen d'une infrastructure logicielle.

4.1.1. Infrastructure matérielle

Réseau physique : Un réseau physique est constitué d'un ensemble de liens de communication interconnectant les machines et est caractérisé par le fait que chaque machine peut communiquer "directement" avec toute autre machine du même réseau physique c'est à dire qu'il existe un chemin (unique ou non) entre les machines de chaque couple de machines connectées au réseau.

Dans le cas des réseaux ethernet sur double paires torsadées (technologie filaire la plus courante actuellement), les machines sont interconnectées via des concentrateurs (hubs) ou des commutateurs (switchs).

Concentrateur (hub) : Un concentrateur relie les machines en étoile. Il duplique et transmet tout paquet à toutes les machines qui lui sont directement connectées. Une machine cible conservera et exploitera les paquets qui lui sont destinés et oubliera les autres.
Du fait de la duplication des paquets, la somme des bandes passantes instantanées sur l'ensemble des machines connectée est limitée à la bande passante du concentrateur (généralement 100 Mbits/s).
La capacité de transfert est donc partagée entre les machines connectées et est limitée à celle du concentrateur.

Trajet des paquets en cas d'utilisation d'un concentrateur

Les réseaux sans fil fonctionnent en mode concentrateur.

Par nature les réseaux à base de concentrateurs sont insécurisés car toutes les machines reçoivent toutes les informations. Ils sont donc fréquement chiffrés, mais cela ne change pas la nature du problème.

Commutateur (switch) : Un commutateur relie les machines en étoile et transmet un paquet à la seule machine à laquelle il est destiné -> Une machine reçoit les seuls paquets qui lui sont destinés.
Chaque machine possède une bande passante potentielle vers les autres machines qui lui sont connectées égale à celle de son interface réseau (10, 100, 1000 Mbits/s, ...).
La bande passante globale du sous-réseau est toutefois limitée par la vitesse de commutation du commutateur qui est généralement assez grande pour ne pas impliquer de goulet d'étranglement.

Trajet des paquets en cas d'utilisation d'un commutateur

Un réseau peut être constitué par une étoile (éventuellement une étoile à plusieurs niveaux) de commutateurs ou concentrateurs sur lesquels viennent se connecter en étoile les machines. Quoi qu'il en soit, il ne doit exister qu'un seul chemin entre tout couple de machines.

Interconnexion de réseaux et routage : Deux ou plusieurs réseaux physiques séparés peuvent être connectés entre eux via un routeur. Un tel matériel est capable de "router" les paquets entre les réseaux qui contiennent respectivement les machines source et cible.

Dans les cas simples, les réseaux sont directement connectés sur un routeur unique qui après configuration semble agir comme un commutateur.

Construction d'un réseau global
par inter-connexion de (sous-)réseaux
au moyen d'un routeur

Dans les cas plus complexes (réseaux d'entreprise, Internet), un seul routeur ne permet pas l'inter-connexion de l'ensemble des réseaux. Plusieurs routeurs reliés entre eux consécutivement sont alors utilisés sur le chemin des paquets.

Construction d'un réseau global
par interconnexion de (sous-)réseaux
au moyen d'un graphe de routeurs

Pour des raisons de pérennité de fonctionnement et capacité de transfert d'information, le réseau de routeurs, au lieu d'être construit en étoile, pourra être construit en graphe (voir ci-dessus). Plusieurs chemins pourront exister pour relier un réseau et un autre réseau. Pour un même message, les paquets peuvent transiter par des chemins différents et même arriver dans un ordre différent de celui de départ. Le matériel actif du réseau se contente d'assurer le transfert de l'information. Ce sont les machines cibles qui reconstituent la cohérence des messages à l'arrivée.

Construction d'un réseau global
par interconnexion de (sous-)réseaux
au moyen d'un graphe de routeurs

Les routeurs ont une "connaissance" (statique ou dynamique) de la topographie globale du réseau permettant ainsi de résoudre le problème du choix et de l'optimisation des liens de transit.

D'un point de vue physique, la différence entre routeur et commutateur-concentrateur est la capacité à relier les routeurs en graphe alors qu'avec les commutateurs et les concentrateurs la liaison doit être rélaisée en étoile. On verra plus loin que les routeurs ont aussi un rôle "logique".

Remarque : Tel que présenté ci-dessus, l'ensemble des machines reliées en étoile par une suite de concentrateurs ou de commutateurs peut être interprété comme constituant un réseau unique. Dans la pratique, l'infrastructure logicielle (voir ci-dessous) qui est greffée sur l'infrastructure matérielle permet de constituer des "sous-réseaux logiques" moins étendus. Il est ainsi possible de gérer 2 (ou plusieurs) sous-réseaux logiques indépendants en utilisant un seul concentratreur ou commutateur. S'il est souhaité d'interconnecter ces sous-réseaux, il faudra en plus faire appel à un appareil (routeur ou ordinateur assurant une fonction de routage) assurant le routage.

4.1.2. Infrastructure logicielle

L'infrastructure logicielle d'un réseau informatique est basée sur l'utilisation de un ou plusieurs protocoles de communication (i.e. langage de communication d'informations entre ordinateurs).

Les protocoles les plus courants ont été TCP/IP, NetBEUI et IPX/SPX. TCP/IP est le protocole de l'Internet et s'est généralisé.

Une différence la plus marquante existant entre ces trois protocoles tient à la routabilité. En effet, TCP/IP est assez facilement "routable" (et bien entendu est géré par les routeurs) et permet donc d'interconnecter des sous-réseaux. NetBEUI ne l'est pas. IPX/SPX l'est moins facilement que TCP/IP. Cette caractéristique ainsi que sa relative simplicité et sa capacité à supporter des réseaux de tailles importantes explique l'adoption de TCP/IP pour le réseau Internet.

L'infrastructure logicielle comprend pour chaque protocole :
 - Les logiciels de configuration, de gestion et d'audit du fonctionnement des matériels du réseau (concentrateurs, commutateurs, routeurs, ...) (non abordés ici).
 - Les logiciels de configuration, de gestion et d'audit du fonctionnement local des machines permettant en particulier de donner un nom à chaque machine pour autoriser les communications machine source <-> machine cible.
 - Les services réseau implantés pour utiliser ou faciliter l'utilisation d'un protocole de communication dans le cadre de fonctionnalités précises.

4.2. TCP/IP

TCP/IP : Transfert Control Protocol / Internet Protocol

TCP/IP intègre, outre des paramètres permettant de nommer les machines et de les placer dans des sous-réseaux, un ensemble de paramètres destinés au routage.

TCP/IP existe en version 4 (TCP/IPv4) et en version 6 (TCP/IPv6).
L'existence de la version 6 est justifiée pas le fait que le système de dénomination des machines en version 4 n'autorise qu'un peu plus de 4 milliards de noms différents (232), limite qui est devenue problématique depuis longtemps.
TCP/IPv6 autorise près de l'ordre de 1038 noms différents (2128), limite qui ne sera jamais atteinte.

4.3. TCP/IPv4

4.3.1. Paramètres TCP/IP généraux

  - Adresse IP : Une machine est nommée de manière unique sur son réseau physique par son "adresse IP" formée de 4 nombres entiers compris entre 0 et 255 (nombres entiers non signés définis sur 8 bits).
Exemple: 172.20.128.23

  - Masque de sous-réseau (Subnet Mask) : Formé de 4 nombres entiers compris entre 0 et 255, le masque de sous-réseau permet d'indiquer à une machine quelles sont les adresses IP des machines qu'elle devra considérer comme faisant partie de son sous-réseau logique (i.e. les machines avec lesquelles elle peut communiquer sans routage). Il est bien entendu nécessaire que toutes les machines d'un sous-réseau aient le même masque de sous-réseau pour que chacune d'entre elles puisse avoir des communications bidirectionnelles avec chacune des autres machines.
Comme son nom l'indique, le masque de sous-réseau est un masque numérique. Il est géré en arithmétique binaire :
Si les "et binaire" entre les adresses IP de deux machines et le masque sont égaux alors les deux machines appartiennent au même sous-réseau TCP/IP.
Exemple: Soient le masque M = 255.255.255.128 et les machines d'adresses IP I1 = 172.20.128.164 et I2 = 172.20.128.213.
En binaire, le masque est
M = 11111111.11111111.11111111.10000000
et les adresses
I1 = 10101100.00010100.10000000.10100100
et
I2 = 10101100.00010100.10000000.11010101
Si (M & I1) == (M & I2) alors les machines font partie du même sous réseau TCP/IP. Le signe & désigne le "et binaire" et le signe == le test d'égalité.
M & I1 = 10101100.00010100.10000000.10000000
M & I2 = 10101100.00010100.10000000.10000000
(M & I1) est égal à (M & I2)
-> Ces deux machines sont sur le même sous-réseau. Elles pourront communiquer directement si elles sont physiquement interconnectées par un concentrateur ou un commutateur.
Interprétation intuitive du masque de sous-réseau : Si deux adresses IP ont les mêmes valeurs de bit partout où le masque possède un bit à un, alors ces deux adresses IP sont dans le même sous-réseau.

Les masques de sous-réseau ne sont pas considérés arbitrairement. Ils sont construits de gauche à droite au moyen d'une suite de bits à 1 complétée d'une suite de bits à 0.
Les masques de sous-réseau classiques sont :
   - 255.0.0.0 -> 256*256*256 = 16777216 adresses dans le même sous-réseau (si le premier entier de deux adresses IP sont les mêmes, les deux adresses sont dans le même sous-réseau) (ce masque correspond à ce que l'on appelle usuellement abusivement une classe A),
   - 255.255.0.0 -> 256*256 = 65536 adresses dans le même sous-réseau (si les deux premiers entiers de deux adresses IP sont les mêmes, les deux adresses sont dans le même sous-réseau) (ce masque correspond à ce que l'on appelle usuellement abusivement une classe B),
   - 255.255.255.0 -> 256 adresses dans le même sous-réseau (si les trois premiers entiers de deux adresses IP sont les mêmes, les deux adresses sont dans le même sous-réseau) (ce masque correspond à ce que l'on appelle usuellement abusivement une classe C),
   - 255.255.255.128 -> 128 adresses (2 sous-réseaux sur une classe C : de 0 à 127 et de 128 à 255 pour le dernier nombre),
   - 255.255.255.192 -> 64 adresses (4 sous-réseaux sur une classe C : de 0 à 63, de 64 à 127, de 128 à 191 et de 192 à 255 pour le dernier nombre),
   - 255.255.255.224 -> 32 adresses (8 sous-réseaux sur une classe C),
   - 255.255.255.240 -> 16 adresses (16 sous-réseaux sur une classe C),
   - 255.255.255.248 -> 8 adresses (32 sous-réseaux sur une classe C),
   - 255.255.255.252 -> 4 adresses (64 sous-réseaux sur une classe C).

Définition des différentes classes IP

  - Passerelle par défaut (Gateway) : Il s'agit de l'adresse IP vers laquelle seront envoyés tous les paquets non destinés à une machine du même sous-réseau que la machine source. Un routeur ou un ordinateur assurant le routage sera installé à cette adresse pour les réceptionner et assurer la transmission (routage) vers le sous-réseau destination. C'est dans cette fonctionnalité de transfert que se trouve le rôle "logique" des routeurs pour le protocole TCP/IP.

4.3.2. Paramètres de configuration DNS

La technique de dénomination par adresse IP (une série de 4 nombres entiers non signés définis sur 8 bits) est pratique pour les ordinateurs car facilement manipulée par eux en raison de l'utilisation d'une formulation à base de nombres entiers non signés. En revanche, la mémorisation est difficile pour les individus qui ont plus de facilités à manipuler des informations alphabétiques ou alphanumériques que numériques.

Développement d'une convention de dénomination supplémentaire permettant de désigner chaque machine par un ou plusieurs noms IP alphanumériques. Lorsqu'un tel nom est utilisé, une résolution directe est réalisée ayant pour but de déterminer l'adresse IP correspondante qui est utilisée de façon transparente à la place du nom IP. Moins utile, car généralement utilisée de façon explicite, l'opération inverse appelée résolution inversée existe aussi permettant de déterminer le ou les nom IP définis pour une adresse IP.

Principe : Une machine porte un nom et appartient à un domaine TCP/IP qui peut lui-même être le sous-domaine d'un autre domaine TCP/IP, etc. L'ensemble forme ce que l'on appelle le nom IP.
Un domaine peut ainsi posséder plusieurs sous-domaines, qui eux-mêmes peuvent posséder des sous-domaines, etc, créant ainsi une organisation arborescente.

Les parties alphanumériques du nom IP sont délimitées par des points avec, de gauche à droite, le nom de la machine, puis les différentes parties du nom de domaine du plus particulier au plus général.
Attention, il n'y a pas de correspondance entre les points utilisés comme séparateur dans les noms IP et les points utilisés comme séparateur dans les adresses IP.

Exemple : 172.20.128.99 <=> bunny.edu-info.univ-fcomte.fr est la machine bunny du sous-domaine edu-info.univ-fcomte.fr du sous-domaine univ-fcomte.fr du domaine fr.

Les listes de couples (adresse IP, nom IP) qui permettent cette double dénomination peuvent être gérées de deux manières :
 - localement sur chaque machine au moyen de fichiers "hosts" (sous \Windows\System32\drivers\etc sous Windows, sous /etc sous Unix),
 - globalement pour un ensemble de machines en réseau au moyen d'un serveur DNS (Domain Name Server) qui gère la liste associée à un domaine et peut être interrogé via une connexion réseau normalisée. La configuration TCP/IP de la machine cliente inclut alors une référence à un (ou plusieurs) serveur DNS.

Les serveurs DNS sont généralement implantés et configurés sous une forme arborescente calquée sur l'arborescence des domaines TCP/IP qu'ils représentent. Chaque serveur gérera les noms de machine associés au nom de domaine dont il est le nœud.
Il peut y avoir plusieurs serveurs DNS pour un même nom de domaine. On pourra répliquer les bases de données DNS entre ces serveurs et ainsi garantir une redondance permettant une meilleure pérennité ou bien encore permettre un équilibrage de charge pour les domaines très consultés.

Un serveur DNS réalise les tâches suivantes :
 - Gérer sa base de données de noms.
 - Résoudre un nom pour les machines qui le lui demandent quand il connaît le nom (i.e. il appartient au(x) domaine(s) qu'il gère). Répondre que le nom n'existe pas, s'il est certain qu'il n'existe pas (i.e. il n'est pas défini dans le(s) domaine(s) qu'il gère).
 - Propager la demande de résolution vers le ou les serveurs DNS du domaine concerné s'il s'agit d'un nom associé à l'un des domaines pour lesquels il connait un serveur DNS (on parle de redirecteur).
Un serveur DNS connait généralement les serveurs DNS de chacun des sous-domaines du domaine qu'il gère et leur transmet les requètes qu'ils devraient savoir résoudre. Il connait aussi généralement le serveur DNS du domaine père du domaine qu'il gère et lui transmet toutes les requètes qu'il n'a pas transmises aux DNS de ses sous-domaines. Il peut aussi connaître les adresses de serveurs DNS root (ceux qui se trouvent à la racine de l'arborescence DNS).

Il existe 3 paramètres principaux relatifs à la configuration DNS d'une machine cliente sous le protocole TCP/IP :
 - DNS : Un ou plusieurs serveurs DNS désignés pour être joints lorsqu'une résolution de nom DNS doit être réalisée pour obtenir l'adresse IP correspondant au nom IP (ou réciproque).
 - Nom d'hôte : Nom donné à la machine. Généralement identique au nom qui lui est donné sur le DNS dont elle dépend s'il y en a un.
 - Suffixes DNS : Nom du ou des domaines auxquels appartient la machine. Lorsque cette machine spécifie des noms IP sans indiquer explicitement de nom de domaine, les suffixes sont testés les uns après les autres comme domaines implicites.

4.3.3. DHCP

Tous les paramètres nécessaires à la configuration de l'infrastructure TCP/IP d'un parc de machines clientes pourront être renseignés soit directement sur chaque ordinateur, soit sur un serveur DHCP (Dynamic Host Configuration Protocol) qui sera contacté par l'intermédiaire du réseau par chaque machine cliente au moment de son démarrage.

L'intérêt de l'utilisation de DHCP réside dans les points suivants :
 - La configuration des postes clients est centralisée et peut être réalisée clients éteints.
 - L'affectation des paramètres pourra être réalisée dynamiquement ou statiquement.
Dans le cas d'une affectation dynamique, une machine cliente pourra recevoir un jeu de configuration TCP/IP différent d'un démarage à un autre. Cela rendra possible de ne disposer que d'un pool restreint d'adresses IP permettant d'accéder à Internet et d'affecter dynamiquement ces adresses aux seules machines en fonctionnement.
Dans le cas d'une affectation statique, chaque machine cliente est repérée par l'adresse matérielle (adresse MAC, Media Access Control, addresse sensément unique "gravée" sur chaque interface réseau, composée de 6 entiers non signés définis sur 8 bits) de son interface réseau à laquelle est attribuée un jeu de configuration TCP/IP spécifique sur le serveur DHCP.
 - Si on souhaite que l'accueil de postes invités soit possible : Le serveur DHCP est configuré pour attribuer dynamiquement des jeux de configuration TCP/IP sans contrôle de l'adresse MAC. Les postes se connectent physiquement et c'est tout.
 - Si on souhaite que l'accueil de postes invités soit interdit : Le serveur DHCP est configuré pour ne fournir de jeu de configuration TCP/IP qu'à un pool de machines sur la base du fait qu'elles ont une adresse MAC référencée.
 - ...

On constate une convergence entre DNS et DHCP (et WINS, non décrit ici) permettant, via des bases de données spécifiques à chaque service mais synchronisées, d'assurer la cohérence des informations transmises aux postes clients pour leur permettre de gérer la problématique de la configuration réseau et de la détermination des noms des machines (les leurs et ceux des autres machines).

4.3.4. Filtrage IP

Le protocole TCP/IP permet généralement l'implantation de fonctions de filtrage tant du point de vue des paquets sortants que du point de vue des paquets entrants.
Ces fonctions de filtrage pourront généralement être configurées soit en fonction de l'adresse IP du client (voire de son nom IP), soit en fonction du port TCP/IP utilisé par l'ordinateur client.

4.3.5. Commandes clavier historiques liées à TCP/IP

TCP/IP est généralement associé à un certain nombre de commandes clavier permettant de vérifier/modifier sa configuration, de diagnostiquer son bon fonctionnement ainsi que la capacité de l'ordinateur à joindre d'autres machines sur le réseau.

ifconfig, ipconfig

La commande Unix ifconfig permet de visualiser la configuration TCP/IP des différentes interfaces (cartes) réseau présentes dans la machine.
Sa syntaxe est
ifconfig pour obtenir un résumé et
ifconfig -all pour obtenir une description complète.
Cette commande peut aussi être utilisée pour configurer les interfaces réseau.

La commande ifconfig est dépréciée dans les distributions Linux récentes. Elle est remplacée par la commande ip. L'équivalent de ifconfig est ip addr.

Sous Windows, le nom de cette commande est ipconfig.

Ipconfig.gif (8467 octets)

ipconfig

IpconfigAll.gif (12388 octets)

ipconfig -all

ping

La commande ping permet de tester la présence d'une machine sur le réseau.
La syntaxe est
ping nom_IP
ou
ping adresse_IP

Ping01.gif (10253 octets)

ping

Attention : Pour des raisons de sécurité, il est possible qu'une machine en fonctionnement ne réponde pas à la commande ping. Les firewalls bloquent fréquement les ping. Les routeurs bloquent fréquement les ping.
Attention : Les pings réalisés par une machine en classe privée ne traversent pas les routeurs.

nslookup

La commande nslookup permet d'interroger son serveur DNS pour obtenir les adresses IP correspondant à un nom IP (résolution directe), ou les noms IP correspondant à une adresse IP (résolution inverse).
La syntaxe est
nslookup nom_IP
ou
nslookup adresse_IP

Nslookup01.gif (7337 octets)

Nslookup02.gif (7288 octets)

nslookup

traceroute, tracert

La commande traceroute permet d'obtenir la liste des matériels réseau (routeurs) traversés pour joindre une autre machine.
La syntaxe est
traceroute nom_IP
ou
traceroute adresse_IP

Sous Windows, le nom de cette commande est tracert.

Tracert.gif (13236 octets)

tracert

4.3. Les autres protocoles

TCP/IP est devenu le protocole standard. Il en a toutefois existé d'autres.

 - IPX/SPX : Protocole développé par Novell pour la gestion de réseaux locaux de PC sous MS/DOS puis Windows. Abandonné en 1998.

 - NetBEUI : Protocole développé par IBM. Adopté par Microsoft à la fin des années 1980 pour la gestion de réseaux locaux dans les premières versions de Windows en association avec NetBIOS. Existence encore actuellement de caractéristiques dans Windows directement héritées de NetBIOS. Exemple : Nom de machine sous forme alphanumérique sur 15 caractères affichés en majuscule.

 - Appletalk : Protocole historique d'Apple. Apparu en 1984, abandonné progressivement dans les années 90, définitivement juste après l'an 2000.

 - Token ring : Protocole d'origine IBM. Apparu au mileu des années 1980.

 - ATM : Développé au milieu des années 90 comme solution pour la création de réseaux interopérant de la data et de la voix. Support de la qualité de service (QoS). N'a jamais su dépasser les réseaux WAN (Wide Area Network) spécialisés pour aller aux réseaux LAN (Local Area Network).

5. Unix et Linux

5.1. Généralités

Unix, même s'il est maintenant très fréquemment (mais pas systématiquement) accompagné d'un environnement de travail graphique fenêtré avec utilisation de la souris, a été conçu à une époque où ce type d'environnement n'existait pas. Il était alors administré en ligne de commande et par modification directe de fichiers de configuration (généralement au format texte) au moyen d'un éditeur.
Avoir une connaissance de l'administration Unix par l'intermédiaire de commandes clavier et par paramètrage de ses fichiers texte de configuration est important car les utilitaires GUI (Graphic User Interface) que l'on trouve sur ses différentes implantations peuvent différer sensiblement même s'ils permettent tous de configurer les mêmes options.

Unix interprète les commandes saisies au clavier au moyen d'un interpréteur de commande associé à un shell d'exécution. Les shells sont aussi des langages de développement et permettent de créer des fichiers exécutables composés de commandes. Ce type de fichier est utilisé par exemple pour réaliser l'installation de programmes. Il existe différents shells : sh, csh, ksh, bash, ...

5.2. 32 bits ou 64 bits

Linux est généralement disponible en 32 bits et en 64 bits.
En 32 bits, il n'exécute pas les applications 64 bits.
En 64 bits, il n'exécute pas forcément les applications 32 bits. Suivant les distributions, leur exécution peut tout bonnement ne pas être possible, nécessiter l'installation de libraries spécifiques ou bien être possible directement. Ceci implique l'installation des applications en ayant à tenir compte de l'architecture du système d'exploitation en téléchargeant la bonne version, ou en compilant l'application sur son système d'exploitation, ou en installant des librairies spécifiques, ...

5.3. Système de fichiers

Support natif des systèmes de fichiers (tailles ci-dessous dépendantes des architectures matérielles et en particulier des largeurs de mot des processeurs) :
 - ext2 : Permet la sécurisation. Ne permet pas la journalisation. Taille maximale de fichier : 16 Go à 2 To. Taille maximale de volume : 2 To à 32 To.
 - ext3 : Permet la sécurisation. Permet la journalisation. Taille maximale de fichier : 16 Go à 2 To. Taille maximale de volume : 2 To à 32 To.
 - ext4 : Permet la sécurisation. Permet la journalisation. Taille maximale de fichier : 16 To. Taille maximale de volume : 1000000 To.

Système de fichiers du système d'exploitation monté à la racine / qui peut contenir des fichiers et des répertoires, répertoires qui peuvent eux-mêmes contenir des fichiers et des répertoires, ...
Le système de fichiers associé à un volume V2 peut être monté en tant que sous-répertoire d'un répertoire situé sur un volume V1, étendant ainsi ce volume.

5.4. Topographie

 - / : Racine du système d'exploitation.
 - /bin : Commandes issues de Unix.
 - /sbin : Programmes (démons, ...) du système d'exploitation issus d'Unix.
 - /dev : Fichiers de description des pérphériques (devices) matériels et logiciels
 - /lib : Fichiers librairies nécessaires au compilateur C et à l'exécution des programmes compilés (librairies dynamiques partagables).
 - /usr : Commandes du système d'exploitation + d'autres choses
   - /usr/bin : Commandes du système d'exploitation spécifiques à Linux et à l'installation réalisée + liens vers les commandes de /bin
   - /usr/doc : Documentations
   - /usr/include : Fichiers d'entête du compilateur C
   - /usr/lib : Bibliothèques de sous-programmes
   - /usr/local/bin : Commandes locales
   - /usr/sbin : Programmes (démons, ...) du système d'exploitation spécifiques à l'installation et à Linux
   - /usr/src : Fichiers sources du système d'exploitation
   - /usr/tmp : Fichiers temporaires
   - /usr/X11R6 : X-Window
 - /var : Tables de définition des services
   - /var/cron : Service cron (planificateur de tâches)
   - /var/log : Fichiers de journalisation de Linux et de ses services
   - /var/mail : Boîtes aux lettres
   - /var/spool : Fichiers en attente de traitement
     - /var/spool/mail : Répertoires des boites aux lettres
     - /var/spool/lpd : Impressions en attente sur les files d'attente des imprimantes
 - /mnt : Répertoire pour les montages temporaires (CD, DVD, répertoires réseau, ...).
 - /etc : Fichiers de configuration du système d'exploitation et des applications.
   - /etc/rc.d : Fichiers (scripts) de démarrage.
 - /home : Répertoires "home" des utilisateurs (configuration par défaut).
 - /root : Répertoire home de root.

5.5. Configuration, paramétrage

L'essentiel des fichiers de configuration du système d'exploitation se trouve sous /etc.
Le rôle des assistants d'administration est de modifier ces fichiers en limitiant/supprimant les risques de manipulation hasardeuse.

6. Windows Server

6.1. Généralités

L'administration Windows Server est généralement réalisée au moyen des utilitaires graphiques disponibles au sein du système d'exploitation. Ces utilitaires sont trouvés dans les Outils d'administration disponibles dans le Panneau de configuration.
Comme toutes les versions de Windows, Windows Server intègre un utilitaire générique nommé Microsoft Management Console (MMC) qui est l'interface de base dans laquelle tous les outils d'administration standards sont installés. Ceux-ci, et d'autres encore, sont en fait disponibles sous la forme de Composants Logiciels Enfichables (Snap'in) intégrables au sein de la mmc. L'intérêt d'utiliser la mmc est que beaucoup des snap'in qu'elle intègre peuvent être utilisés pour l'administration de la machine locale mais aussi de machines distantes (si l'infrastructure administrative le permet). Un autre intérêt est qu'il est possible de sauvegarder la configuration de la mmc dans des fichiers spécifiques permettant ainsi de créer des outils administration ad hoc.

Un outils d'administration supplémentaire nommé Gestionnaire de serveurs est ajouté aux machines exécutant un système d'exploitation Windows Server. Il est configuré pour être lancé automatiquement à l'ouverture de session de l'administrateur. Il permet de réaliser l'administration des services qui sont généralement mis en exploitation sur ce type de machine, services qui justifient l'installation d'une machine Windows Server et non d'une machine Windows cliente simple qui n'en dispose d'ailleurs généralement pas.

L'administration en ligne de commande est possible. Windows Server propose deux interpréteurs de commandes :
  - le "vieil" interpréteur de commande DOS enrichie de commandes supplémentaires liées aux fonctionnalités supplémentaires introduites dans le système d'exploitation au cours du temps,
  - le nouvel interpréteur Powershell.
Ces deux interpréteurs permettent l'exécution de fichiers de commandes. Les possibilités de programmation sont minimales avec l'interpréteur DOS et permettent le développement de fichiers .bat. Powershell comporte un véritable langage (s'appuyant sur .NET) et permet de créer de véritables scripts administratifs sauvegardés dans des fichiers dont l'extension normalisée est .ps1.

Windows Server peut être installé sans interface utilisateur graphique. L'administration est réalisée en ligne de commande.

6.2. 32 bits ou 64 bits

Windows Server n'est plus distribué qu'en 64 bits depuis la version 2012 (depuis la version 2008 R2 pour être exact qui est une release de Windows 2008). Toutes les versions de Windows, Server ou non, sont munies d'un émulateur permettant d'exécuter les applications compilées en 32 bits. Différentes possibilités sont offertes pour repèrer les applications 32 bits :
 - Elles devraient être installées dans un répertoire spécifique (voir plus loin).
 - Dans le gestionnaire des tâches elles apparaissent avec un "*32" ou un "(32 bits)" au bout de leur nom de processus.
 - ...

6.3. Système de fichiers

Support natif des systèmes de fichiers :
 - FAT16 : Plus utilisé. Ne permet pas la sécurisation.
 - FAT32 : Ancien mais encore utilisé en particulier sur les supports amovibles pour assurer la compatiblité avec d'autres systèmes d'exploitation. Ne permet pas la sécurisation. Taille maximale des fichiers : 4 Go. Taille maximale d'un volume : 2 To.
 - NTFS : Généralement utilisé pour Windows Server (et d'une manière générale pour Windows). Plus performant, fiable et économe en espace disque que FAT32. Support de la sécurité, du chiffrement et de l'audit sur les fichiers et les répertoires. Taille maximale des fichiers : 16 To (évolution prévue vers 16 millions de To). Taille maximale d'un volume : 256 To (évolution prévue vers 16 millions de To).
 - exFAT : Dédié aux supports externes de type mémoire flash ou HD. Système de fichier des cartes SD. Ne permet pas la sécurisation. Taille maximale des fichiers : 16 millions de To. Taille maximale d'un volume : 64 milliards de To.

Organisation des volumes en unités désignées par une lettre majuscule de l'alphabet. Système d'exploitation généralement situé sur l'unité C:. Répertoire racine d'une unité de lettre X : X:\.
Possibilité de mapper le système de fichiers associé à un volume en tant que sous-répertoire d'un répertoire situé sur un autre volume.

Lettres d'unité utilisables mais non proposées directement : A et B. Ces lettres étaient historiquement utilisées pour les disquettes, les disques zip, ...
Lettres d'unité de la fin de l'alphabet généralement utilisées pour les unités "réseau" (répertoire partagé par une autre machine et monté localement).

6.4. Topographie

Répertoire racine de l'unité contenant le système d'exploitation : C:\
 - C:\Windows : Répertoire générique d'installation du système d'exploitation.
 - C:\Windows\System32 : Répertoire d'installation des exécutables du système d'exploitation.
 - C:\Program Files ou C:\Programmes : Répertoire d'installation des applications 64 bits.
 - C:\Program Files (x86) ou C:\Programmes (x86) : Répertoire d'installation des applications non 64 bits.
 - C:\Utilisateurs : Répertoire de stockage des profils des utilisateurs :
   - Répertoire de base par défaut d'un utilisateur : Répertoire racine de son profil.
   - Bureau, Téléchargement, Documents, Musique, Vidéos, ...
   - Fichiers de configuration spécifiques à chaque utilisateur pour ses options sytème et les paramètrages de ses logiciels.
   - ...

6.5. Workgroups et domaines

Il existe deux possibilités d'intégration d'un poste client sous Windows au sein d'un groupe d'ordinateurs sous Windows : l'intégration en worgroup et l'intégration en domaine.
 - Workgroup : Les ordinateurs partagent des ressources sur une base peer to peer. Il n'y a pas d'administration centralisée possible basée sur un système d'authentification centralisée. Chaque ordinateur dispose donc de sa propre liste d'utilisateurs et de groupes d'utilisateurs (Sécurity Account Manager, SAM). Accéder à une ressource proposée par une machine nécessite donc de s'authentifier sur cette machine avec un compte de cette machine.
Intégrer une machine à un workgroup est purement déclaratif.
 - Domaine : La gestion des utilisateurs et des groupes d'utilisateurs est centralisée sur une ou plusieurs machines sous Windows Server élues au rôle de contrôleur de domaine (installation de plusieurs services systèmes spécifiques). Entre autres informations relatives au domaine, chacun des contrôleurs de domaine héberge l'intégralité de la base de données des utilisateurs et des groupes d'utilisateurs au sein d'une instance d'Active Directory (AD) c'est à dire l'annuaire LDAP (Lightweight Directory Access Protocol) développé par Microsoft pour Windows Server et les services qui lui sont associés. Cette base de données est accessible à toute machine du domaine (contrôleurs comme clients simples) qui peut ainsi connaitre et utiliser les utilisateurs et les groupes pour leur attribuer des permissions et/ou des droits.
Précision importante : L'utilisation d'un domaine ne gomme pas totalement la notion de compte local. En effet, sur les machines clientes simples d'un domaine, il reste possible de définir des comptes locaux qui ne seront donc pas distribués sur les autres clients simples du domaine. Sur une telle machine, deux administrateurs sont donc définis : l'administrateur local et l'administrateur du domaine.
Intégrer une machine à un domaine en tant que client simple ou contrôleur de domaine nécessite une authentification de niveau administrateur du domaine.
Outre les informations relatives aux utilisateurs, AD, lorsqu'il est utilisé en tant que service d'annuaire pour un domaine Windows Server, contient la liste des ordinateurs du domaine ainsi que la stratégie de groupes du domaine c'est à dire l'ensemble des éléments de configuration et de paramètrage qui seront automatiquement distribués sur les ordinateurs du domaine en fonction des ordinateurs concernés et/ou des utilisateurs les utilisant.

6.6. Configuration, paramétrage

Stockage local des options de configuration du système d'exploitation au sein du Registre, c'est à dire une base de données sécurisée hébergée dans un certain nombre de fichiers placés pour certains dans les répertoires du système d'exploitation et pour d'autres dans les profils des utilisateurs.
L'utilitaire regedit permet l'accès et la modification de ces informations. Attention ! Une erreur d'utilisation de regedit peut entrainer la perte du système d'exploitation. la perte du système d'exploitation.

6.7. Stratégie de groupe

La stratégie de groupe est un vaste ensemble d'éléments de configuration du système d'exploitation. Ce sont ainsi probablement plusieurs dizaines de milliers de paramètres qui peuvent être configurés concernant à peu près tous les aspects du fonctionnement de la machine.

Certains de ces éléments sont relativement génériques, d'autres sont spécifiquement dédiés à la gestion de la sécurité. Toutes ces options sont stockées dans le registre sur les machines en dehors d'un domaine et dans Active Directory avec synchronisation automatique des postes clients pour les machines faisant partie d'un domaine. Via la stratégie de groupe il est ainsi possible de gérer de façon centralisée le fonctionnement de l'ensemble des machines d'un domaine.
L'accès à la stratégie de groupe locale à une machine (stockée dans son registre) se fait par l'intermédiaire de la MMC en utilisant le snap'in "Editeur d'objets de stratégie de groupe". Si cette machine fait partie d'un domaine, les options configurées au niveau du domaine seront inactives.

6.7.1. Stratégie de sécurité

La stratégie de sécurité est un sous-ensemble de la stratégie de groupe dédié à la gestion des paramètres de configuration des aspects sécuritaires :
 - stratégie de compte
 - droits des utilisateurs
 - ...

7. Gestion de la sécurité

Non sécurisés ou peu sécurisés, les premiers systèmes d'exploitation ont évolué pour intégrer des composants de gestion de la sécurité de plus en plus élaborés.

7.1. Gestion des utilisateurs

7.1.1. Unix

7.1.2. Windows

7.1.3. Recommandations générales

Autant que possible, essayer de gérer les utilisateurs par lots dans des groupes plutôt qu'individuellement.
Autant que possible, éviter les comptes partagés. Quand un compte appartient à tout le monde, il n'appartient à personne et est donc déresponsabilisant.

Politique de gestion des comptes :
 - Imposer un changement de mot de passe au bout d'un certain délai.
 - Imposer l'impossibilité de remettre le même mot de passe lors d'un changement.
 - Imposer des contraintes de complexité sur les mots de passe :
   - longueur minimale,
   - caractères minuscules et majuscules, chiffres, caractères spéciaux, ... et contrainte sur leur ordonnancement,
   - ...
 - Configurer un vérouillage automatique au bout de n tentatives de connexion ratées. Assortir ce verrouillage d'un éventuel déverrouillage automatique au bout d'un délai donné.
 - Configurer une désactivation automatique des comptes à une certaine date.

Politique de sécurité :
 - Ne jamais travailler de façon prolongée sur le compte super-utilisateur.
Sous Unix utiliser la commande su pour passer root temporairement ou la commande sudo pour exécuter une commande ponctuelle en tant que root.
Sous Windows, utiliser le "Exécuter en tant qu'administrateur".
 - Changer le login du super-utilisateur (à faire tôt après l'installation du système d'exploitation pour limiter le risque que ce compte ait été référencé par ailleurs par son nom et pas par son ID).
 - Créer un utilisateur banalisé ayant le même login que le super-utilisateur "normal" : piège à cons.
 - Créer un deuxième super-utilisateur, sauvegarder son nom et son mot de passe sous forme écrite dans un endroit sécurisé et ne jamais l'utiliser autrement qu'en dernier recours.

7.2. Gestion des fichiers et des répertoires

7.2.1. Linux

7.2.2. Windows

7.2.3. Recommandations générales

Privilégier la gestion en groupes à la gestion à l'utilisateur.
Arbitrer entre les deux mode gestion :
 (1) Tout est autorisé sauf ce qui est interdit.
 (2) Tout est interdit sauf ce qui est autorisé.
Dans le doute privilégier le (2) car il est plus facile d'ouvrir un peu plus que de fermer un peu plus.

7.3. Mises à jour du système d'exploitation

7.3.1. Linux

7.3.2. Windows

7.4. Autres aspects de la sécurité

Attaques via ingénierie sociale :

Attaques physiques :