Base de connaissances

Machines virtuelles Expert 30 min

Durcir une VM exposée à Internet

Construire une base système plus stricte pour une application publique.

Objectif pratique

Sécuriser une machine virtuelle accessible sur Internet avant d’y exposer une application publique.

Distribution utilisée

Debian / Ubuntu

Sommaire

  1. Réduire la surface installée
  2. Verrouiller l’administration
  3. Suivre les mises à jour de sécurité
  4. Journaliser les accès
  5. Contrôler après durcissement
  6. Réviser les exceptions

Guide détaillé

Étape 1

Réduire la surface installée

Désinstallez ou désactivez ce qui ne sert pas. Chaque service actif est une responsabilité.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Réduire la surface installée" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Créer un accès administrateur et limiter le réseau

On crée un utilisateur, on prépare SSH, puis on ouvre seulement les ports nécessaires. Gardez votre session actuelle ouverte pendant le test.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo nano /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `install -d` crée le dossier avec les bons droits en une seule commande.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `chmod` fixe les permissions pour éviter un refus SSH ou une exposition inutile.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Pare-feu avec UFW

Sur Debian ou Ubuntu, UFW simplifie les règles courantes tout en gardant une lecture facile des ports ouverts.

Debian / Ubuntu
sudo apt update
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Votre nouvelle session SSH doit fonctionner avant de fermer l’ancienne.
  • Les ports ouverts doivent correspondre à la liste prévue, vérifiable avec `ss -tulpn`.

Étape 2

Verrouiller l’administration

Clés SSH, comptes nominatifs, IP autorisées et absence de mots de passe faibles forment la première ligne.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Créer un utilisateur d’administration

Le compte dédié évite d’utiliser root au quotidien. Testez toujours la nouvelle session avant de retirer un accès existant.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
su - deploy
sudo whoami
exit
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `su - utilisateur` ouvre une session avec le compte ciblé pour tester son environnement.
  • `whoami` confirme l’utilisateur actif, pratique après un test sudo.
  • `exit` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Créer un accès administrateur et limiter le réseau

On crée un utilisateur, on prépare SSH, puis on ouvre seulement les ports nécessaires. Gardez votre session actuelle ouverte pendant le test.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo nano /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `install -d` crée le dossier avec les bons droits en une seule commande.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `chmod` fixe les permissions pour éviter un refus SSH ou une exposition inutile.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Pare-feu avec UFW

Sur Debian ou Ubuntu, UFW simplifie les règles courantes tout en gardant une lecture facile des ports ouverts.

Debian / Ubuntu
sudo apt update
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Votre nouvelle session SSH doit fonctionner avant de fermer l’ancienne.
  • Les ports ouverts doivent correspondre à la liste prévue, vérifiable avec `ss -tulpn`.

Étape 3

Suivre les mises à jour de sécurité

Une VM durcie puis jamais patchée redevient vulnérable. Définissez une procédure de correction régulière.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Suivre les mises à jour de sécurité" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Créer un accès administrateur et limiter le réseau

On crée un utilisateur, on prépare SSH, puis on ouvre seulement les ports nécessaires. Gardez votre session actuelle ouverte pendant le test.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo nano /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `install -d` crée le dossier avec les bons droits en une seule commande.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `chmod` fixe les permissions pour éviter un refus SSH ou une exposition inutile.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Pare-feu avec UFW

Sur Debian ou Ubuntu, UFW simplifie les règles courantes tout en gardant une lecture facile des ports ouverts.

Debian / Ubuntu
sudo apt update
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Votre nouvelle session SSH doit fonctionner avant de fermer l’ancienne.
  • Les ports ouverts doivent correspondre à la liste prévue, vérifiable avec `ss -tulpn`.

Étape 4

Journaliser les accès

Les connexions admin et changements sensibles doivent laisser des traces consultables.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Lister les ports et tester le réseau

On vérifie ce qui écoute réellement et on teste localement avant de chercher une erreur côté DNS ou routeur.

Debian / Ubuntu
ip -br addr
ip route
sudo ss -tulpn
curl -I http://127.0.0.1
nc -vz 127.0.0.1 80
Ce que font les commandes
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `ss -tulpn` liste les ports ouverts et les processus qui écoutent.
  • `curl` teste une URL depuis la machine elle-même.
  • `nc -vz` teste si un port TCP répond sans envoyer de données applicatives.

Créer un accès administrateur et limiter le réseau

On crée un utilisateur, on prépare SSH, puis on ouvre seulement les ports nécessaires. Gardez votre session actuelle ouverte pendant le test.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo nano /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `install -d` crée le dossier avec les bons droits en une seule commande.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `chmod` fixe les permissions pour éviter un refus SSH ou une exposition inutile.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Pare-feu avec UFW

Sur Debian ou Ubuntu, UFW simplifie les règles courantes tout en gardant une lecture facile des ports ouverts.

Debian / Ubuntu
sudo apt update
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Votre nouvelle session SSH doit fonctionner avant de fermer l’ancienne.
  • Les ports ouverts doivent correspondre à la liste prévue, vérifiable avec `ss -tulpn`.

Étape 5

Contrôler après durcissement

Un durcissement réussi protège sans casser le service. Testez les usages attendus, pas seulement les règles.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Contrôler après durcissement" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Créer un accès administrateur et limiter le réseau

On crée un utilisateur, on prépare SSH, puis on ouvre seulement les ports nécessaires. Gardez votre session actuelle ouverte pendant le test.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo nano /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `install -d` crée le dossier avec les bons droits en une seule commande.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `chmod` fixe les permissions pour éviter un refus SSH ou une exposition inutile.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Pare-feu avec UFW

Sur Debian ou Ubuntu, UFW simplifie les règles courantes tout en gardant une lecture facile des ports ouverts.

Debian / Ubuntu
sudo apt update
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Votre nouvelle session SSH doit fonctionner avant de fermer l’ancienne.
  • Les ports ouverts doivent correspondre à la liste prévue, vérifiable avec `ss -tulpn`.

Étape 6

Réviser les exceptions

Une exception de sécurité accordée pour livrer vite doit être revue. Sans revue, elle devient la nouvelle faiblesse.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Réviser les exceptions" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Créer un accès administrateur et limiter le réseau

On crée un utilisateur, on prépare SSH, puis on ouvre seulement les ports nécessaires. Gardez votre session actuelle ouverte pendant le test.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo nano /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `install -d` crée le dossier avec les bons droits en une seule commande.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `chmod` fixe les permissions pour éviter un refus SSH ou une exposition inutile.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Pare-feu avec UFW

Sur Debian ou Ubuntu, UFW simplifie les règles courantes tout en gardant une lecture facile des ports ouverts.

Debian / Ubuntu
sudo apt update
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.
  • `ufw` applique ou affiche les règles de pare-feu simples.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Votre nouvelle session SSH doit fonctionner avant de fermer l’ancienne.
  • Les ports ouverts doivent correspondre à la liste prévue, vérifiable avec `ss -tulpn`.

Checklist finale

  • Surface réduite
  • SSH strict
  • Patchs suivis