Unattended-upgrade - buster - maj sécurité uniquement

Hello,

Entre l’ancienne stable et buster, unattended-upgrade ne fonctionne plus trop de la même façon, du moins la structure du fichier de conf a un peu changé.

Avant, j’avais fait en sorte de ne descendre, même en prod, que les upgrades liées au canal sécurité (et sauf erreur, je crois qu’il s’agissait aussi d’une configuration par défaut), aujourd’hui, la configuration par défaut (une fois encore “sauf erreur”) est de tout choper. Dangereux.

J’ai donc essayé de bricoler la conf pour n’avoir que les maj de sécurité, mais ça ne fonctionne pas. En tout cas, en presque 2 mois, je n’ai pas vu passer une seule maj (même sur un gros serveur de dev, bourré de paquets).

Unattended-Upgrade::Origins-Pattern {
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
};
Unattended-Upgrade::Package-Blacklist {
        "grub*";
};
Unattended-Upgrade::Automatic-Reboot "false";

Sous : /etc/apt/apt.conf.d/50unattended-upgrades

Un dry-run donne ceci :

unattended-upgrade -d --dry-run
Initial blacklist : grub*
Initial whitelist:
Démarrage du script de mise à niveau automatique
Les origines permises sont: origin=Debian,codename=buster,label=Debian-Security
Using (^linux-image-[0-9]+\.[0-9\.]+-.*|^linux-headers-[0-9]+\.[0-9\.]+-.*|^linux-image-extra-[0-9]+\.[0-9\.]+-.*|^linux-modules-[0-9]+\.[0-9\.]+-.*|^linux-modules-extra-[0-9]+\.[0-9\.]+-.*|^linux-signed-image-[0-9]+\.[0-9\.]+-.*|^linux-image-unsigned-[0-9]+\.[0-9\.]+-.*|^kfreebsd-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-headers-[0-9]+\.[0-9\.]+-.*|^gnumach-image-[0-9]+\.[0-9\.]+-.*|^.*-modules-[0-9]+\.[0-9\.]+-.*|^.*-kernel-[0-9]+\.[0-9\.]+-.*|^linux-backports-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-tools-[0-9]+\.[0-9\.]+-.*|^linux-cloud-tools-[0-9]+\.[0-9\.]+-.*|^linux-buildinfo-[0-9]+\.[0-9\.]+-.*|^linux-source-[0-9]+\.[0-9\.]+-.*) regexp to find kernel packages
Using (^linux-image-4\.19\.0\-6\-amd64$|^linux-headers-4\.19\.0\-6\-amd64$|^linux-image-extra-4\.19\.0\-6\-amd64$|^linux-modules-4\.19\.0\-6\-amd64$|^linux-modules-extra-4\.19\.0\-6\-amd64$|^linux-signed-image-4\.19\.0\-6\-amd64$|^linux-image-unsigned-4\.19\.0\-6\-amd64$|^kfreebsd-image-4\.19\.0\-6\-amd64$|^kfreebsd-headers-4\.19\.0\-6\-amd64$|^gnumach-image-4\.19\.0\-6\-amd64$|^.*-modules-4\.19\.0\-6\-amd64$|^.*-kernel-4\.19\.0\-6\-amd64$|^linux-backports-modules-.*-4\.19\.0\-6\-amd64$|^linux-modules-.*-4\.19\.0\-6\-amd64$|^linux-tools-4\.19\.0\-6\-amd64$|^linux-cloud-tools-4\.19\.0\-6\-amd64$|^linux-buildinfo-4\.19\.0\-6\-amd64$|^linux-source-4\.19\.0\-6\-amd64$) regexp to find running kernel packages
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: ['grub*']
whitelist: []
Aucun paquet à mettre à niveau automatiquement ni à supprimer automatiquement

Une idée de ce qui cloche ? Ou alors il y a vraiment très peu de maj de sécurités sous debian (mon ancienne prod est une ubuntu 16 et le canal sécurité pousse très régulièrement des trucs), ce qui est un signale plutôt positif au final.

salut
les maj de sécurité sont listées ici
https://www.debian.org/security/

tu peux verifier si tes paquets sont à jour
Exemple

  apt policy chromium
chromium:
  Installé : 78.0.3904.108-1~deb10u1
  Candidat : 78.0.3904.108-1~deb10u1
 Table de version :
     78.0.3904.108-1 100
        100 https://cdn-aws.deb.debian.org/debian sid/main amd64 Packages
 *** 78.0.3904.108-1~deb10u1 990
        990 https://cdn-aws.deb.debian.org/debian-security buster/updates/main amd64 Packages
        500 https://cdn-aws.deb.debian.org/debian buster-proposed-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     78.0.3904.97-1~deb10u1 500
        500 https://cdn-aws.deb.debian.org/debian buster/main amd64 Packages
     73.0.3683.75-1~deb9u1 500
        500 https://cdn-aws.deb.debian.org/debian-security stretch/updates/main amd64 Packages
     70.0.3538.110-1~deb9u1 500
        500 https://cdn-aws.deb.debian.org/debian stretch/main amd64 Packages
     57.0.2987.98-1~deb8u1 500
        500 https://cdn-aws.deb.debian.org/debian-security jessie/updates/main amd64 Packages

Avec ma configuration, apt policy indique

 990 https://cdn-aws.deb.debian.org/debian-security buster/updates/main amd64 Packages
     release v=10,o=Debian,a=stable,n=buster,l=Debian-Security,c=main,b=amd64
     origin cdn-aws.deb.debian.org

Selon le code dans 50unattended-upgrades, codename est récupéré dans /etc/debian_version
Que dit

cat /etc/debian_version

Et sinon, la syntaxe origin, codename, label, ça ne pourrait pas être plutôt o=, c=, l= ?

Le problème ne semble pas non plus venir de là.

En fait il faut créer à la main le fichier : /etc/apt/apt.conf.d/20auto-upgrades, contenant ceci :

APT::Periodic::Update-Package-Lists “1”;
APT::Periodic::Unattended-Upgrade “1”;

Et là, j’ai bien un truc qu’on me propose de descendre.

Pour le reste, la syntaxe est bonne.

Curieux que ce fichier ne soit pas créé à l’installation du package. Et je suis formel, pour toutes mes installations (que ce soit mes VMs KVM ou mes hyperviseurs), ce fichier doit être créé à la main. Ce n’est pas normal.

Quelqu’un peut confirmer si il s’agit bien d’un bug ? Auquel cas j’ouvrirai un case.

les fichiers 20auto-upgrades-disabled et 20auto-upgrades font partie du paquet unattended-upgrades
https://packages.debian.org/fr/buster/all/unattended-upgrades/filelist
Son activation 0 -> 1 n’est pas totalement automatique

 dpkg-reconfigure -plow unattended-upgrades

https://wiki.debian.org/UnattendedUpgrades

D’aaaaccord, je comprends mieux pourquoi dans sa conf de base il est si permissif par rapport à ce qu’il fait, c’est parce-qu’il n’est pas activé par défaut.