Sommaire
Guide détaillé
Étape 1
Classer variables et secrets
Une URL publique et un mot de passe base ne méritent pas le même traitement. Séparez configuration lisible et secret sensible.
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.
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.
Inventorier puis renouveler les secrets
Après restauration ou incident, les secrets exposés doivent être changés. Ne les stockez pas dans une note visible client.
sudo grep -R "PASSWORD\|TOKEN\|SECRET" -n /etc /srv 2>/dev/null | head -50
openssl rand -base64 32
sudo systemctl restart app.service
journalctl -u app.service -n 60 --no-pager
Ce que font les commandes
- `grep` cherche un motif dans des fichiers ; vérifiez les résultats avant toute modification.
- `openssl rand -base64 32` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `sudo systemctl restart app.service` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
Transformer une application en service systemd
systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
- `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
- `chown` remet la propriété des fichiers au bon utilisateur de service.
- `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
- `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
- `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
- `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
- `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
Base outils Debian / Ubuntu
apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
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.
- `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.
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 LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
- Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.
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.
- `systemctl status app.service` doit être actif.
- `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.
Étape 2
Choisir un emplacement maîtrisé
Le fichier d’environnement doit être lisible par le service et administrateurs, pas par tout le système.
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.
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 ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.
mkdir -p ~/newscloud-notes
printf '%s\n' "Choisir un emplacement maîtrisé" > ~/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.
Transformer une application en service systemd
systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
- `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
- `chown` remet la propriété des fichiers au bon utilisateur de service.
- `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
- `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
- `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
- `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
- `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
Base outils Debian / Ubuntu
apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
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.
- `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.
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 LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
- Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.
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.
- `systemctl status app.service` doit être actif.
- `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.
Étape 3
Brancher le gestionnaire de service
systemd ou le superviseur doit charger le fichier explicitement. Une variable présente dans votre shell ne suffit pas.
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.
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.
Contrôler un service systemd
systemd donne l’état réel du service, son démarrage automatique et les journaux utiles au diagnostic.
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 100 --no-pager
Ce que font les commandes
- `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
- `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
- `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
- `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
Transformer une application en service systemd
systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
- `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
- `chown` remet la propriété des fichiers au bon utilisateur de service.
- `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
- `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
- `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
- `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
- `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
Base outils Debian / Ubuntu
apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
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.
- `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.
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 LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
- Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.
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.
- `systemctl status app.service` doit être actif.
- `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.
Étape 4
Préparer la restauration
Documentez les variables obligatoires et leur source. C’est indispensable pour migrer ou reconstruire.
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.
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.
Tester une restauration sans toucher la production
Une sauvegarde n’est utile que si elle se relit. Restaurez dans un dossier temporaire ou une machine de test avant la production.
sudo mkdir -p /tmp/restore-test
sudo tar -xzf /root/backups/etc-$(date +%F).tar.gz -C /tmp/restore-test
sudo tar -tzf /root/backups/app-$(date +%F).tar.gz | head
sudo diff -qr /etc /tmp/restore-test/etc | head
Ce que font les commandes
- `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
- `tar -xzf` extrait une archive compressée vers le dossier choisi.
- `tar -tzf` liste le contenu d’une archive sans l’extraire.
- `sudo diff -qr /etc /tmp/restore-test/etc | head` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
Créer une sauvegarde lisible et restaurable
Cette base sauvegarde la configuration et un dossier applicatif. Adaptez /srv/app au chemin réel de votre service.
sudo mkdir -p /root/backups
sudo tar -czf /root/backups/etc-$(date +%F).tar.gz /etc
sudo tar -czf /root/backups/app-$(date +%F).tar.gz /srv/app
ls -lh /root/backups
sudo tar -tzf /root/backups/etc-$(date +%F).tar.gz | head
Ce que font les commandes
- `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
- `tar -czf` crée une archive compressée.
- `tar -czf` crée une archive compressée.
- `ls -lh /root/backups` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `tar -tzf` liste le contenu d’une archive sans l’extraire.
Base outils Debian / Ubuntu
apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
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.
- `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.
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 LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
- Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.
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.
- L’archive doit pouvoir être listée avec `tar -tzf`.
- Un fichier restauré en test doit conserver son contenu et ses droits utiles.
Étape 5
Renouveler quand l’accès change
Départ de prestataire, fuite possible ou incident doivent déclencher une rotation des secrets.
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.
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.
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.
Transformer une application en service systemd
systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
- `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
- `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
- `chown` remet la propriété des fichiers au bon utilisateur de service.
- `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
- `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
- `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
- `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
- `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
Base outils Debian / Ubuntu
apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
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.
- `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.
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 LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
- Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.
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.
- `systemctl status app.service` doit être actif.
- `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.
Checklist finale
- Secrets séparés
- Droits limités
- Variables documentées