DEV Community

Cover image for SysAdmin
As Manjaka Josvah
As Manjaka Josvah

Posted on • Updated on

SysAdmin

Progression

I. Les serveurs graphiques

1. À quoi sert le serveur graphique ?

Le serveur graphique donne la possibilité d’afficher une interface graphique dans GNU/Linux.

Une interface graphique est un ensemble de fenêtres avec barres, boutons et décorations. L’interface graphique permet l’usage de la souris. En anglais on dit GUI (= graphical user interface).

Dans GNU/Linux, le serveur graphique s’appelle X mais on dit aussi X window (attention, pas de s final, rien à voir avec le système, ou OS M$Windows).

De très nombreux logiciels ont une interface graphique (comme Firefox, LibreOffice…) mais il existe aussi de nombreux logiciels sans interface graphique qui sont «en ligne de commande».

En fait, quand votre GNU/Linux démarre, le serveur graphique ne se met en route que tardivement, au moment où apparaît l’écran de login. Ce dernier vous donne accès au bureau si vous y mettez votre nom d’utilisateur et votre mot de passe.

Pour que le serveur graphique fonctionne, il faut qu’il y ait une carte graphique dans l'UC et qu’elle soit reconnue par le noyau Linux : pour ces matériels, il faut verifier la specification technique de la machine.

2. Sans serveur graphique

Le serveur graphique n’est pas indispensable dans GNU/Linux. Il est très possible de ne pas l’installer car GNU/Linux fonctionne très bien sans bureau, sans fenêtres, sans décorations et sans souris.

À ce moment-là, GNU/Linux démarre normalement (enfin comme sous Debian, avec tout un défilé de lignes blanches sur fond noir, Ubuntu cache tout ce défilé) mais ensuite votre écran reste noir. Juste quelques phrases affichées en blanc vous invitent à mettre votre nom d’utilisateur et votre mot de passe pour commencer à travailler.

Votre écran tout entier est le terminal, le vrai, pas comme le petit terminal (qui est en fait un émulateur, faisant semblant d’en être un vrai) que vous voyez là-bas : Le terminal pour les débutants

En fait, par défaut, il y a 6 terminaux et vous pouvez passer au tty2 avec la combinaison de touches [Ctrl-Alt-F2] et ainsi de suite.

Depuis le terminal, il est possible d’installer le serveur graphique et de le démarrer pour accéder au bureau (grâce à la commande startx).

Depuis le bureau, il est aussi possible de passer derrière le serveur graphique dans n’importe quelle distribution GNU/Linux. Depuis le bureau décoré et avec la combinaison de touches [Ctrl-Alt-F1], on arrive sur le premier terminal tty1. Avec la combinaison de touches Ctrl-Alt-F7 on retourne sur le bureau.

Sans serveur graphique, on ne peut utiliser que des logiciels en ligne de commande mais on peut faire beaucoup de choses :

  • Parcourir les fichiers, les déplacer, les renommer, etc.

  • Faire des répertoires, en déplacer, en supprimer, etc.

  • Rédiger, envoyer, recevoir, lire et classer les emails

  • Surfer sur le web (on ne voit pas d’images, ce peut être reposant)

  • Rédiger des textes avec un éditeur de texte ou faire du traitement de texte (avec Latex)

  • Écouter de la musique

On peut suivre sur Libre-Fan une installation de Debian sur un ordinosaure sans serveur graphique au départ.

Les serveurs, un ordinateur-routeur fonctionnent sans interface graphique car c’est inutile et ce sont des UC sans écran que l’on contrôle à distance, depuis un ordinateur complet.

ChatGPT

Un serveur graphique, dans le contexte de l'informatique, est un logiciel qui gère l'affichage graphique sur un ordinateur. Il agit comme une sorte d'interface entre le matériel graphique de l'ordinateur (carte graphique, écran, etc.) et les programmes qui ont besoin d'afficher des éléments graphiques à l'écran.

Voici une explication détaillée des composants et du fonctionnement d'un serveur graphique :

  1. Affichage matériel : Le serveur graphique interagit avec le matériel graphique de l'ordinateur, tel que la carte graphique, les écrans et les périphériques d'entrée (souris, clavier, etc.). Il est chargé de communiquer avec ces composants pour afficher les graphismes à l'écran et gérer les entrées utilisateur.

  2. Gestion des fenêtres : Le serveur graphique est responsable de la création, de la gestion et de la manipulation des fenêtres sur l'écran. Cela inclut le redimensionnement, le déplacement et la superposition des fenêtres, ainsi que la gestion des événements liés aux fenêtres (clics de souris, frappes de clavier, etc.).

  3. Système de fenêtrage : Le serveur graphique utilise un système de fenêtrage pour organiser les fenêtres sur l'écran. Il existe différents systèmes de fenêtrage, tels que :

  • le système de fenêtrage en cascade

  • le système de fenêtrage en mosaïque

  • le système de fenêtrage en pile.

Ces systèmes déterminent comment les fenêtres sont disposées et comment les utilisateurs interagissent avec elles.

  1. Affichage des graphismes : Le serveur graphique est chargé d'afficher les éléments graphiques à l'écran, tels que les images, les icônes, les polices de caractères, les widgets d'interface utilisateur, etc. Il utilise des bibliothèques graphiques et des pilotes de périphériques pour convertir les données graphiques en signaux que l'écran peut afficher.

  2. Gestion des événements : Le serveur graphique reçoit et traite les événements utilisateur, tels que les clics de souris, les mouvements de la souris, les frappes de clavier, etc. Il est chargé de transmettre ces événements aux programmes appropriés en fonction de la position de la souris et de l'état des fenêtres.

  3. Protocoles de communication : Les serveurs graphiques utilisent souvent des protocoles de communication pour interagir avec les clients graphiques, tels que les applications et les environnements de bureau. Ces protocoles permettent aux clients graphiques de demander des services au serveur graphique, tels que la création de fenêtres, le dessin d'images, etc.

Les serveurs graphiques les plus couramment utilisés dans les systèmes d'exploitation modernes sont X.Org Server et Wayland. X.Org Server est un serveur graphique open source largement utilisé dans les systèmes Unix et Unix-like, tandis que Wayland est une nouvelle architecture de serveur graphique conçue pour remplacer X.Org Server dans certains environnements de bureau.

II. X.org

X.Org est un serveur X libre issu d'un fork de XFree86 en janvier 2004 à la suite d'un désaccord sur le changement de licence de XFree86. Il fonctionne avec la plupart des systèmes d'exploitation de type UNIX (GNU/Linux, dérivés de BSD, Solaris, etc.), mais aussi avec Microsoft Windows via Cygwin. Du fait de sa licence, il connaît une grande popularité au sein de la communauté du logiciel libre où il a remplacé XFree86.

La gouvernance du projet est assurée par la fondation X.Org, laquelle réalise à la fois les développements en conjonction avec la communauté Freedesktop.org tout en veillant à la cohérence de l'ensemble de ses projets.

Schéma des couches de l'interface graphique

X.org est un logiciel libre du type serveur X, la famille des systèmes de fenêtrage la plus connue, pour les systèmes d'exploitation de type UNIX. X.org est l'implémentation officielle du système graphique X Window System.

C'est donc un serveur graphique, c'est lui qui va faire en sorte que l'on dispose d'autre chose que les ttys sur le système, il va fournir une interface graphique. Seul, il est limité; il n'affiche en effet que des fenêtres, il faudra recourir à l'utilisation d'un gestionnaire de fenêtre ou d'un environnement de bureau si on veut un résultat plus agréable à l'oeil.

X.org est un programme basé sur une architecture serveur/client :

  • le serveur X est lancé sur une machine possédant un écran, un clavier et une souris (ou d'autres périphériques)

  • le client X se connecte au serveur afin de lui donner ses requêtes, ce sont des applications graphiques affichées dans une fenêtre du serveur X

  • le protocole X qui permet l'échange de données entre le serveur et le client

Sans serveur graphique, impossible d'avoir un rendu autre que celui de la console.

III. KDump (Kernel dump ou Kernel core dump)

Image description

Kdump est une fonctionnalité présente dans le noyau Linux qui permet la capture de l'état du noyau en cas de panne système (kernel panic) ou de dysfonctionnement grave. Lorsqu'un système subit un kernel panic, il arrête brusquement toutes les opérations en cours, ce qui peut entraîner la perte de données importantes pour le diagnostic de la panne.

Kdump intervient pour résoudre ce problème en créant un noyau de secours minimal qui est chargé en mémoire lorsque le système principal rencontre une panne. Ce noyau de secours est lancé dans un environnement isolé, distinct du système principal, ce qui permet de capturer des informations sur l'état du système au moment de la panne sans risquer d'écraser les données existantes.

Voici comment fonctionne généralement Kdump :

  1. Configuration du système : Pour utiliser Kdump, on doit configurer le système pour qu'il alloue de l'espace mémoire réservé pour le noyau de secours et pour les informations de débogage.

  2. Déclenchement d'une panne système : Lorsqu'une panne système se produit, le noyau principal du système est incapable de récupérer et déclenche un kernel panic. À ce stade, le noyau de secours n'a pas été chargé.

  3. Chargement du noyau de secours : Après le kernel panic, le noyau de secours est chargé en mémoire. Ce noyau est minimaliste, ne contenant que les éléments nécessaires pour capturer l'état du système et les informations de débogage.

  4. Capture de l'état du système : Une fois que le noyau de secours est chargé, il capture l'état de la mémoire, les registres du processeur, les informations sur les pilotes et d'autres données pertinentes qui peuvent aider à diagnostiquer la panne.

  5. Enregistrement des informations : Les informations capturées sont enregistrées sur un périphérique de stockage, tel qu'un disque dur ou un réseau. Ces données peuvent ensuite être utilisées pour analyser la panne et identifier sa cause.

Kdump est un outil précieux pour le débogage des problèmes système sur les serveurs Linux et les environnements critiques où la disponibilité et la fiabilité sont essentielles. Il permet aux administrateurs système et aux développeurs de diagnostiquer et de résoudre les problèmes système de manière efficace en fournissant des informations détaillées sur l'état du système au moment de la panne.

IV. SELinux (Security-Enhanced Linux)

ChatGPT

SELinux, ou Security-Enhanced Linux, est une technologie de sécurité qui vise à renforcer la sécurité des systèmes Linux en permettant un contrôle plus fin des politiques de sécurité au niveau du noyau. Contrairement à la sécurité traditionnelle basée sur les permissions des utilisateurs et des groupes, SELinux utilise des politiques de sécurité basées sur le contrôle d'accès obligatoire (MAC), ce qui signifie que les décisions de sécurité sont prises en fonction de règles définies par l'administrateur système, indépendamment des autorisations attribuées aux utilisateurs et aux processus.

En pratique, cela signifie que SELinux peut limiter les actions que les processus peuvent entreprendre en fonction de leur contexte de sécurité. Par exemple, même si un utilisateur dispose des autorisations pour modifier un fichier, SELinux peut empêcher un processus spécifique d'accéder à ce fichier en fonction de ses politiques de sécurité.

Bien que puissant, SELinux peut être complexe à configurer et à administrer en raison de sa nature granulaire. Cependant, il fournit un niveau de sécurité supplémentaire pour les systèmes Linux, ce qui en fait un outil précieux dans les environnements où la sécurité est une préoccupation majeure.

Pense à SELinux comme à un garde de sécurité très minutieux pour ton ordinateur. Il ne se contente pas de vérifier qui tu es (ton nom d'utilisateur), mais il examine aussi ce que tu veux faire et où tu veux aller sur ton ordinateur.

Imagine que tu veuilles ouvrir un fichier. SELinux ne se contente pas de vérifier si tu as la permission de l'ouvrir en tant qu'utilisateur, il regarde aussi d'autres choses comme le type de fichier, le programme que tu utilises pour l'ouvrir, et même d'autres détails. Cela lui permet de dire "Oui" ou "Non" à l'accès au fichier en fonction de règles très précises, même si ton utilisateur aurait normalement la permission de l'ouvrir.

Donc, SELinux renforce la sécurité de ton ordinateur en ajoutant une couche supplémentaire de contrôle très détaillé sur ce que les programmes peuvent faire, pour s'assurer qu'ils ne font que ce qu'ils sont censés faire, même si quelque chose d'autre essaie de les manipuler.

Wikipedia

Security-Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d'accès obligatoire aux éléments d'un système issu de Linux.

Son architecture dissocie l'application de la politique d'accès et sa définition. Il permet notamment de classer les applications d'un système en différents groupes, avec des niveaux d'accès plus fins. Il permet aussi d'attribuer un niveau de confidentialité pour l'accès à des objets systèmes, comme des descripteurs de fichiers, selon un modèle de sécurité multiniveau (MLS pour Multi level Security). SELinux utilise le modèle Bell LaPadula complété par le mécanisme Type enforcement de contrôle de l'intégrité, développé par SCC (SeCure Computing). Il s'agit d'un logiciel libre, certaines parties étant sous licences GNU GPL et BSD3.

Utilisation

En pratique, la base de l'innovation est de définir des attributs étendus dans le système de fichiers. En plus de la notion de « droits de lecture, écriture, exécution » pour un usager donné, SELinux définit pour chaque fichier ou processus :

  • Un usager virtuel (ou collection de rôles) ;
  • Un rôle ;
  • Un contexte de sécurité.

Les commandes « système » sont étendues pour pouvoir manipuler ces objets et définir des politiques (règles d'accès), et des statuts (niveau de confidentialité). Par exemple la commande « ls -Z » fait apparaître lesdits attributs étendus, soit :

ls -Z /etc/passwd
Enter fullscreen mode Exit fullscreen mode

donne le résultat suivant:

-rw-r--r--  root root  system_u:object_r:etc_t  /etc/passwd
Enter fullscreen mode Exit fullscreen mode

Une distribution Linux peut être livrée avec des politiques prédéfinies pour la totalité du système (mode strict), ou une partie des services/applications (mode ciblé ou targeted). Le réglage d'un certain nombre de variables booléennes prédéfinies permet de personnaliser le comportement des applications correspondantes.

Installation

Debian

~$ sudo apt install selinux-basics selinux-policy-default selinux-utils

Enter fullscreen mode Exit fullscreen mode

CentOS

~$ sudo yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Enter fullscreen mode Exit fullscreen mode

Modes

  • Enforcing (Appliquer) : C'est le mode par défaut dans lequel SELinux applique strictement les politiques de sécurité définies. Dans ce mode, SELinux bloque les actions qui ne sont pas autorisées par les politiques, ce qui renforce la sécurité du système.
  • Permissive (Accorder une avertissement) : Dans ce mode, SELinux ne bloque pas les actions qui violent les politiques de sécurité, mais il enregistre ces violations dans les journaux système. Cela permet aux administrateurs de voir quelles actions seraient bloquées en mode Enforcing sans réellement les empêcher, ce qui peut être utile pour déboguer les problèmes de sécurité potentiels sans interrompre le fonctionnement normal du système.
  • Disabled (Désactivé) : Dans ce mode, SELinux est complètement désactivé et ne s'applique pas du tout. Toutes les politiques de sécurité SELinux sont ignorées, ce qui signifie que le contrôle d'accès obligatoire (MAC) n'est pas utilisé. Bien que ce mode puisse être pratique pour résoudre des problèmes de compatibilité ou de performance, il est moins sécurisé que les modes Enforcing et Permissive, car il ne fournit aucune protection basée sur SELinux.

SELinux s'integre tres bien avec Rocky OS plutot qu'avec Debian. Debian utilise plutot une autre technologie de securite Linux Security Module appelee AppArmor, mais on peut utiliser SELinux sous Debian.

V. AppArmor

Image description

ChatGPT

AppArmor est un système de contrôle d'accès facultatif (DAC) qui vise à renforcer la sécurité des systèmes Linux en permettant aux administrateurs de définir des politiques de sécurité spécifiques pour les applications. Contrairement à SELinux, qui utilise un contrôle d'accès obligatoire (MAC), AppArmor utilise un modèle basé sur des profils pour spécifier quelles actions sont autorisées pour chaque application sur le système.

Voici comment fonctionne AppArmor et comment il est utilisé :

  1. Profils de sécurité : AppArmor utilise des profils de sécurité pour définir les règles qui spécifient quelles ressources une application est autorisée à accéder et quelles actions elle est autorisée à effectuer. Ces profils sont généralement définis dans des fichiers de configuration texte qui décrivent les autorisations pour chaque application.

  2. Restrictions basées sur le chemin d'accès : Les profils AppArmor peuvent inclure des règles qui limitent l'accès aux fichiers et aux répertoires en fonction de leur emplacement sur le système de fichiers. Par exemple, un profil AppArmor pour un serveur web peut spécifier que l'application est autorisée à lire des fichiers dans son répertoire de contenu web, mais pas à accéder aux fichiers système sensibles.

  3. Contrôle des capacités : AppArmor peut également limiter les capacités des applications, telles que la capacité à se connecter à un réseau, à ouvrir des sockets réseau, à modifier des fichiers système, etc. Cela permet de réduire les risques en limitant les actions potentiellement dangereuses que les applications peuvent effectuer.

  4. Mode de fonctionnement : AppArmor peut fonctionner en mode Enforcing, où il applique strictement les politiques de sécurité définies, ou en mode Audit, où il enregistre les violations des politiques de sécurité sans les bloquer effectivement. Cela permet aux administrateurs de surveiller les activités des applications et de corriger les politiques si nécessaire.

  5. Utilité : AppArmor est utile pour renforcer la sécurité des systèmes Linux en limitant les actions que les applications peuvent entreprendre, ce qui réduit les risques d'exploitation et de compromission du système. Il est souvent utilisé dans des environnements où la simplicité de configuration est préférée, comme les serveurs web, les serveurs de bases de données et les conteneurs Docker.

En résumé, AppArmor est un outil de sécurité flexible qui permet aux administrateurs de définir des politiques de sécurité spécifiques pour les applications sur les systèmes Linux, en limitant leurs accès aux ressources du système et en réduisant les risques de sécurité.

Wikipedia

AppArmor (Application Armor) est un logiciel de sécurité pour Linux édité sous Licence publique générale GNU.

AppArmor permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint ses accès au système d'exploitation. Il complète le traditionnel modèle d'Unix du contrôle d'accès discrétionnaire (DAC, Discretionary access control) en permettant d'utiliser le contrôle d'accès obligatoire (MAC, Mandatory access control).

En plus des profils de spécifications manuels, AppArmor comprend un mode d'apprentissage (learning mode), où toutes les transgressions au profil sont enregistrées, mais pas empêchées. Ce fichier de suivi peut alors être incorporé au profil, se fondant alors sur le comportement typique du programme.

AppArmor est mis en place au sein du noyau Linux au moyen de l'interface de sécurité du noyau, LSM (Linux Security Modules).

AppArmor a été créé en partie comme une alternative à SELinux, critiqué pour être difficile à paramétrer et à maintenir par les administrateurs. À la différence de SELinux, qui s'appuie sur l'application d'indicateurs aux fichiers, AppArmor travaille avec les chemins. Les partisans d'AppArmor disent que c'est moins complexe et plus facile pour l'utilisateur moyen que d'apprendre SELinux. Ils prétendent aussi qu'AppArmor demande moins de modifications pour fonctionner avec les systèmes existants ; par exemple, SELinux demande d'utiliser un système de fichiers qui prend en charge les attributs étendus pour les fichiers, et ne peut donc pas gérer le contrôle d'accès pour les fichiers montés avec NFS.

Initialement développé par Crispin Cowan de la société Immunix, AppArmor fut repris par Novell lorsque cette dernière racheta Immunix. Novell abandonna cependant le projet et licencia les développeurs d'AppArmor. Canonical en a repris le développement et AppArmor est intégré au noyau Linux depuis la version 2.6.364.

AppArmor est installé par défaut sur Debian, openSUSE, Ubuntu et Parrot OS. Il est disponible sur Annvix, Arch Linux, Gentoo, Mandriva, NixOS, Pardus Linux et PLD.

AppArmor VS SELinux

Bien qu'ils partagent un objectif commun, SELinux et AppArmor diffèrent dans leurs approches de mise en œuvre et dans la manière dont ils définissent et appliquent les politiques de sécurité.

SELinux

SELinux

  • SELinux utilise un contrôle d'accès obligatoire (MAC) basé sur des règles
  • Avec SELinux, les données qui sont inaccessibles peuvent devenir accessibles lorsque les applications mettent à jour le fichier en le remplaçant par une nouvelle version.

AppArmor

AppArmor

  • AppArmor utilise un modèle de contrôle d'accès facultatif (DAC) basé sur des profils.
  • Avec AppArmor, un fichier qui est inaccessible peut devenir accessible quand un lien est créé, alors que SELinux interdira l'accès à travers le nouveau lien créé

VI. Partition disque

En informatique, une partition, région ou un disque est une section d'un support de stockage (disque dur, SSD, carte-mémoire...). Le partitionnement est l'opération qui consiste à diviser ce support en partitions dans lesquelles le système d'exploitation peut gérer les informations de manière séparée, généralement en y créant un système de fichiers, une manière d’organiser l’espace disponible.

les systèmes Unix ou Gnu/Linux, les désignent par un identifiant sous la forme sdXN, avec X une lettre représentant le support et N le numéro de la partition sur le support (par exemple sdb3 pour la troisième partition du disque b).

Utilité

1. Résilience

Le partitionnement propose également d’autres avantages que la rapidité d’accès aux données. Imaginons un disque non-partitionné, celui-ci est considéré par le système d’exploitation comme une seule et unique unité.

Cette unité contiendrait votre installation Linux (ou n’importe quel autre système d’exploitation), vos logiciels, vos fichiers, les logs de vos applications, vos fichiers binaires.

Dans le cadre d’un serveur, imaginons que suite à une attaque virale, un crash Linux, ou toute autre raison vous deviez réinstaller le système d’exploitation.

Dans le cadre d’une réinstallation de système d’exploitation, le plus souvent le formatage de disque sur lequel se trouve l’installation actuelle est inévitable. Seulement, ce formatage a pour effet de supprimer toutes les données présentes sur la partition, et ce de manière irréversible si vous n’avez réalisé aucune sauvegarde. La partitionnement permet de remédier à ce problème, il suffit de réserver une partition à son système d’exploitation, ainsi, si une réinstallation est nécessaire, celle-ci n’effacera que les données sur cette partition, et conservera les données des autres partitions. Et ce même si elles se trouvent sur un même disque physique.

En plus de cela, le partitionnement propose beaucoup d’avantages en termes de sécurité.

2. Sécurité et bonnes pratiques sur un système Linux

La sécurité est un aspect capital de la gestion des systèmes d’informations, beaucoup de serveurs utilisent l’OS Linux et le partitionnement peut aider à les sécuriser.

Les lignes qui suivent sont tirées des mesures de sécurités recommandées par l’ANSSI pour les systèmes Linux.

Il est usuel de réserver des partitions dédiées aux services pouvant générer beaucoup de volumétrie afin d’éviter de saturer les partitions système. L’espace à réserver pour chaque partition dépend des cas d’usage : un serveur de fichiers aura besoin d’une volumétrie importante pour /srv ou /var/ftp/, tandis qu’un serveur de journaux sera plutôt concerné par la volumétrie utilisable pour /var/log.>

Le partitionnement doit ainsi permettre de protéger et d’isoler les différents composants du système de fichiers. Il est par défaut souvent insatisfaisant.

Il faut noter que suivant les systèmes et distributions, certaines des options de montage ne seront pas applicables transitoirement; par exemple des utilitaires, installeurs ou produits estimeront que les fichiers écrits dans /tmp ou /var peuvent être exécutables. Dans ces cas exceptionnels il est nécessaire d’adapter le partitionnement. Un de ceux les plus fréquemment rencontrés est celui des distributions dérivées de Debian dont le /var/lib/dpkg nécessite des droits d’exécution.

Une alternative est d’implémenter une procédure de maintenance durant laquelle les mises à jour sont installées, à l’image de ce que l’on trouve sur d’autres systèmes d’exploitation.

Image description

À noter :

  • La partition /boot contient notamment le noyau de démarrage et des fichiers dans ce dossier sont souvent parcouru par différents programmes malveillants afin de construire plus facilement des « exploits » de code noyau.
  • Lorsque c’est possible, la partition /boot ne doit pas être montée automatiquement. Dans tous les cas, l’accès au dossier /boot doit être uniquement autorisé pour l’utilisateur root.

3. Autres utilités

Le partitionnement de disque peut également être utile dans le cadre de la mise en place d’un chiffrement au repos de votre disque dur.

VII. LVM (Logical Volume Management)

Comment fonctionne le partitionnement sur Linux avec LVM ?

Mais LVM dans tout ça, à quoi ça sert ?

LVM est un gestionnaire de volumes logiques pour le noyau Linux. Le but de LVM est de fournir une couche d'abstraction entre l'espace de stockage physique et le système : il permet de créer des « partitions virtuelles » faciles à gérer (changements de taille, création et suppression...).

Les éléments qui composent LVM sont (4):

  • Les volumes physiques (PV) : ce sont les espaces de stockage traditionnels (disques, partitions, éventuellement des fichiers montés en loopback), sur lesquels LVM crée ses volumes logiques. Il comprend un en-tête spécial et se divise en blocs physiques (extents).
  • Les groupes de volumes (VG) : Ce sont des groupes de volumes physiques (PV) réunis par LVM en un seul « disque virtuel ». Un groupe de volumes contient des volumes logiques, ceux-ci sont répartis par LVM de manière transparente sur les différents volumes physiques : un volume logique peut même être dispersé à travers les disques disponibles.
  • Les volumes logiques (LV) : ce sont des « partitions virtuelles » (logiques parce qu'elles sont produites par un logiciel sans forcément correspondre à une portion d'un disque matériel). Les volumes logiques sont constitués d'étendues de blocs physiques réunis en un seul espace de stockage et rendus lisibles par le système. On peut les utiliser comme des partitions ordinaires.
  • Étendue physique (PE) : un petit bloc de disques (en général de 4 Mo) qui peut être affecté à un volume logique. Les étendues physiques se comportent comme les secteurs ou les cylindres des disques durs physiques.
  • Étendue Logique (LE) : Les Logical Volumes sont divisés en Logical Extents, qui sont de taille égale aux Physical Extents. Les LE sont l'unité de base pour la création et l'allocation de l'espace dans un Logical Volume.

Prise en main de l'outil LVM

1. Scenario

Il est fort probable qu'on a déja rencontré le message "manque d'espace disque", et alors on doit commencer à passer en revue les téléchargements, supprimer tous les gros fichiers, supprimer les jeux ou autres. On doit penser à l'expansion de disque !

Alors, doit t-on ajouter un autre disque dur, y monter une partition personnelle et commencer à y déplacer des fichiers, ou doit t-on acheter un disque plus grand, copier toutes les partitions, puis étendre les partitions ?

L'un des meilleurs choix que à faire est d'installer la distribution Linux sur une partition LVM.

Lorsque vous vous renseignez pour la première fois des informations sur LVM, cela ressemble un peu à une matrice RAID (Redundant Array of Independent Disks ou Matrice redondante de disques indépendants en français) où on a plusieurs disques et où les données sont réparties sur ces disques d'une manière ou d'une autre. Cependant, LVM ne fournit aucune redondance, mais cela étend bien les partitions sur plusieurs disques physiques, comme le RAID. Et ce que l'on peut faire, c'est continuer à ajouter des disques pour continuer à étendre cette partition à la volée.

2. Quelques commandes basiques pour commencer à s’amuser avec LVM:

Note : Exécutez toutes les commandes en tant que root (en utilisant sudo) ou cela ne fonctionnera pas.
Enter fullscreen mode Exit fullscreen mode

Exemple :

sudo lvs
# Permet de voir quels groupes de volumes sont sur le système
Enter fullscreen mode Exit fullscreen mode

La commande la plus basique de LVM est l’affichage des différents volumes et groupes, pour cela nous disposons de :

  • pvs : Afficher les détails succincts des volumes physiques
  • vgs : Afficher les détails succincts des groupes de volumes
  • lvs : Afficher les détails succincts des volumes logiques
sudo fdisk -l
# Permet d'afficher les noms de partition (ex : /dev/sdXX)

sudo lvdisplay
# Permet de trouver où se trouve le chemin d'accès au volume physique
Enter fullscreen mode Exit fullscreen mode

3. Pour étendre les partitions à un nouveau lecteur

  1. Créer une partition LVM vide sur le nouveau disque avec fdisk ou gparted.

  2. Créer un volume physique sur le nouveau disque avec pvcreate /dev/sdXX- On peut vérifier le nom de la nouvelle partition avec sudo pvs qui devrait avoir une entrée vide sous VG.

  3. Étendre le groupe de volume au nouveau disque avec vgextend my-virtual-group /dev/sdXX.

  4. Étendre le volume logique et redimensionnez la partition à l'intérieur avec lvextend -l +100%FREE -r /dev/my-virtual-group/root

NOTE : On peut changer la valeur de +100%FREE
en fonction de l'espace que l'on veut que
le nouveau volume logique prenne sur le nouveau disque.
Enter fullscreen mode Exit fullscreen mode

Exemple 1 :

sudo lvextend -l +50%FREE r /dev/my-virtual-group/root
Enter fullscreen mode Exit fullscreen mode

Exemple 2 : éxtension d'une taille spécifique (+10G l'étend de 10 gigaoctets)

sudo lvextend -L +10G -r /dev/my-virtual-group/root
Enter fullscreen mode Exit fullscreen mode

On peut également utiliser +500M pour 500 Mégaoctets et ainsi de suite.

NOTE : Si on spécifie des tailles, la commande
passe de -l minuscule à -L majuscule après lvextend.
Enter fullscreen mode Exit fullscreen mode

VIII. aptitude et apt

Sur le système Debian, les opérations de gestion des paquets basées sur les dépôts peuvent être réalisées à l’aide de nombreux outils de gestion de paquets basés sur APT (Advanced Package Tool) et disponibles dans le système Debian. Nous décrirons ici les outils de base de gestion des paquets : apt, apt-get/apt-cache et aptitude.

Pour les opérations de gestion des paquets qui concernent l’installation des paquets ou les mises à jour des métadonnées des paquets, vous aurez besoin des privilèges de l’administrateur.

1. apt comparé à apt-get / apt-cache comparé à aptitude

a. aptitude (non recommandée)

⛔ Avertissements :

  • Non recommandée pour une mise à niveau du système entre versions sur le système Debian stable après la sortie d'une nouvelle version.

    • L'utilisation de apt full-upgrade ou apt-get dist-upgrade est recommandée pour cela.
  • Elle suggère parfois la suppression massive de paquets lors de la mise à niveau du système sur des systèmes Debian en testing ou unsable.

    • Cela est principalement causé par un biais de version parmi des paquets dépendants de, ou recommandés par, un méta-paquet tel que gnome-core
    • Solution :
      • 1. Sélecionner Annuler les actions en attente dans le menu de commande d'aptitude.
      • 2. Quitter aptitude.
      • 3. Utiliser la commande apt full-upgrade.
  • Elle nécessite plus de ressources matérielles. Elle consomme plus de mémoire et fonctionne moins rapidement.

✅ Avantages :

  • Interface utilisateur interactive en plein écran en mode texte.

  • Interface utilisateur en ligne de commandes.

  • Mieux adapté pour la gestion interactive journalière des paquets (ex : vérification des paquets installés, recherce de paquets disponibles).

  • Recherche avancée basée sur des expressions rationnelles pour la recherche sur toutes les métadonnées des paquets.

  • Gestion des versions multiples des paquets sans utiliser /etc/apt/preferences. Assez intuitif.

b. apt-get et apt-cache

Ces commandes sont les outils les plus basiques de gestion des paquets basés sur APT (Advanced Package Tool).

  • Elles n'offrent qu'une interface utilisateur en ligne de commande

  • Elles peuvent gérer des versions multiples des paquets en utilisant /etc/apt/preferences mais est assez lourd.

  • apt-get est mieux adapté pour les mises à jour majeures du système entre les versions, etc.

  • apt-get offre un système de résolution des dépendances entre paquets robuste.

  • apt-get nécessite moins de ressources matérielles. Il consomme moins de mémoire et fonctionne plus rapidement.

  • apt-cache offre une recherche basée sur des expressions rationnelles standard sur les noms et les descriptions des paquets.

c. apt (fortement recommandée)

Cette commande est une interface de haut niveau en ligne de commande pour la gestion de paquets. C'est basiquement une enveloppe d'apt-get, d'apt-cache et de commandes similaires, originellement destinée comme interface d'utilisateur final, et active quelques options mieux adaptées par défaut à un usage interactif.

  • Elle fournit une barre de progression plaisante lors de l'installation de paquets avec apt install.

  • Elle supprimera par défaut les paquets .deb mis en cache après une utilisation réussie de paquets téléchargés.

Image description

2. Opérations de base de gestion des paquets en ligne de commandes

Image description

apt/apt-get et aptitude peuvent mélangées sans inconvénients majeurs.

« aptitude why expression-rationnelle » peut afficher plus d’informations par « aptitude -v why expression_rationnelle ». On peut obtenir des informations similaires par «apt rdepends paquet» ou «apt-cache rdepends paquet».

Lorsque la commande aptitude est lancée en mode ligne de commande, et rencontre des problèmes tels que des conflits de paquets, on peut passer en mode plein écran en pressant ensuite la touche e à l'invite de commande.

Image description

Les options importantes de la commande aptitude

Option de la commande Description
-s Simuler le résultat de la commande.
-d Télécharger seulement les paquets sans les installer ni les mettre à jour.
-D Afficher une courte explication avant les installations ou les suppressions automatiques.

NOTE : Consultez aptitude(8) et le « manuel de l’utilisateur d’aptitude » à « /usr/share/doc/aptitude/README » pour en apprendre davantage.

3. Utilisation interactive d’aptitude

$ sudo aptitude -u
# Permet de mettre à jour la copie locale des informations
# de l'archive et afficher la liste des paquets en plein
# écran avec un menu.

$ sudo -H aptitude ...
# Permet d'utiliser la configuration de l'administrateur.
Enter fullscreen mode Exit fullscreen mode

Fichier de configuration d'aptitude : ~/.aptitude/config

Image description

4. Raccourcis clavier d’aptitude

Image description

L’indication du nom de fichier sur la ligne de commandes et à l’invite du menu après avoir pressé « l » et « // » prend l’expression rationnelle d’aptitude telle que décrite ci-dessous.

Une expression rationnelle d’aptitude peut correspondre explicitement à un nom de paquet en utilisant une chaîne de caractères commençant par « ~n » et suivie du nom de paquet.

5. Vues des paquets sous aptitude

idA   libsmbclient    -2220kB 3.0.25a-1  3.0.25a-2
Enter fullscreen mode Exit fullscreen mode
a. 1ère lettre : indicateur de l'état actuel.
  • i : Installé. Le paquet est actuellement installé sur le système.

  • p : Purgeable. Le paquet est installé mais marqué comme étant complètement supprimable.

  • v : Virtuel. Le paquet est virtuel, ce qui signifie qu'il représente un groupe de paquets mais n'est pas en soi installable.

  • c : Configuré. Le paquet est configuré, mais des fichiers de configuration supplémentaires peuvent être présents.

  • u : Non installé. Le paquet n'est pas installé sur le système.

  • B : Brisé. Le paquet est partiellement installé ou configuré, mais ne peut pas fonctionner correctement.

b. 2ème lettre : indicateur d'action prévue.
  • i : Installer. Le paquet est marqué pour installation.

  • d : Supprimer. Le paquet est marqué pour suppression.

  • p : Purger. Le paquet est marqué pour une suppression complète.

  • h : Tenir. Le paquet est marqué pour être maintenu dans son état actuel sans être mis à jour.

  • v : Virtuel. Le paquet est un paquet virtuel.

  • C : Nettoyer. Le paquet est marqué pour être nettoyé de tout résidu inutile sur le système.

  • U : Mettre à niveau. Le paquet est marqué pour être mis à niveau vers une version plus récente.

c. 3ème lettre : indicateur automatique.
  • A : Automatique. Le paquet a été installé automatiquement en tant que dépendance d'un autre paquet.
d. Nom du paquet.
e. Modification de l’utilisation du disque attribuée à l’« action prévue »
f. Version actuelle du paquet
g. Version candidate du paquet

Image description

6. Options de la méthode de recherche avec aptitude

a. Ligne de commande du shell.

  • aptitude search 'expression_rationnelle_aptitude : permet d'afficher l'état d'installation, le nom du paquet et une courte description des paquets correspondants.

  • aptitude show 'nom_paquet : permet d'afficher la description détaillée du paquet.

b. Mode interactif plein écran.

  • l : limiter la vue des paquets à ceux qui correspondent.

  • / : rechercher un paquet correspondant.

  • ** : rechercher en arrière un paquet correspondant.

  • n : rechercher le suivant.

  • N : rechercher le suivant (en arrière).

Image description

7. Les formules d’expressions rationnelles d’aptitude (Extended Rational Expression ou ERE)

Image description

Image description

8. Résolution des dépendances par aptitude

La sélection d'un paquet dans aptitude récupère non seulement les paquets définis dans son champ "Depends:" mais aussi ceux définis dans le champ "Recommends:" si la configuration a été faite dans ce sens dans le menu "F10 -> Options -> Préférences -> Gestion des dépendances".

Ces paquets installés automatiquement seront supprimés automatiquement s'ils ne sont plus nécessaires sous aptitude.

Le drapeau contrôlant le comportement auto install de la commande aptitude peut aussi être manipulé en utilisant la commande apt-mark du paquet apt.

9. Journaux d’activité des paquets

Fichier Contenu
/var/log/dpkg.log Enregistrement des actions au niveau de dpkg pour l'activité de tous les paquets.
/var/log/apt/term.log Journal de l'activité générique d'APT.
/var/log/aptitude Journal des actions de la commande aptitude.

IX. SSH (Secure SHell)

Image description

  • Souvent utilisé dans le domaine de la cybersécurité.

  • Méthode sécurisée d'accès à distance.

1. Qu'est-ce que le SSH ?

Le protocole Secure SHell est un standard de sécurité utilisé pour échanger des données de manière sécurisée sur un réseau, notamment sur Internet. Il garantit la confidentialité des données en les cryptant avant de les transmettre.

  • Remplaçant de Telnet non chiffré.

  • Utilise des techniques cryptographiques pour s'assurer que toutes les communications vers/depuis le serveur distant se produisent de manière chiffrée.

Il fournit un mécanisme pour :

  • Authentifier un utilisateur distant.

  • Transférer les entrées du client vers l'hôte.

  • Relayer la sortie vers le client.

On peut exécuter des commandes shell de la même manière que l'on le faisait si on était en train d'utiliser physiquement l'ordinateur distant.

Image description

2. Fonctionnement de SSH.

Si on utilise Linux ou Mac, l'utilisation de SSH est très simple. Si on utilise un système d'exploitation Windows, on doit utiliser des outils Windows de connexion SSH. Le client SSH le plus populaire est PuTTY

La commande SSH se compose de 3 parties distinctes :

$ ssh {user}@{host}
Enter fullscreen mode Exit fullscreen mode

Cette commande indique au système que l'on souhaite ouvrir une connexion Secure SHell cryptée.

  • {user} : compte auquel on souhaite accéder. (ex : root)

  • {host} : ordinateur auquel on souhaite accéder. Ceci peut être une adresse IP ou un nom de domaine.

Quand on appuie sur Entrée, on sera invité à entrer le mot de passe du compte demandé. Si c'est correct, alors on sera accueilli avec une fenêtre de terminal à distance.

3. À quoi sert SSH ?

SSH est un protocole réseau sécurisé permettant d'établir une connexion cryptée entre un client et un serveur. Il offre une multitude d'utilisations pratiques dans le domaine informatique :

  • Gestion à distance des serveurs, de l'infrastructure et des ordinateurs collaborateurs : Les administrateurs systèmes peuvent se connecter de manière sécurisée à des serveurs distants pour effectuer des tâches de configuration, de maintenance et de surveillance à distance.

  • Transfert de fichiers en toute sécurité : SSH propose des protocoles comme SFTP (SSH File Transfert Protocol) et SCP (Secure Copy Protocol) pour le transfert sécurisé de fichiers entre des ordinateurs distants, garantissant ainsi la confidentialité et l'intégrité des données.

  • Accès à des services dans le cloud sans exposer les ports d'une machine locale à l'Internet : Les utilisateurs peuvent se connecter de manière sécurisée à des services dans le cloud via SSH sans avoir à exposer les ports de leur machine locale à Internet, renforçant ainsi la sécurité de leur infrastructure.

  • Connexion à distance aux services d'un réseau privé : SSH permet aux utilisateurs de se connecter de manière sécurisée aux services d'un réseau privé depuis n'importe où dans le monde, assurant ainsi la confidentialité et la sécurité des communications.

  • Contournement des restrictions d'un pare-feu : En utilisant le tunneling SSH, les utilisateurs peuvent contourner les restrictions d'un pare-feu en acheminant leur trafic à travers une connexion SSH sécurisée, offrant ainsi un accès sécurisée à des services normalement bloqués par le pare-feu.

4. Comprendre différentes techniques de cryptage.

Avantage de SSH par rapport aux autres : Utilisation du cryptage pour assurer le transfert sécurisé d'informations entre l'hôte et le client.

Host = serveur distant auquel on tente d'accéder.
Client = l'ordinateur que l'on utilise pour accéder à l'hôte.

Il existe 3 technologies de cryptage différentes utilisées par SSH :

  • Cryptage symétrique.

  • Cryptage asymétrique.

  • Hashing.

4.1. Cryptage symétrique (clé partagée ou cryptage de secret partagé).

C'est une forme de cryptage où une clé secrète est utilisée pour le _cryptage et le décryptage d'un message par le client et l'hôte_.

Toute personne possédant la clé peut décrypter le message transféré.

Image description

Ce cryptage n'a habituellement qu'une seule touche qui est utilisée, ou parfois une paire de touchesune clé peut facilement être calculée à l'aide de l'autre clé.

Les clés symétriques sont utilisées pour chiffrer toute la communication lors d'une session SSH. Le client et le serveur dérivent la clé secrète en utilisant une méthode convenue, et la clé résultante n'est jamais divulguée à un tiers.

Le processus de création d'une clé symétrique s'effectue par un algorithme d'échange de clés.

Ce qui rend cet algorithme particulièrement sécurisé, c'est le fait que la clé n'est jamais transmise entre le client et l'hôte. Au lieu de cela, les deux ordinateurs partagent des données publiques, puis les manipulent pour calculer de manière indépendante la clé secrète. Même si une autre machine capture les données publiquement partagées, il ne sera pas capable de calculer la clé car l'algorithme d'échange de clés n'est pas connu.

La clé secrète est spécifique à chaque session SSH et est générée avant l'authentification du client.

Une fois la clé générée, tous les paquets qui se déplacent entre les deux machines doivent être cryptés par la clé privée. Cela inclut le mot de passe tapé dans la console par l'utilisateur, de sorte que les informations d'identification sont toujours protégées des sniffers de paquets réseau.

Il existe une variété de chiffrages symétriques :

  • AES (Advanced Encryption Standard)

  • CAST128

  • Blowfish

  • ...

Avant d'établir une connexion sécurisée, le client et un hôte décident quel chiffrage utiliser, en publiant une liste des chiffrages compatibles, par ordre de préférence.

Le chiffrage préféré des cybers clients pris en charge sur la liste de l'hôte est utilisé comme chiffrage bidirectionnel.

Exemple : Si 2 machines Ubuntu 14.04 LTS communiquent entre elles sur SSH, elles utiliseront aes128-ctr comme leur chiffrement par défaut.

4.2. Cryptage asymétrique.

Contrairement au cryptage symétrique, le cryptage asymétrique utilise 2 clés distinctes pour le cryptage et le décryptage. Ces 2 clés sont appelées clé publique et clé privée. Ensemble, ces 2 clés forment une paire de clés public-privé.

Image description

La clé publique est distribuée et partagée ouvertement avec toutes les parties. Bien qu'elle soit étroitement liée à la clé privée en termes de fonctionnalité, la clé privée ne peut pas être calculée mathématiquement à partir de la clé publique. La relation entre les 2 clés est très complexe.

Un message crypté par une clé publique d'une machine ne peut être déchiffré que par la clé privée d'une même machine. Cette relation à sens unique signifie que la clé publique ne peut pas décrypter ses propres messages, ni décrypter quelque chose crypté par la clé privée.

La clé privée doit rester privée, càd que la connexion doit être sécurisée, aucun tiers ne doit jamais la connaître. La force de l'ensemble de la connexion réside dans le fait que la clé privée n'est jamais révélée, car elle est le seul composant capable de décrypter des messages cryptés à l'aide de sa propre clé publique.

Par conséquent, toute partie ayant la capacité de décrypter des messages signés publiquement doit posséder la clé privée correspondante.

Le cryptage asymétrique n'est pas utilisé pour chiffrer toute la session SSH. Au lieu de cela, il n'est utilisé que pendant l'algorithme d'échange de clés de cryptage symétrique.

Avant de lancer une connexion sécurisée, les 2 parties génèrent des paires de clés public-privé temporaires et partagent leurs clés privées respectives pour produire la clé secrète partagée.

Une fois qu'une communication symétrique sécurisée a été établie, le serveur utilise la clé publique des clients pour générer et contester et transmettre au client une authentification. Si le client peut décrypter avec succès le message, cela signifie qu'il dispose de la clé privée requise pour la connexion. La session SSH commence alors.

4.3. Hashing (hachage).

Le hachage à sens unique est une autre forme de cryptographie utilisée dans les connexions Secure SHell. Les fonctions one-way-hash diffèrent des deux formes de cryptage ci-dessus en ce sens qu’elles ne sont jamais destinées à être déchiffrées. Elles génèrent une valeur unique d’une longueur fixe pour chaque entrée, dont aucune tendance claire ne peut être exploitée. Cela rend pratiquement impossible l’inversion.

Image description

Il est facile de générer un hachage cryptographique à partir d’une entrée donnée, mais impossible de générer l’entrée du hash. Cela signifie que si un client détient l’entrée correcte, il peut générer le hachage cryptographique et comparer sa valeur pour vérifier s’il possède la bonne entrée.

SSH utilise des hachages pour vérifier l’authenticité des messages. Ceci est fait en utilisant HMAC, ou Hash-based Message Authentication Codes. Cela garantit que la commande reçue n’est modifiée d’aucune manière que ce soit.

Même si l’algorithme de cryptage symétrique est sélectionné, un algorithme d’authentification de message approprié est également sélectionné. Cela fonctionne de manière similaire à la façon dont le chiffrage est sélectionné, comme expliqué dans la section sur le cryptage symétrique.

Chaque message transmis doit contenir un MAC, qui est calculé en utilisant la clé symétrique, le numéro de séquence de paquets et le contenu du message. Il est envoyé en dehors des données cryptées symétriquement comme la partie finale du paquet de communication.

5. Comment fonctionne SSH avec ces techniques de cryptage ?

Il utilise un modèle client-serveur pour permettre :

  • l'authentification de deux sytèmes distants.
  • le cryptage des données qui les traversent.

SSH fonctionne par défaut sur le port TCP 22 (modifiable à volonté) :

  • L'hôte écoute le port et guette les connexions entrantes.
  • L'hôte organise la connexion sécurisée en authentifiant le client et en ouvrant le bon environnement si la vérification est réussie.

Image description

Le client doit commencer la connexion SSH :

  • Lancer le handshake TCP avec le serveur.
  • Assurer une connexion symétrique sécurisée.
  • Vérifier si l'identité affichée par le serveur correspond aux enregistrements précédents (habituellement enregistrés dans un fichier de stockage de clés RSA).
  • Vérifier si l'identité affichée par le serveur présente les informations d'identification requises pour authentifier la connexion.

Il existe 2 étapes pour établir une connexion :

  • Les systèmes doivent s'entendre sur les normes de cryptage pour protéger les communications futures.
  • L'utilisateur doit s'authentifier.

5.1. Négociation de chiffrement de session.

Lorsqu’un client tente de se connecter au serveur via TCP, le serveur présente les protocoles de cryptage et les versions respectives qu’il prend en charge. Si le client possède une paire de protocoles et de versions correspondant, un accord est atteint et la connexion commence avec le protocole accepté. Le serveur utilise également une clé publique asymétrique que le client peut utiliser pour vérifier l’authenticité de l’hôte.

Une fois que cela est établi, les deux parties utilisent ce qu’on appelle un algorithme d’échange de clés Diffie-Hellman pour créer une clé symétrique. Cet algorithme permet au client et au serveur d’arriver à une clé de cryptage partagée qui sera désormais utilisée pour chiffrer toute la session de communication.

Principe de l'algorithme d'échange de clés de Diffie-Hellman :

Image description

Image description

Image description

Image description

Voici comment l'algorithme fonctionne à un niveau très basique :

    1. Le client et le serveur se mettent d'accord sur un très grand nombre premier p, qui n'a bien sûr aucun facteur en commun. Cette valeur de nombre premier est également appelée valeur de départ.
    1. Ensuite, les 2 parties conviennent d'un mécanisme de cryptage commun pour générer un autre ensemble de valeurs en manipulant les valeurs de base d'une manière algorithmique spécifique. Ces mécanismes, également appelés générateurs de cryptage, effectuent de grandes opérations sur les valeurs de base. Exemple : AES (Advanced Encryption Standard).
    1. Les 2 parties génèrent indépendamment un autre nombre premier (a et b). Celui-ci est utilisé comme clé privée secrète pour l'intéraction.
    1. Cette clé privée nouvellement générée (a et b), avec le numéro partagé (p) et l'algorithme de cryptage (ex. AES), sert à calculer une clé publique (A et B) qui est distribuée à l'autre ordinateur.
    1. Les parties utilisent ensuite leur propre clé privée (a/b), la clé publique partagée (A/B) de l'autre machine et le numéro premier d'origine (p) pour créer une clé secrète partagée finale. Cette clé est calculée indépendamment par les 2 ordinateurs, mais créera la même clé de cryptage des 2 côtés.
    1. Maintenant que les 2 côtés ont une clé partagée, ils peuvent chiffrer symétriquement toute la session SSH. La même clé peut être utilisée pour chiffrer et décrypter des messages.

Maintenant que la session sécurisée symétriquement cryptée a été établie, l’utilisateur doit être authentifié.

5.2. Authentification de l'utilisateur. (Phase finale)

La plupart des utilisateurs SSH utilisent un mot de passe. L'utilisateur est invité à entrer le nom d'utilisateur, suivi du mot de passe. Ces informations d'identification passent en toute sécurité par le tunnel crypté symétriquement, de sorte qu'il n'a aucune chance d'être capturé par un tiers.

Bien que les mots de passe soient cryptés, il n'est pas recommandé d'utiliser des mots de passe pour les connexions sécurisées. C'est parce que de nombreux robots peuvent simplement forcer des mots de passe faciles ou mots de passe par défaut, et accéder au compte. Au lieu de cela, l'alternative recommandée est SSH Key Pairs.

Le SSH Key Pairs est un ensemble de clés asymétriques utilisées pour authentifier l'utilisateur sans avoir à entrer de mot de passe.

6. Risque de sécurité associés au SSH et meilleures pratiques.

  • Attaques par force brute visant les identifiants SSH.

  • Vulnérabilités logicielles.

  • Erreurs de configuration.

Pour atténuer ces risques, il est recommandé de suivre certaines meilleures pratiques de sécurité :

  • Utilisation de clés SSH robustes plutôt que de mot de passe.
  • Mise à jour régulière des logiciels SSH pour corriger les failles de sécurité connues.
  • Configuration appropriée des paramètres de sécurité pour limiter l'accès non autorisé.
  • Surveillance continue des journaux d'activié SSH -› aide à la détection de tentatives d'intrusion.

7. Qu'est-ce que SSH ? - FAQ

7.1. Pourquoi SSH est-il utilisé ?

Secure SHell (SSH en abrégé) est un protocole de communication réseau qui permet à 2 ordinateurs de communiquer entre eux. SSH permet également le transfert de données entre 2 ordinateurs.

7.2. Que signifie SSH ?

SSH est l'abréviation du protocole réseau Secure SHell, ou Secure Socket Shell.

7.3. Qu'est-ce que SSH par rapport à SSL ?

  • SSH crée un réseau sécurisé entre ordinateurs qui permet le transfert de données.

  • SSL (Secure Sockets Layer) crypte les données transférées, réduisant ainsi les tentatives de malveillance et d'hameçonnage.

Image description

X. Le pare-feu UFW (Uncomplicated FireWall).

UFW est une interface de gestion de pare-feu simplifiée qui masque la complexité des technologies de filtrage de paquets de niveau inférieur telles que iptables et nftables.

1. Installation.

$ sudo apt-get install ufw
Enter fullscreen mode Exit fullscreen mode

2. Utilisation d'IPv6 avec UFW (facultatif).

Il faut s'assurer qu'UFW est configuré pour prendre en charge IPv6 afin de gérer les règles de pare-feu pour IPv6 en plus d'IPv4.

$ sudo nano /etc/default/ufw
# Il faut s'assurer que la valeur d'IPv6 est yes.
# IPV6=yes
Enter fullscreen mode Exit fullscreen mode

3. Mise en place des politiques par défaut.

4. Autoriser les connexions SSH.

5. Activation d'UFW.

6. Autoriser d'autres connexions.

7. Refuser les connexions.

8. Suppression de règles.

9. Vérification de l'état et des règles d'UFW.

10. Désactivation ou réinitialisation d'UFW (facultatif).

XI. Le pare-feu firewalld pour Rocky

XII. Comment modifier le hostname dans le terminal

XIII. Comment creer un nouveau utilisateur

XIV. Comment assigner une groupe a un utilisateur

XV. Comment limiter le nombre d'essai d'authentification en utilisant sudo

XVI. Comment afficher un message en cas d'erreur d'authentification

XVII. Comment archiver chaque action utilisant sudo dans /var/log/sudo

XVIII. C'est quoi mode TTY (security)

XIX. Comment recuperer la signature du VM dans le fichier .vdi au format sha1

XX. D'ou vient l'extension vdi

XXI. C'est quoi le format sha1

XXII. Comment dupliquer une VM

XXIII. Comment utiliser les "save state"

Top comments (0)