Inventaire et audit de son propre réseau avec Nmap
Quitter

Leçon 1 sur 9 · Cadre et fondamentaux

Cadre, autorisation et méthode d'un audit interne

35 min Debian 12

Objectif

Comprendre pourquoi un administrateur doit savoir ce que ses propres machines exposent, dans quel cadre légal il a le droit de le vérifier, et suivre une méthode simple d'audit interne. Vous finirez par un premier scan… de votre propre VM.

L'essentiel

  • Nmap est un outil d'inventaire : il dit quels ports répondent sur une machine et quels services s'y trouvent. Pour un administrateur, c'est l'équivalent d'un état des lieux.
  • On ne scanne que ses propres machines ou un réseau pour lequel on détient une autorisation écrite de l'organisation. Sans elle, c'est une infraction (Code pénal, articles 607-3 et suivants).
  • Un audit se cadre avant de commencer : périmètre exact (adresses), commanditaire, document d'autorisation, fenêtre horaire, contact d'urgence.
  • On journalise chaque commande lancée, avec la date et l'heure : c'est votre preuve que vous êtes resté dans le périmètre.
  • Dans cette formation, tous les exercices ciblent 127.0.0.1, c'est-à-dire votre VM elle-même.

Pourquoi inventorier ses propres machines ?

Prenons Samira, technicienne dans une PME de logistique à Tanger. Son serveur de fichiers a été installé il y a trois ans par un prestataire. Personne ne sait exactement ce qui tourne dessus. Un jour, un ancien service d'administration à distance, oublié, laisse entrer un rançongiciel.

Les attaquants, eux, font l'inventaire de vos machines en quelques secondes. La seule défense raisonnable est de le faire avant eux et de fermer ce qui ne sert à rien. C'est exactement le rôle d'un audit interne :

  1. Inventorier : quels ports sont ouverts, quels services, quelles versions ?
  2. Comparer avec ce qui devrait exister (la « liste blanche » : le site web, le SSH d'administration…).
  3. Corriger l'écart : arrêter, restreindre, filtrer, mettre à jour.
  4. Vérifier par un nouveau scan que la correction marche.
  5. Recommencer régulièrement, et comparer avec l'inventaire précédent.

Ces cinq étapes sont le fil de toute la formation.

Ce que dit la loi marocaine

La loi n° 07-03 a ajouté au Code pénal les articles 607-3 à 607-11 sur les atteintes aux systèmes de traitement automatisé des données. En résumé, et sans remplacer l'avis d'un juriste :

Article Ce qui est puni (résumé)
607-3 Accéder frauduleusement à tout ou partie d'un système, ou s'y maintenir
607-5 Entraver ou fausser volontairement le fonctionnement d'un système
607-6 Introduire, modifier ou supprimer frauduleusement des données
607-10 Fabriquer, détenir ou céder des équipements ou programmes conçus pour commettre ces infractions
607-11 Confiscation du matériel utilisé

Retenez la logique : ce qui fait la différence entre un audit et une attaque, c'est l'autorisation. Le même scan, lancé sur le serveur d'un voisin, peut être vu comme une tentative d'accès ou une entrave (surtout s'il ralentit un équipement fragile). Lancé sur votre serveur, avec l'accord écrit de votre direction, c'est du travail d'administrateur.

Deux autres textes comptent dans un audit interne :

  • la loi 09-08 sur la protection des données personnelles (CNDP) : un rapport d'audit d'hôpital ne doit pas contenir de données de patients ;
  • la loi 05-20 relative à la cybersécurité et la DNSSI pour les administrations et les infrastructures d'importance vitale, qui demandent justement de connaître et de maîtriser ses systèmes.

L'autorisation écrite

Même en interne, même si vous êtes « l'informaticien de la maison », demandez une autorisation signée par une personne qui a le pouvoir de la donner (directeur, DSI, RSSI). Elle doit préciser :

Rubrique Exemple (université à Rabat)
Commanditaire Direction des systèmes d'information
Auditeur Youssef A., technicien réseau
Périmètre 10.20.30.0/24 (salle serveurs), hors 10.20.30.50 (serveur de scolarité en période d'examens)
Fenêtre Samedi 25/10, de 8 h à 12 h
Techniques permises inventaire des ports TCP, détection de versions, scripts NSE « safe »
Interdits tests de déni de service, essais de mots de passe, exploitation
Contact d'urgence Astreinte DSI, poste 1234

Pour un hôpital, soyez encore plus prudent : certains équipements biomédicaux ou automates réagissent mal à un scan agressif. On les exclut du périmètre ou on les scanne à faible vitesse, avec le service biomédical présent.

La méthode, outil par outil

Nmap s'installe depuis les dépôts de votre distribution :

sudo apt install nmap            # Debian, Ubuntu
sudo dnf install nmap            # Rocky, Alma, RHEL
nmap --version                   # Nmap version 7.93 ( https://nmap.org ) sur Debian 12

Étape 1 : vérifier la liste des cibles sans rien envoyer

Le balayage de liste (-sL) affiche les adresses que Nmap ciblerait, sans envoyer un seul paquet vers elles. C'est le meilleur moyen de relire son périmètre avant de lancer quoi que ce soit.

nmap -sL -n 10.20.30.0/29
# Nmap scan report for 10.20.30.0
# Nmap scan report for 10.20.30.1
# ...
# Nmap done: 8 IP addresses (0 hosts up) scanned in 0.01 seconds

-n évite les requêtes DNS. « 0 hosts up » est normal : Nmap n'a rien interrogé.

Pour exclure une machine du périmètre :

nmap -sL -n 10.20.30.0/24 --exclude 10.20.30.50

Étape 2 : le premier scan, sur sa propre machine

nmap -sT -p 8080 127.0.0.1
# PORT     STATE SERVICE
# 8080/tcp open  http-proxy
  • -sT : Nmap ouvre une vraie connexion TCP, comme le ferait un navigateur. C'est le scan le plus « poli » et il marche sans droits root.
  • -p 8080 : un seul port.
  • 127.0.0.1 : la machine elle-même (l'adresse de bouclage).

La colonne SERVICE (http-proxy) est seulement le nom habituel de ce port, tiré d'une table : Nmap n'a pas encore regardé ce qui répond vraiment. Ce sera l'objet de la leçon 2.1.

Étape 3 : garder une trace

nmap -sT -p 8080 127.0.0.1 -oN /root/audit/premier.txt     # sortie enregistrée
echo "$(date '+%F %T') nmap -sT -p 8080 127.0.0.1" >> /root/audit/journal.txt

La première ligne d'un fichier -oN rappelle déjà la commande et l'heure : # Nmap 7.93 scan initiated … as: nmap -sT -p 8080 …. Le journal, lui, rassemble toutes les commandes de l'audit dans un seul fichier, lisible par votre responsable.

Pièges fréquents

  • « C'est le réseau de l'entreprise, j'y travaille, donc j'ai le droit » : non. Sans autorisation écrite qui précise le périmètre, vous êtes en faute, même avec de bonnes intentions.
  • Se tromper d'adresse : une faute de frappe (10.20.3.0/24 au lieu de 10.20.30.0/24) et vous scannez le réseau d'un autre. Relisez toujours avec -sL d'abord.
  • Scanner un réseau d'hébergeur ou de cloud sans lire ses conditions : beaucoup les encadrent, même pour vos propres machines.
  • Oublier le journal : en cas d'incident pendant la fenêtre d'audit, c'est lui qui prouvera ce que vous avez fait (et pas fait).

Lab

Vous préparez un mini-audit de votre VM : vous rédigez la fiche de cadrage (cible, commanditaire, autorisation, fenêtre), vous relisez un périmètre avec le balayage de liste sans envoyer de paquet, puis vous faites votre premier scan TCP du port 8080 de 127.0.0.1 et vous le consignez dans le journal d'audit. Commencez par sudo ml demarrer nmap-1-1.

Quiz

  1. Qu'est-ce qui distingue juridiquement un audit d'une attaque ?
  2. Que fait l'option -sL ? Envoie-t-elle des paquets aux cibles ?
  3. Citez quatre rubriques indispensables d'une autorisation d'audit.
  4. Pourquoi faut-il être prudent dans un hôpital ?
  5. Dans la sortie 8080/tcp open http-proxy, Nmap a-t-il vérifié qu'il s'agit d'un proxy ?
Réponses
  1. L'autorisation écrite de l'organisation propriétaire, qui fixe le périmètre et les techniques permises (Code pénal, articles 607-3 et suivants pour l'accès ou l'entrave sans droit).
  2. Elle liste les adresses ciblées, sans envoyer aucun paquet vers elles : c'est une relecture du périmètre.
  3. Commanditaire, auditeur, périmètre (et exclusions), fenêtre horaire, techniques permises et interdites, contact d'urgence.
  4. Certains équipements biomédicaux ou automates sont fragiles ; un scan trop rapide peut les perturber. On les exclut ou on les scanne doucement, avec le service concerné.
  5. Non : c'est le nom habituel du port 8080. Seule la détection de version (-sV) interroge vraiment le service.

Sources de référence : guide de référence Nmap et page de manuel nmap(1) ; Code pénal marocain (loi n° 07-03). Texte original MasterLinux.

Exercices pratiques

À réaliser sur Debian 12

Faites ce lab sur votre machine

Le terminal, c’est le vôtre : une VM Linux (VirtualBox, VMware, Hyper-V, WSL…) ou Docker/Podman. L’outil ml prépare l’exercice et corrige votre travail ; la leçon se valide toute seule ici.

Créez un compte gratuit pour obtenir votre commande personnelle et faire valider vos labs automatiquement.

Créer mon compte

Tâches à réaliser

  1. Rédigez la fiche de cadrage /root/audit/cadre/perimetre.txt avec quatre lignes « clé=valeur » : cible=127.0.0.1, commanditaire=… (qui demande l'audit), autorisation=… (référence du document signé) et fenetre=… (jour et heures autorisés)
    Afficher un indiceUne ligne par information, sans espace autour du « = ». Exemple : commanditaire=Direction PME Tanger.
    Voir la solution
    printf "%s\n" "cible=127.0.0.1" "commanditaire=Direction informatique - PME Tanger" "autorisation=AUT-2026-014 signee le 19/10/2026" "fenetre=lundi 20/10 de 20h a 22h" > /root/audit/cadre/perimetre.txt

    Vérification : f=/root/audit/cadre/perimetre.txt; grep -qx "cible=127.0.0.1" $f && grep -q "^commanditaire=.\{2,\}" $f && grep -q "^autorisation=.\{2,\}" $f && grep -q "^fenetre=.\{2,\}" $f

  2. Sans envoyer un seul paquet, faites lister par Nmap les adresses de 127.0.0.0/30 (balayage de liste, sans résolution DNS) et enregistrez le résultat au format normal dans /root/audit/cadre/liste.txt
    Afficher un indiceLe balayage de liste est -sL ; -n désactive le DNS ; -oN fichier enregistre la sortie normale.
    Voir la solution
    nmap -sL -n 127.0.0.0/30 -oN /root/audit/cadre/liste.txt >/dev/null

    Vérification : f=/root/audit/cadre/liste.txt; grep -q "^# Nmap .* -sL" $f && grep -q "Nmap scan report for 127.0.0.3" $f && grep -q "(0 hosts up)" $f

  3. Un petit serveur web de test écoute sur votre VM. Faites votre premier scan : connexion TCP complète (-sT) sur le seul port 8080 de 127.0.0.1, sortie normale dans /root/audit/cadre/premier.txt
    Afficher un indicenmap -sT -p 8080 127.0.0.1 -oN …
    Voir la solution
    nmap -sT -p 8080 127.0.0.1 -oN /root/audit/cadre/premier.txt >/dev/null

    Vérification : f=/root/audit/cadre/premier.txt; grep -q "^# Nmap .*-sT" $f && grep -Eq "^8080/tcp +open" $f

  4. Tenez le journal d'audit : ajoutez à /root/audit/cadre/journal.txt une ligne qui commence par la date au format AAAA-MM-JJ suivie de l'heure, puis la commande exacte du scan précédent (nmap -sT -p 8080 127.0.0.1)
    Afficher un indicedate "+%F %T" donne 2026-10-19 21:05:12. Combinez : echo "$(date '+%F %T') nmap -sT -p 8080 127.0.0.1" >> …
    Voir la solution
    echo "$(date "+%F %T") nmap -sT -p 8080 127.0.0.1" >> /root/audit/cadre/journal.txt

    Vérification : f=/root/audit/cadre/journal.txt; grep -Eq "^20[0-9]{2}-[01][0-9]-[0-3][0-9].*[0-2][0-9]:[0-5][0-9].*nmap -sT -p 8080 127\.0\.0\.1" $f

Références officielles consultées : Nmap Reference Guide (Nmap Network Scanning, Gordon Lyon) — https://nmap.org/book/man.html ; Nmap — Legal Issues — https://nmap.org/book/legal-issues.html ; nmap(1) — page de manuel (Debian 12, paquet nmap 7.93) ; Code pénal marocain, articles 607-3 à 607-11 (loi n° 07-03 relative aux atteintes aux systèmes de traitement automatisé des données). Texte original MasterLinux.