Au coin du Frag
Programmation, Linux et serveurs

Mise à niveau d'un serveur sous Debian

Mise à niveau d'un serveur sous Debian
Crédit photo : Markus Winkler on Unsplash
Sommaire
  1. 1. Avant la mise à jour
  2. 2. Changement des sources
    1. 2.1 Sources pour debian 10 (buster)
    2. 2.2 Sources pour debian 11 (bullseye)
    3. 2.3 Source pour debian 12 (bookworm)
    4. 2.4 Sources pour trixie (version 13)
  3. 3. Lancement de la mise à jour
  4. 4. Bonus : configuration de unattended-upgrades

1. Avant la mise à jour

Vérifier que le système est à jour :

apt update
apt upgrade
apt full-upgrade
apt autoremove --purge

Vérifier qu'il n'y a pas un redémarrage en attente :

ls /run/reboot-required

Si ce fichier existe :

systemctl reboot

2. Changement des sources

Il faut ensuite modifier la source des paquets : /etc/apt/source.list.
Note : si d'autres sources sont utilisées (logiciels tiers), il est préférable de les désactiver pendant la mise à jour de la distribution puis de les mettre à jour eux-mêmes ensuite.

2.1 Sources pour debian 10 (buster)

deb http://archive.debian.org/debian/ buster main contrib non-free
deb-src http://archive.debian.org/debian/ buster main contrib non-free

deb http://archive.debian.org/debian-security buster/updates main contrib non-free
deb-src http://archive.debian.org/debian-security buster/updates main contrib non-free

deb http://archive.debian.org/debian/ buster-updates main contrib non-free
deb-src http://archive.debian.org/debian/ buster-updates main contrib non-free

2.2 Sources pour debian 11 (bullseye)

Notes :

  • le format de la ligne qui référence l'archive security a légèrement changé dans cette version.
# /etc/apt/sources.list
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

2.3 Source pour debian 12 (bookworm)

Notes :

  • OpenSSH n'accepte plus par défaut les clés en ssh-rsa. Si on utilise une telle clé, il faut ajouter les lignes PubkeyAcceptedAlgorithms +ssh-rsa et KbdInteractiveAuthentication no dans le fichier /etc/ssh/sshd_config à la fin de la mise à jour (avant de rebooter).
  • Dans le cas de l'utilisation de OpenSMTPD, la syntaxe de /etc/smtpd.conf a changé.
# /etc/apt/sources.list
deb https://ftp.debian.org/debian/ bookworm contrib main non-free
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free

deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free

deb https://ftp.debian.org/debian/ bookworm-proposed-updates contrib main non-free
deb-src https://ftp.debian.org/debian/ bookworm-proposed-updates contrib main non-free

deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free

deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free

2.4 Sources pour trixie (version 13)

Note : A partir de la version 13, apt recommande d'utiliser le nouveau format de fichier source. Pour convertir automatiquement votre configuration, utilisez la commande apt modernize-sources à la fin de la mise à jour.

# /etc/apt/sources.list
deb https://ftp.debian.org/debian/ trixie contrib main non-free
deb-src https://ftp.debian.org/debian/ trixie contrib main non-free

deb https://ftp.debian.org/debian/ trixie-updates contrib main non-free
deb-src https://ftp.debian.org/debian/ trixie-updates contrib main non-free

deb https://ftp.debian.org/debian/ trixie-proposed-updates contrib main non-free
deb-src https://ftp.debian.org/debian/ trixie-proposed-updates contrib main non-free

deb https://ftp.debian.org/debian/ trixie-backports contrib main non-free
deb-src https://ftp.debian.org/debian/ trixie-backports contrib main non-free

deb https://security.debian.org/debian-security/ trixie-security contrib main non-free
deb-src https://security.debian.org/debian-security/ trixie-security contrib main non-free

3. Lancement de la mise à jour

apt update
apt upgrade --without-new-pkgs
apt full-upgrade
apt autoremove --purge
systemctl reboot

4. Bonus : configuration de unattended-upgrades

Pour que les mises à jour mineures ou de sécurité s'installent automatiquement, vous pouvez configurer le service uanttented-upgrades.

Pour l'installer :

apt-get install unattended-upgrades apt-listchanges

Sa configuration se fait dans /etc/apt/apt.conf.d/50unattended-upgrades.conf ou dans un fichier (à créer) /etc/apt/apt.conf.d/52unattended-upgrades.conf pour simplement surcharger les valeurs par défaut et ne pas être perturbé par les mises à jour futures. Les directives notables (selon moi 😉) sont :

Unattended-Upgrade::Origins-Pattern { "origin=Debian,codename=${distro_codename},label=Debian-Security"; };
Unattended-Upgrade::Mail "adresse_email_des_rapports@chezvous.com";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
Unattended-Upgrade::Remove-Unused-Dependencies "false";
Unattended-Upgrade::Automatic-Reboot "true";

La première directive indique de télécharger et d'installer automatiquement les mises à jour de sécurité. Selon moi, ce sont celles-ci qui sont à viser avec unattended-upgrades.

Ensuite, pour activer le service :

cp /usr/share/unattended-upgrades/20auto-upgrades /etc/apt/apt.conf.d/22auto-upgrades

Normalement, ce fichier ne contient que deux directives qu'il n'est pas nécessaire de modifier :

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";