Automatiser les correctifs de sécurité sur Debian évite de laisser un serveur exposé simplement parce qu’une mise à jour a été oubliée. Mais il ne faut pas transformer APT en boîte noire. Avec unattended-upgrades, vous pouvez limiter les dépôts autorisés, tester la configuration, suivre chaque installation dans les logs et garder les redémarrages sous contrôle.
Sur un serveur, j’active volontiers les mises à jour de sécurité automatiques, mais je laisse le redémarrage automatique désactivé tant qu’une fenêtre de maintenance et une supervision ne sont pas prévues.

Installer et activer unattended-upgrades
Mettez d’abord l’index APT à jour, puis installez le paquet :
sudo apt update
sudo apt install unattended-upgrades
Debian fournit un assistant pour activer les mises à jour automatiques. Il crée ou ajuste la configuration périodique d’APT :
sudo dpkg-reconfigure -plow unattended-upgrades
Acceptez l’activation uniquement si vous avez vérifié que le serveur utilise les bons dépôts. Un fichier sources.list contenant un miroir obsolète, un dépôt tiers non maîtrisé ou une version Debian incohérente doit être corrigé avant d’automatiser quoi que ce soit. Pour vérifier précisément la version installée, utilisez les commandes de contrôle de version Debian.
Vérifier la fréquence réellement appliquée par APT
La configuration périodique se trouve généralement dans /etc/apt/apt.conf.d/20auto-upgrades. Un réglage minimal ressemble à ceci :
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
La valeur 1 demande un contrôle quotidien. Ne vous contentez pas d’ouvrir le fichier : APT peut combiner plusieurs fragments de configuration. Affichez la vue finale avec :
apt-config dump | grep -i -E 'Periodic|Unattended'
Sur les versions récentes de Debian, les unités systemd apt-daily.timer et apt-daily-upgrade.timer déclenchent le téléchargement et l’installation. Contrôlez-les directement :
systemctl list-timers 'apt-daily*'
systemctl status apt-daily.timer apt-daily-upgrade.timer --no-pager
systemctl cat apt-daily-upgrade.timer
Les timers peuvent ajouter un délai aléatoire. Une heure affichée dans list-timers peut donc différer du moment où vous pensiez voir partir le traitement. Si vous avez besoin de revoir la différence entre activation et démarrage d’une unité, l’article Systemctl enable détaille ces états.
Limiter les dépôts autorisés
Le fichier principal est /etc/apt/apt.conf.d/50unattended-upgrades. La section Origins-Pattern ou Allowed-Origins, selon la version du paquet, décide quelles origines peuvent être installées sans intervention.
Faites une sauvegarde avant toute modification :
sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak-$(date +%F-%H%M)
sudoedit /etc/apt/apt.conf.d/50unattended-upgrades
Pour un serveur classique, partez de la configuration Debian fournie et autorisez en priorité les correctifs de sécurité. N’ajoutez pas automatiquement tous les dépôts tiers. Un dépôt applicatif peut livrer une nouvelle version majeure, modifier une configuration ou redémarrer un service métier.
Si vous devez seulement surcharger quelques options, créez un fichier local séparé. Il sera plus simple à relire après une mise à niveau :
sudoedit /etc/apt/apt.conf.d/52unattended-upgrades-local
Évitez de recopier tout le fichier 50unattended-upgrades dans cette surcharge. Gardez uniquement les options que vous assumez localement, sinon vous masquerez les évolutions fournies par le paquet Debian.
Tester sans installer de paquet
Le test à blanc est indispensable après un changement d’origine ou d’option. Il affiche les paquets éligibles sans les installer :
sudo unattended-upgrade --dry-run --debug
Relisez surtout les lignes indiquant les origines autorisées, les paquets conservés et les exclusions. Si le test sélectionne un dépôt inattendu, revenez à la configuration avant de lancer une vraie exécution.
Pour exécuter manuellement le traitement après validation :
sudo unattended-upgrade -v
Ne lancez pas cette commande pendant qu’un autre apt ou dpkg travaille. Si vous rencontrez un verrou ou des dépendances incomplètes, ne supprimez pas les fichiers de lock au hasard. Vérifiez les processus actifs, puis utilisez la procédure de réparation décrite dans le guide dpkg et apt.
Garder les redémarrages automatiques désactivés
Une mise à jour du noyau ou d’une bibliothèque critique peut demander un redémarrage. Cela ne signifie pas que Debian doit redémarrer le serveur sans votre accord. Dans le fichier local 52unattended-upgrades-local, imposez :
Unattended-Upgrade::Automatic-Reboot "false";
Après une installation, vérifiez si un redémarrage est demandé :
test -f /var/run/reboot-required && cat /var/run/reboot-required
cat /var/run/reboot-required.pkgs 2>/dev/null || true
Planifiez ensuite le reboot pendant une fenêtre connue, avec une console de secours si le serveur est distant. Le guide Systemctl reboot donne les vérifications à faire avant et après le redémarrage.
Si votre infrastructure possède déjà une haute disponibilité, une supervision et une vraie procédure de maintenance, le redémarrage automatique peut être envisagé. Dans ce cas, testez d’abord le comportement sur une machine pilote et vérifiez les dépendances applicatives. Activer l’option uniquement parce qu’une heure de reboot est configurable reste trop risqué sur un serveur métier.
Lire les logs après chaque passage
Unattended-upgrades écrit ses journaux dans /var/log/unattended-upgrades/. Contrôlez le dernier passage avec :
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
sudo journalctl -u unattended-upgrades.service -n 100 --no-pager
Recherchez les paquets installés, ceux qui ont été conservés, les erreurs de dépendances et les services redémarrés. Pour suivre un fichier pendant un test manuel, utilisez tail en direct. Pour une analyse par unité systemd, le guide journalctl permet de resserrer la période et la priorité.
La page de manuel Debian d’unattended-upgrade détaille le mode debug et le test à blanc. Le manuel de l’administrateur Debian replace cet outil dans une stratégie de mises à jour régulières.
Une fois en place, gardez trois contrôles dans votre supervision : date du dernier passage réussi, erreurs APT et présence de /var/run/reboot-required. Vous automatisez ainsi les correctifs, pas la perte de visibilité.