33 0 1MB
ADMINISTRATION SYSTÈME LINUX
PRÉSENTATION DU FORMATEUR
Josué ROMBA Ingénieur systéme Expert Cybersécurité Intégrateur de Solution Opensource
SOMMAIRE I.
Les fondamentaux 1- Introduction à Linux
2- Le shell 3- Le traitement du texte
4- Arborescence de fichiers
5- Gestion des utilisateurs
SOMMAIRE II. Administration avancée
1- Démarrage et processus
2- Installation de logiciels 3- Script Shell
4- Disques et Stockage LVM
5- Configuration du réseau
SOMMAIRE III.
Hardening 1- Gestion sécurisée
2- Secure Shell 3- Routage et Pare-feu
LES FONDAMENTAUX
Introduction à Linux Une des tâches du système d’exploitation est d’offrir aux utilisateurs une interface simple et conviviale avec le matériel.
Un système d’exploitation (souvent appelé OS pour Operating System) est un ensemble de programmes qui dirige l’utilisation des capacités d’un ordinateur (matériel) par des logiciels applicatifs. Fonction d’un OS
Il s’occupe au minimum de : - La gestion des processus (programmes) - La gestion de la mémoire - Le système de fichiers - La gestion des entrées/sorties
Introduction à Linux
LINUX, kesako?
➔ Linux est un système d’exploitation né en 1991 ➔ C’est un système libre ➔ Il fait partie de la famille des Unix
Le shell (interpréteur de commandes)
➔ C’est un programme qui reçoit les commandes données par un utilisateur et les envoie au système en charge de les exécuter
➔ C’est aussi un langage de programmation ( voir scripting shell) ➔ Plusieurs shell ○ bourne again shell ( bash) ○ Korn shell (ksh) ○ C shell (csh)
Les commandes de base
pwd
man
cd touch
ls
mkdir
rm cat
Les commandes Syntaxe d’une commande commande [option(s)] [arguments(s)] Commandes de base
● ● ● ● ● ● ● ●
man : afficher le manuel d’utilisation d’une commande pwd : savoir où nous sommes dans l’arborescence cd : se déplacer dans l’arborescence ls: lister le contenu touch : créer un fichier rm: supprimer un fichier mkdir: créer un dossier cat: afficher le contenu d’un fichier
Opérateurs conditionnels
Exécutions conditionnelles de base
&& et || sont des séparateurs de commandes conditionnels.
➔ true && echo la commande précédente a réussi
➔ false || echo la commande précédente a échoué
PRATIQUE
Lab- Les commandes de base ● Afficher votre répertoire actuel ● Créer un répertoire testdir dans votre répertoire personnel ● Passer dans le répertoire testdir ● Créer 2 dossiers nommés testchild1 et testchild2 à l'intérieur du répertoire testdir ● Créer un fichier myfile dans le répertoire testchild1 créé précédemment ● Créer un fichier myfile2 dans le répertoire testchild2,tout en restant dans le répertoire testchild1 ● Supprimer le répertoire testchild2 et son contenu
Le traitement de texte ● Les éditeurs de texte: ○ nano ○ vi/vim ○ emacs ● Les flux de redirections Un processus et ses 3 descripteurs de fichiers STDIN (0), STDOUT (1) et STERR (2) STDIN < ------ PROCESSUS ---- > | ---- >> STDOUT | ---- | | 2> STDERR
PRATIQUE
Lab- Les commandes de base ● Ajouter le contenu suivant au fichier myfile créé lors du lab précédent ( testdir/myfile) “Nous suivons la super formation sur l’administration GNU/Linux.” ● Fermer le fichier puis sortez du fichier
● Sans entrer dans le fichier myfile, ajouter ceci à la fin “La distribution utilisée est CentOS” ● Afficher le contenu du fichier testdir/otherfile. Les messages d’erreur doivent être enregistrés dans un fichier error.log
Lab- redirection
La commande suivante donne des erreurs et une sortie standard : find /etc/ -name "*.crt"
-
Isoler la sortie erreur Isoler la sortie standard Diviser les sorties
L’Arborescence
L’Arborescence
● ● ● ● ● ● ● ● ● ● ●
/ : Répertoire racine /bin: Exécutables binaires du système cp, ls, mount, rm… /boot: Fichiers de démarrage de Linux. /dev: répertoire des périphériques /etc: Fichiers de configuration du système, des services… /home: Répertoire personnel des utilisateurs. /lib: Bibliothèques système partagées. /media: Point de montage des clés USB, CD-ROM… /mnt: Point de montage temporaire de partitions et périphériques. /proc: Informations sur les processus et le noyau Linux. /root: Répertoire personnel du super utilisateur
Gestion des utilisateurs et permissions
Sous Linux,
● Tout est fichier ● Chaque fichier appartient à un utilisateur ● Les autres utilisateurs ont accès (ou pas) , selon les droits appliqués au fichier
Gestion des utilisateurs et permissions
❖ Chaque utilisateur ● a un identifiant unique appelé UID;
● appartient à un groupe au moins.
❖ Chaque groupe a son identifiant GID
Gestion des utilisateurs et permissions
Il existe 3 types d’utilisateurs
● le compte root: c’est le super utilisateur, l’Administrateur du système. Son UID est 0;
● les utilisateurs système: Utilisés par le système pour la gestion des droits d’accès des applications ; ● les utilisateurs ordinaires: autres comptes permettant de se connecter au système.
Gestion des utilisateurs et permissions Les droits sur les fichiers sont visibles grâce à la commande ls -l -rwxrw-r-x 1 dinho footx 528 nov. 2 01:46 demo01.sh 1 23 4 5 Champ
Description
1
Permissions du propriétaire (user), ici rwx (read,write, execute)
2
Permissions du groupe propriétaire (group), ici rw- (read, write)
3
Permissions des autres utilisateurs (others), ici r-x
4
Propriétaire du fichier
5
Groupe propriétaire du fichier
Gestion des utilisateurs et permissions
useradd
userdel
usermod
chgrp
chown
chmod
Droits étendus
Les droits étendus sont des variantes sur l’exécution :
● SUID sur un exécutable, valeur octale : 4000, valeur symbolique : s ● SGID sur un fichier ou un dossier, Valeur octale : 2000, valeur symbolique : s ● Sticky bit, Valeur octale : 1000, valeur symbolique : t
Les ACLs Access control lists (ACLs) offrent la possibilité de positionner des droits d'accès supplémentaires. Le propriétaire d'un fichier peut grâce aux ACLs accorder des privilèges à un ou plusieurs utilisateurs et/ou groupes qui se substitueront aux droits d'accès de base.
PRATIQUE
Lab- Utilisateurs et permissions ● Créez un compte utilisateur nommé serena, son répertoire personnel et une description (ou commentaire) qui lit Serena Williams. Faites tout cela en une seule commande. ● Créez un compte utilisateur nommé venus, son répertoire personnel et une description (ou commentaire) qui lit Venus Williams. Le shell de cet utilisateur doit être le bash. Faites tout cela en une seule commande. ● Créer un fichier rolandgarros appartenant à serena. serena doit être le seul utilisateur à consulter, modifier ou supprimer ce fichier ● Supprimer l’utilisateur serena ● Faites en sorte que venus soit le nouveau propriétaire du fichier rolandgarros. Les utilisateurs du même groupe que venus doivent lire ce fichier désormais.
Lab- Droit étendu
● Créer un dossier appartenant au groupe “omega”. ● Le dossier est partagé par deux utilisateurs “alfa” et “beta” appartenant au groupe secondaire “omega”. ● Ce dossier partagé est leur dossier d’accueil et personnel. ● Ces utilisateurs peuvent lire le contenu du dossier et ajouter ou modifier des fichiers. Fixer le “sticky bit” et le “SGID” sur ce dossier en démontrant leur utilité. ● En options : ○ Retirer à ces utilisateurs les droits d’accès à une console graphique. ○ Désactiver le compte de “beta” (plusieurs solutions)
Lab- ACL Nous souhaitons sauvegarder des repertoires web distants avec rsbackup, un utilitaire qui utilise rsync pour réaliser des sauvegardes incrémentales. Pour pouvoir l'utiliser il faut sur le serveur distant un utilisateur accessible par ssh ayant des droits de lecture sur tous les éléments que l'on veut sauvegarder. Les ACLs permettront de donner à un utilisateur rbackup le droit de lecture seule sur des répertoires entiers sans avoir à jongler avec les groupes, SGID et autres, car les droits unix ont souvent le défaut de conduire à des permissions trop larges ou trop étroites. Pour rappel, sous Debian les sites web sont par défaut dans un répertoire /var/www/html
ADMINISTRATION AVANCEE
Processus de démarrage Ordre
Processus
Description
1
BIOS
Contenu dans la mémoire morte (ROM) de la carte mère permettant d'effectuer sa mise sous tension
2
MBR
Contient le chargeur d'amorçage( bootloader)
3
GRUB
GRUB charge et exécute le noyau sélectionné
4
Noyau
Le noyau charge et exécute le programme /sbin/init
5
Init
Il consulte le fichier /etc/inittab pour décider quel niveau d'exécution démarrer
6
Runlevel
Ce sont les programmes du niveau d'exécution sur lequel votre système fonctionne qui sont chargés à partir du répertoire représentant le niveau d'exécution du système.
Gestion des processus Chaque processus dispose :
• d’un PID : Process IDentifiant, identifiant unique de processus ; • d’un PPID : Parent Process IDentifiant, identifiant unique de processus parent
Par filiations successives, le processus init est le père de tous les processus. • Un processus est toujours créé par un processus père ; • Un processus père peut avoir plusieurs processus fils
Gestion des processus
Gestion des processus
ps
kill
fg
nohup
bg
nice
PRATIQUE
Lab- Gestion des processus
Ouvrez la commande man ps, puis suspendez le processus. Ouvrez la commande man top, puis suspendez le processus. Ouvrez la commande man kill, puis suspendez le processus. Ouvrez la commande man ls, puis suspendez le processus. Affichez la liste des PIDs des processus suspendus à l'aide de la commande jobs. À l'aide d'une substitution, tuez tous les processus suspendus en une seule commande. Si cela ne fonctionne pas, utilisez le signal SIGKILL au lieu du signal par défaut (SIGTERM).
Installation de logiciels
Sur un système Linux, il est possible d’installer un logiciel de deux façons : • en utilisant un gestionnaire de paquets ; • en compilant les fichiers sources.
Installation de logiciels
Les gestionnaires de paquets les plus connus sont: • apt pour les Debian-based ;
• yum pour les Red Hat-based.
PRATIQUE
Lab install
● Installez le paquet apache2 ● Ensuite installez le paquet nginx
● Assurez vous que les services nginx et httpd sont actifs. Vous pouvez changer le port si besoin ● Configurer un reverse proxy avec nginx en frontend et apache2 en backend
Lab install reverse proxy avec nginx en frontend et apache2 en backend
ServerName xxxxxx ServerAlias xxxxxx ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Lab install reverse proxy avec nginx en frontend et apache2 en backend server { listen 80; root /var/www/html/; index index.html index.htm; server_name example; location \ { proxy_pass http://127.0.0.1:7080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; }
}
Script shell Principe: réunir dans un même fichier toutes les commandes nécessaires pour réaliser une action ● Le script commence par le shebang (#! ) suivi de l’interpréteur choisi. Pour bash, ce sera #!/bin/bash. Pour le shell classique, on aura #!/bin/sh ● Le nom du script devra respecter quelques règles : ○ pas de majuscule, ○ pas de nom de commandes existantes ○ extension en .sh pour indiquer qu’il s’agit d’un script shell
Script shell Concepts à maîtriser:
● ● ● ● ● ●
Variables Fonctions tests Conditions boucles debug
Script shell Concepts à maîtriser:
Variables ● Déclarer une variable nomdelavariable=valeur (sans espace) ● Les variables d’environnement ( voir la commande env) ● Les variables de paramètres. ./variables.sh param1 param2 param3 $1 est le 1er paramètre $2 le second paramètre $# le nombre de paramètres
Script shell Les fonctions
function ma_fonction { echo hello world }
Script shell Les tests
Voir “man test”
Script shell Les structures conditionnelles et tests
if condition;then instruction(s) else instruction(s) fi
[expression] Ou test expression
case word in pattern1 | pattern3 ) Statement(s) to be executed if pattern1 or pattern matches ;; pattern2) Statement(s) to be executed if pattern2 matches ;; *) Default condition to be executed ;; esac
Script shell Les boucles
for VARIABLE in file1 file2 file3 do command1 on $VARIABLE command2 commandN done
while [ condition ] do command1 command2 command3 done
PRATIQUE
Lab- script shell
● Ecrire un script shell qui affiche à l’écran “Hello World” ● Ecrire un script qui permet d’installer apache et permet d’afficher une page web “Hello apache, welcome here”
● Écrire un script qui demande deux nombres et affiche la somme et le produit
Lab2- script shell
● Écrivez un script qui vérifie l’existence d’au moins un paramètre dans la commande. ● Écrivez un script qui vérifie que deux paramètres sont compris dans un intervalle de 0 à 100. ● Écrivez un script qui demande O/o/Oui/oui et N/n/Non/non dans toutes ses formes et qui rend la valeur. ● Écrivez un script qui ajoute un utilisateur existant dans un groupe.secondaire ● Écrivez un script qui utilise les options de la commande test (ou [ ]) pour décrire le fichier qui lui est passé en argument.
Gestion des disques
Les systèmes de fichiers
Sur chaque partition, les fichiers sont organisés selon ce qu'on appelle un système de fichiers. C'est en quelque sorte une façon d'organiser les fichiers. Système de fichiers Windows
FAT16, FAT32, NTFS
Système de fichiers Linux
EXT2, EXT3, EXT4
Gestion des disques
Commandes de gestion de disque Linux couramment utilisés
du
df
fdisk
mkfs
fsck
Le réseau sous Linux
Les hommes utilisent des adresses postales pour s’envoyer des lettres, des adresses email pour s’envoyer des e-mails. Dans un réseau TCP/IP, les machines d’un réseau communiquent entre elles grâce à une adresse appelée adresse IP
Le réseau sous Linux
Deux versions d’adresses IP sont utilisées à l'heure actuelle :
●
IPv4 : comprend quatre chiffres, chacun compris entre 0 et 255, séparés par des points. Exemple : 5.62.42.77
●
IPv6: se compose de huit groupes de quatre chiffres hexadécimaux. Exemple:2002:0de6:0001:0042:0100:8c2e:0370:7234
Le réseau sous Linux
Il existe 2 méthodes d’attribution des adresses IP à des machines dans un réseau:
● L’adresse IP statique : se fait en générale manuellement via une commande ou l’édition de fichiers ● L’adresse IP dynamique: il existe un serveur DHCP qui attribue les adresses de façon automatique aux machines du réseau
Le réseau sous Linux
Il existe 2 méthodes d’attribution des adresses IP à des machines dans un réseau:
● L’adresse IP statique : se fait en générale manuellement via une commande ou l’édition de fichiers ● L’adresse IP dynamique: il existe un serveur DHCP qui attribue les adresses de façon automatique aux machines du réseau
Le réseau sous Linux
Adressage statique sous CentOS 7 Méthode 1: Outil en ligne de commande
1. Identifier les cartes réseaux présentes sur la machine, exécuter la commande suivante: nmcli d 2. Lancer l’assistant, de configuration des cartes réseaux: nmtui 3. Redémarrer le service réseau, Une fois la configuration réseau terminée: systemctl restart network
Le réseau sous Linux
Méthode 2: Fichier de configuration
Il faut créer le fichier ifcfg-name_of_interface dans le dossier /etc/sysconfig/network-scripts Exemple: interface eth0, fichier ifcfg-eth0 # vim /etc/sysconfig/network-scripts/ifcfg-eth0
Le réseau sous Linux
DEVICE="eth0"
BOOTPROTO=static ONBOOT="yes" IPADDR=172.16.1.115 NETMASK=255.255.255.0
Il faut redémarrer le service network après la configuration
* L’instruction BOOTPRO mis à dhcp permet de basculer la carte réseau en configuration dynamique DHCP
INTEGRATION DE SERVICES
Nginx - Labs
Lien: shorturl.at/egmH4
Nginx - Labs
eunice.mxdjo.xyz kouame.mxdjo.xyz brou.mxdjo.xyz
yao.mxdjo.xyz
INTEGRATION DE SERVICES
Docker
Introduction - Docker
●
Pourquoi Docker? L'organisation des applications
Introduction - Docker
●
Pourquoi Docker? L'organisation des applications
Introduction - Docker
● ● ●
Pourquoi Docker? L'organisation des applications La portabilité La sécurité
Introduction - Docker
Installation de Docker
Reference: https://docs.docker.com/engine/
Introduction - Docker
Terminologie docker
●
Container: enveloppe une application dans “une boîte” avec tout ce dont il a besoin pour
s'exécuter ●
Image: Un package avec toutes les dépendances et informations nécessaires pour créer un conteneur
●
Registry: Endroit ou sont stockés les images
Introduction - Docker Architecture Docker
Commandes de base Docker ●
docker run xxxx
●
docker ps
●
docker stop nom_du_containeur
●
docker rm nom_container
●
docker images
●
docker pull nom_image
●
docker rmi nom_image
●
docker run -d nom_container
●
docker attach id_du_container
●
docker run -p 80:5000 xxxx
●
docker run -v /chemin/client:/chemin/container/
Commandes de base Docker labs
●
Déterminer la version de Docker server installée
●
Exécutez un container avec l'image redis
●
Exécutez un container nginx en background
●
Télécharger l'image nginx:1.14-alpine sans exécuter un container avec
●
Exécutez un container avec l'image redis, en background et donner lui le nom my-redis
●
Exécuter un container avec l'image nginx:1.20.1 et exposer le sur le port 80 du server
●
Supprimer tous les containers
Créer une image Docker
Créer à partir d’un container existant
●
Exécuter le container
●
Mener les actions voulues
●
Faire un docker commit pour sauvegarder nos actions (création de l’image)
●
Changer le tag de l’image avec docker tag
Créer une image Docker - labs
●
Télécharger l’image nginx
●
Créer un container nginx nommé nginx_test.
●
Créer un index.html et le copier sur le container en étant sur le CLI (chemin vers le index.html)
●
Créer une image docker à partir de ce container
Créer une image Docker - labs
●
Télécharger l’image nginx docker image pull nginx
●
Créer un container nginx nommé nginx_test.
●
Créer un index.html et le copier sur le container en étant sur le CLI (chemin vers le index.html)
●
Créer une image docker à partir de ce container
Créer une image Docker - labs ●
Télécharger l’image nginx
docker image pull nginx ●
Créer un container nginx nommé nginx_test. Exposer le container vers le port 8080 du host
docker run -d --name nginx_test nginx ●
modifier le index.html de ce container en étant sur le CLI (chemin vers le index.html)
●
Créer une image docker à partir de ce container
Créer une image Docker - labs ●
Télécharger l’image nginx docker image pull nginx
●
Créer un container nginx nommé nginx_test. Exposer le container vers le port 8080 du host docker run -d --name nginx_test -p 80:8080 nginx
●
modifier le index.html de ce container en étant sur le CLI (chemin vers le index.html) docker cp index.html nginx_test:/usr/share/nginx/index.html
●
Créer une image docker à partir de ce container
Créer une image Docker - labs ●
Télécharger l’image nginx docker image pull nginx
●
Créer un container nginx nommé nginx_test. Exposer le container vers le port 8080 du host docker run -d --name nginx_test -p 80:8080 nginx
●
modifier le index.html de ce container en étant sur le CLI (chemin vers le index.html) docker cp index.html nginx_test:/usr/share/nginx/index.html
●
Créer une image docker à partir de ce container docker commit nginx_test docker tag id_du_commit user/nouveau_nom
Créer une image Docker - labs ●
Télécharger l’image nginx docker image pull nginx
●
Créer un container nginx nommé nginx_test. Exposer le container vers le port 8080 du host docker run -d --name nginx_test -p 80:8080 nginx
●
modifier le index.html de ce container en étant sur le CLI (chemin vers le index.html) docker cp index.html nginx_test:/usr/share/nginx/index.html
●
Créer une image docker à partir de ce container docker commit nginx_test docker tag id_du_commit user/nouveau_nom
●
partager docker login docker push user/nouveau_nom
Créer notre image Docker
●
La construction d’une image se fait avec le Dockerfile
●
Ensuite on fait le build (docker build )
●
Après on partage ○
Connexion au docker hub
○
push vers le docker hub
Créer notre image Docker
●
La construction d’une image se fait avec le Dockerfile
●
Ensuite on fait le build (docker build )
●
Après on partage ○
Connexion au docker hub
○
push vers le docker hub
Créer notre image Docker Instructions du DOCKERFILE ●
FROM php:7.2-apache
●
WORKDIR
●
COPY
●
ENV
●
RUN
●
EXPOSE
●
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
Créer une image Docker - labs
●
Créer une image d’une application php avec un index.php
“
●
Partager l’image sur le Hub
●
Créer un container avec cette image
Ansible
Gestion de configuration Ansible C’est quoi, Ansible?
Ansible est un outil de gestion de configuration. Expliqué simplement, on dira qu’il aide à effectuer les tâches (ex: éditer un fichier de configuration, redémarrer un service, installer un paquet), cela sur plusieurs serveurs en même temps.
Gestion de configuration Ansible
Pré-requis ●
python sur la machine de contrôle et sur les machines à contrôler
●
Une connexion SSH entre le client et le serveur ansible
Installation https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
Gestion de configuration Ansible
Fonctionnement On désire faire tourner le service nginx sur un serveur ubuntu. Il faut donc ●
● ●
Installer le paquet nginx Générer un fichier de configuration nginx Démarrer le service nginx
Toutes ces actions seront définis dans un fichier YAML appelé playbook
Gestion de configuration Ansible
Fonctionnement Ansible va: 1. 2. 3. 4. 5.
générer un script Python qui installe le paquet nginx copier le script sur le serveur distant Exécuter le script sur le serveur Attendre que l'exécution soit complète Passer à la prochaine tâche dans le playbook
Gestion de configuration Ansible Les playbooks Les actions à effectuer sont définis dans un fichier YAML appelé playbook. Au début de chaque playbook, on définit les hôtes ou groupes d’hôtes auxquelles ils s’appliquent
Gestion de configuration Ansible Les playbooks Après avoir défini les hosts, on définit les tâches (tasks)
Gestion de configuration Ansible Les actions pré et post-playbook
Avant d’écrire le playbook, il faut: ● ●
générer une clé ssh et la copier sur les hôtes à configurer par Ansible définir les hôtes dans un fichier appelé inventory
Après écriture du playbook, il faut le lancer avec la commande ansible-playbook
HARDENING
Gestion sécurisée
●
Désactiver le shell ou l'accès élevé pour les utilisateurs standard/intégrés
●
Vérifiez qu'aucun compte non root n'a un UID défini sur 0
●
Désactiver la connexion en tant que root
●
Désactiver tous les services en cours d'exécution inutiles (init.d et xinetd)
●
Désinstaller/désactiver toutes les applications inutiles ou non sécurisées (ftp, telnet, X11)
Gestion sécurisée
●
Activer SELinux
●
Utiliser des mots de passe complexes pour tous les comptes
●
Installer et configurer un pare-feu
●
Désinstaller/désactiver toutes les applications inutiles ou non sécurisées (ftp, telnet, X11)
●
Chiffrer la communication ( Utiliser SSH, VPN, SSL, SFTP )
Gestion sécurisée
●
Mettre à jour le système (yum, apt, etc.)
●
Configurer le chiffrement du disque
●
Désactiver les périphériques USB et périphériques
●
Créer un utilisateur non root pour une utilisation quotidienne
●
Supprimer tous les comptes inutilisés
Secure Shell (SSH)
Dans la plupart des cas, l’administrateur devra se connecter à distance pour gérer le système. Il y’a 2 protocoles pour ce besoin : telnet et SSH.
SSH envoie toutes les données dans un format crypté, mais Telnet envoie les données en texte brut. Par conséquent, SSH utilise un canal sécurisé pour transférer des données sur le réseau, mais Telnet utilise une manière normale de se connecter au réseau et de
communiquer
Secure Shell (SSH)
Configuration basique SSH ●
Désactiver IPv6 si ce n'est pas utilisé
●
Interdire les connexions en tant que root
●
Ne pas autoriser les connexions à l'aide d'un mot de passe
●
Si connexion par mot de passe, définir un nombre limité de tentatives
●
Installer et configurer Fail2ban pour bloquer les tentatives d’intrusion échouées
MERCI