Renforcement d'un point de terminaison Linux avec gestion du pare-feu et des services

CompTIABeginner
Pratiquer maintenant

Introduction

Le durcissement des points d'extrémité (endpoint hardening) est un processus essentiel pour sécuriser tout système informatique. Il consiste à réduire la "surface d'attaque" du système, le rendant moins vulnérable aux menaces de sécurité. Deux aspects fondamentaux du durcissement d'un système Linux sont la gestion des services en cours d'exécution et la mise en œuvre d'un pare-feu.

Dans ce laboratoire, vous acquerrez une expérience pratique de ces pratiques de sécurité essentielles. Vous apprendrez à :

  • Identifier et désactiver les services qui ne sont pas essentiels au fonctionnement du système.
  • Installer et configurer le Uncomplicated Firewall (UFW), une interface conviviale pour gérer les règles de filtrage réseau sous Linux.

À la fin de ce laboratoire, vous aurez une compréhension pratique de la manière d'appliquer des techniques de durcissement de base à un point d'extrémité Linux.

Identifier et désactiver les services inutiles

Dans cette étape, vous apprendrez à identifier les services actifs sur votre système Linux et à désactiver ceux qui ne sont pas requis. Réduire le nombre de services en cours d'exécution minimise la surface d'attaque potentielle, car chaque service peut potentiellement présenter des vulnérabilités.

Tout d'abord, listons tous les services actifs. Dans certains environnements Linux, en particulier les conteneurs, la commande systemctl n'est pas disponible. Nous pouvons utiliser la commande service comme alternative.

Exécutez la commande suivante dans votre terminal pour voir l'état de tous les services :

service --status-all

Vous verrez une liste de services. Un [ + ] à côté du nom d'un service indique qu'il est en cours d'exécution, tandis qu'un [ - ] indique qu'il est arrêté.

 [ - ]  acpid
 [ - ]  apparmor
 [ + ]  apache2
 [ - ]  atop
 [ - ]  atopacct
 [ + ]  cron
...

Remarquez que apache2, un serveur web, est en cours d'exécution. Pour un point d'extrémité à usage général qui n'a pas besoin d'héberger de site web, ce service est inutile et doit être désactivé.

Pour arrêter le service apache2, utilisez la commande service avec stop. Vous avez besoin de privilèges sudo pour gérer les services système.

sudo service apache2 stop

Maintenant, vérifiez que le service a été arrêté en consultant à nouveau son état :

service apache2 status

La sortie confirmera que le service Apache2 n'est plus en cours d'exécution.

○ apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Tue 2025-08-05 14:44:53 CST; 2s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 5892 ExecStop=/usr/sbin/apachectl graceful-stop (code=exited, status=0/SUCCESS)
   Main PID: 4800 (code=exited, status=0/SUCCESS)
        CPU: 50ms

En désactivant les services inutiles, vous avez pris une mesure simple mais efficace pour durcir votre système.

Installer et configurer le pare-feu sans complication (UFW)

Dans cette étape, vous allez installer le Pare-feu Sans Compliqué (Uncomplicated Firewall - UFW). UFW est une interface conviviale pour le puissant mais complexe pare-feu iptables. Il fournit une manière simplifiée de configurer les règles de pare-feu courantes.

Tout d'abord, mettez à jour votre liste de paquets et installez le paquet ufw.

sudo apt-get update && sudo apt-get install -y ufw

Une fois l'installation terminée, UFW sera installé mais pas encore actif. Vous pouvez vérifier son état avec la commande suivante :

sudo ufw status

Le résultat affichera que le pare-feu est inactif :

Status: inactive

Pour activer le pare-feu, vous devez l'activer. Cette commande démarrera le pare-feu et le configurera pour qu'il se lance automatiquement au démarrage du système.

Note : Lors de l'activation d'un pare-feu sur un serveur distant, vous devez vous assurer d'avoir une règle autorisant l'accès SSH. Sinon, vous pourriez être bloqué. Pour cet environnement de laboratoire, il est sûr de continuer.

Activez UFW maintenant :

sudo ufw enable

Il vous sera demandé de confirmer l'opération. La commande activera le pare-feu et pourrait perturber les connexions existantes.

Firewall is active and enabled on system startup

Vérifions à nouveau l'état, cette fois avec l'option verbose pour voir plus de détails, y compris les politiques par défaut.

sudo ufw status verbose

Le résultat montrera maintenant que le pare-feu est actif et listera les politiques par défaut. Par défaut, UFW refuse tout trafic entrant et autorise tout trafic sortant, ce qui constitue un point de départ sécurisé.

Status: active
Logging: off
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

Puisque le pare-feu est maintenant actif et bloque toutes les connexions entrantes par défaut, nous devons autoriser l'accès SSH pour nous assurer que nous pouvons continuer à gérer le système à distance.

Ajoutez une règle pour autoriser les connexions SSH :

sudo ufw allow ssh

Vous verrez la confirmation que la règle a été ajoutée :

Rule added
Rule added (v6)

Ceci garantit que l'accès SSH reste disponible tant que le pare-feu est actif.

Créer et tester des règles de pare-feu de base

Maintenant que UFW est actif, vous allez apprendre à créer des règles pour contrôler le trafic réseau. Nous allons ajouter des règles pour autoriser les services spécifiques et nécessaires, tout en bloquant tout le reste par défaut.

Tout d'abord, assurons-nous que nos politiques par défaut sont correctement définies. Il est de bonne pratique de les définir explicitement.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Étant donné que nous avons déjà configuré l'accès SSH à partir de l'étape précédente, ajoutons une règle pour une application personnalisée. Imaginons que nous exécutons une application web personnalisée sur le port 8080. Nous devons créer une règle pour autoriser le trafic vers ce port spécifique.

sudo ufw allow 8080/tcp

Cette commande autorise spécifiquement le trafic entrant sur le port TCP 8080.

Rule added
Rule added (v6)

Pour afficher la liste des règles actuelles, vous pouvez utiliser ufw status avec l'option numbered. Cela facilite la gestion ou la suppression des règles ultérieurement.

sudo ufw status numbered

La sortie affichera vos nouvelles règles avec un numéro à côté de chacune d'elles.

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 8080/tcp                   ALLOW IN    Anywhere
[ 3] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] 8080/tcp (v6)              ALLOW IN    Anywhere (v6)

Vous avez maintenant configuré le pare-feu pour n'autoriser que le trafic essentiel, améliorant ainsi considérablement la sécurité de votre système.

Examiner les journaux système pour l'activité du pare-feu

Dans cette étape, vous apprendrez à activer et à examiner la journalisation (logging) d'UFW (Uncomplicated Firewall). Les journaux sont essentiels pour surveiller le trafic réseau, identifier les menaces de sécurité potentielles et dépanner les problèmes de connectivité.

La journalisation d'UFW n'est pas activée par défaut. Vous pouvez l'activer avec une commande simple.

sudo ufw logging on

Vous verrez une confirmation que la journalisation a été activée.

Logging enabled

Les journaux d'UFW sont écrits dans le fichier /var/log/ufw.log. Notez que ce fichier journal pourrait ne pas exister immédiatement après l'activation de la journalisation ; il sera créé automatiquement lorsque la première entrée de journal sera écrite.

Vous pouvez visualiser le fichier journal en temps réel en utilisant la commande tail avec l'option -f (follow/suivre). Si le fichier n'existe pas encore, la commande attendra sa création :

sudo tail -f /var/log/ufw.log

Cette commande affichera les dernières lignes du journal et attendra de nouvelles entrées. Dans un environnement réel, vous verriez les entrées de journal apparaître au fur et à mesure que le pare-feu bloque ou autorise des connexions. Comme cet environnement de laboratoire n'a pas de trafic externe tentant d'y accéder, il est possible que vous ne voyiez aucune nouvelle entrée. Appuyez sur Ctrl+C pour arrêter le suivi du journal.

Une entrée de journal typique pour un paquet bloqué ressemble à ceci :

Sep 10 12:00:00 ubuntu kernel: [UFW BLOCK] IN=eth0 OUT= MAC=01:02:03:04:05:06:07:08:09:0a:0b:0c SRC=192.168.1.10 DST=192.168.1.20 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=12345 PROTO=TCP SPT=54321 DPT=23 WINDOW=0 RES=0x00 SYN URGP=0

Voici une brève description des champs importants :

  • [UFW BLOCK]: Indique l'action entreprise par le pare-feu.
  • SRC: L'adresse IP source du paquet.
  • DST: L'adresse IP de destination.
  • PROTO: Le protocole réseau (par exemple, TCP, UDP).
  • DPT: Le port de destination.

Vous pouvez également rechercher des événements spécifiques dans le fichier journal en utilisant grep. Par exemple, pour trouver toutes les tentatives de connexion bloquées, vous pouvez exécuter :

sudo grep "UFW BLOCK" /var/log/ufw.log

Si le fichier journal n'existe pas encore ou est vide, cette commande ne renverra aucun résultat, ce qui est normal. Une fois que l'activité du pare-feu se produit, des entrées de journal seront écrites et vous pourrez les rechercher. Cette commande filtrera le journal et n'affichera que les lignes contenant la chaîne "UFW BLOCK", ce qui est extrêmement utile pour identifier des schémas d'activité suspecte.

Résumé

Félicitations ! Vous avez terminé avec succès ce laboratoire sur le renforcement d'un point de terminaison Linux.

Dans ce laboratoire, vous avez acquis une expérience pratique des tâches de sécurité fondamentales. Vous avez appris à :

  • Identifier les services en cours d'exécution sur un système Linux à l'aide de la commande service.
  • Arrêter et désactiver les services inutiles pour réduire la surface d'attaque du système.
  • Installer, activer et configurer le pare-feu sans complication (UFW - Uncomplicated Firewall).
  • Créer des règles allow spécifiques pour les services essentiels tels que SSH et les applications personnalisées.
  • Activer et consulter les journaux UFW pour surveiller l'activité du pare-feu et détecter les menaces potentielles.

Ce sont des compétences fondamentales pour tout administrateur système ou développeur responsable de la maintenance d'environnements Linux sécurisés et robustes. En appliquant ces techniques, vous pouvez améliorer considérablement la posture de sécurité de vos systèmes.