4.2. Faire une mise à jour de sécurité
Dès que de nouveaux bogues de sécurité sont décelés dans les paquets, les responsables Debian et les auteurs amont les corrigent généralement dans les journées ou les heures suivantes. Une fois le bogue résolu, un nouveau paquet est fourni sur
http://security.debian.org.
Si vous installez une version de Debian, vous devez prendre en compte le fait qu'il a pu y avoir des mises à jour de sécurité depuis la parution, à chaque fois qu'une vulnérabilité a été découverte dans un paquet. Ainsi, des révisions mineures (il y en a eu quatre dans la version Debian 3.0 Sarge) incluent ces mises à jour de paquets.
Pendant l'installation, les mises à jour de sécurité sont configurées sur le système, et les mises à jour en attente sont téléchargées et appliquées, sauf indication contraire ou si le système n'est pas connecté à Internet. Les mises à jour sont appliquées avant même le premier démarrage, de telle sorte que le nouveau système commence sa vie aussi à jour que possible.
Pour mettre à jour vous-même le système, ajoutez la ligne suivante dans le
sources.list
et vous recevrez les mises à jour de sécurité automatiquement quand vous mettrez à jour le système. Remplacez
[NOM] par le nom de la version, par exemple
squeeze.
deb http://security.debian.org/ [NOM]/updates main contrib non-free
Après avoir fait cela, plusieurs outils vous permettent de mettre à niveau le système. S'il s'agit d'un ordinateur de bureau, une application appelée
update-notifier
permet de vérifier facilement si de nouvelles mises à niveau sont disponibles. En choisissant cela, vous pouvez faire les mises à niveau depuis le bureau (en utilisant
update-manager
). Pour obtenir plus de renseignements, veuillez consulter
Section 10.1.2.2, « Vérification de mises à jour sur station de travail ». Dans les environnements de bureau, vous pouvez aussi utiliser
synaptic (GNOME),
kpackage ou
adept (KDE) pour des interfaces plus avancées. Si le système ne possède qu'un terminal texte, vous pouvez utiliser
aptitude,
apt ou
dselect (obsolète) pour mettre à niveau.
Si vous voulez utiliser l'interface texte d'
aptitude, il suffit d'appuyer sur
u (mise à jour) suivi de
g (pour mettre à niveau). Vous pouvez aussi utiliser simplement la ligne de commande (en tant que superutilisateur) :
# aptitude update
# aptitude upgrade
Si vous voulez utiliser apt, il suffit de faire comme pour aptitude
, mais en remplaçant aptitude
des lignes précédentes par apt-get
.
Si vous voulez utiliser dselect, choisissez tout d'abord mise à jo[U]r, puis [I]nstaller et enfin [C]onfigurer pour mettre à jour et installer les paquets.
Si vous le voulez, vous pouvez ajouter également les lignes deb-src à /etc/apt/sources.list
. Consultez apt(8) pour plus de détails.
4.2.1. Mise à jour de sécurité des bibliothèques
Une fois que vous avez exécuté une mise à jour de sécurité, il se peut que vous deviez redémarrer certains des services système. Si vous ne faites pas cela, certains services pourraient encore être vulnérables après une mise à jour de sécurité. La raison pour cela est que les démons qui fonctionnent avec une mise à jour peuvent encore utiliser les anciennes bibliothèques après la mise à jour
. Pour détecter quels démons peuvent devoir être redémarrés, vous pouvez utiliser le programme
checkrestart
(disponible dans le paquet
debian-goodies) ou utiliser cette ligne de commande
(en tant que superutilisateur):
From Debian Jessie and up, you can install the needrestart package, which will run automatically after each APT upgrade and prompt you to restart services that are affected by the just-installed updates. In earlier releases, you can run the checkrestart
program (available in the debian-goodies package) manually after your APT upgrade.
Certains paquets (comme
libc6) feront cette vérification dans la phase de postinstallation pour un nombre limité de services, en particulier car une mise à jour de bibliothèques essentielles peut casser certaines applications (avant leur redémarrage)
.
Faire passer le système en niveau d'exécution1 (utilisateur seul), puis ensuite au niveau d'exécution3 (multiutilisateur) devrait entraîner le redémarrage de la plupart (si ce n'est tous) des services système. Mais cela n'est pas envisageable si vous exécutez la mise à jour de sécurité depuis une connexion distante (comme SSH) car celle-ci serait alors interrompue.
Apportez le plus grand soin lors des mises à jour de sécurité si vous les réalisez depuis une connexion à distance comme SSH. Une procédure suggérée pour une mise à jour de sécurité qui implique un redémarrage de services est de redémarrer le démon SSH, puis immédiatement de tenter une nouvelle connexion SSH sans interrompre la précédente. Si la connexion échoue, annulez la mise à jour et analysez le problème.
4.2.2. Mise à jour de sécurité du noyau
Assurez-vous tout d'abord que le noyau est géré par le système de gestion des paquets. Si vous l'avez installé en utilisant le système d'installation de Debian3.0 ou de versions précédentes, le noyau
n'est pas intégré dans le système de gestion des paquets et pourrait être obsolète. Vous pouvez facilement confirmer cela en exécutant:
$ dpkg -S `readlink -f /vmlinuz`
linux-image-2.6.18-4-686: /boot/vmlinuz-2.6.18-4-686
Si le noyau n'est pas géré, vous verrez un message indiquant que le gestionnaire de paquets n'a pas trouvé le fichier associé à un paquet au lieu du message ci-dessus, qui dit que le fichier associé au noyau actuellement en fonctionnement est fourni par le paquet
linux-image-2.6.18-4-686. Dans le premier cas, vous devrez installer manuellement un paquet d'image de noyau. L'image exacte du noyau que vous devez installer dépend de l'architecture et de la version de noyau préférée. Une fois fait, vous pourrez gérer les mises à jour de sécurité du noyau comme pour tout autre paquet. Dans tous les cas, notez que les mises à jour du noyau ne seront faites
que pour la même version du noyau que celui que vous utilisez, c'est-à-dire que
apt
ne va pas mettre à jour automatiquement le noyau de la version2.4 à la version2.6 (ou de la version2.4.26 à la version2.4.27
).
Le système d'installation des dernières versions de Debian gérera le noyau sélectionné comme partie du système de gestion des paquets. Vous pouvez vérifier quels noyaux sont installés en exécutant:
$ COLUMNS=150 dpkg -l 'linux-image*' | awk '$1 ~ /ii/ { print $0 }'
Pour voir si le noyau doit être mis à jour, exécutez:
$ kernfile=`readlink -f /vmlinuz`
$ kernel=`dpkg -S $kernfile | awk -F : '{print $1}'`
$ apt-cache policy $kernel
linux-image-2.6.32-5-686:
Installé : 2.6.32-35
Candidat : 2.6.32-35
Table de version :
*** 2.6.32-35
100 /var/lib/dpkg/status
Si vous effectuez une mise à jour de sécurité incluant l'image du noyau, vous devez redémarrer le système pour que la mise à jour de sécurité soit utile. Sinon, vous utiliserez encore l'ancienne image de noyau (vulnérable).
Si vous devez effectuer un redémarrage du système (à cause d'une mise à jour du noyau), vous devriez vous assurer que le noyau démarrera correctement et que la connectivité réseau sera restaurée, particulièrement si la mise à jour de sécurité est réalisée depuis une connexion à distance comme SSH. Pour le premier point, vous pouvez configurer le chargeur d'amorçage pour redémarrer l'ancien noyau en cas d'échec (pour des informations plus détaillées, veuillez consulter (en anglais)
http://www.debian-administration.org/?article=70). Pour le second point, vous devez introduire un script de test de connectivité réseau qui vérifiera si le noyau a lancé le sous-système réseau correctement et qui redémarrera le système si ce n'est pas le cas
. Cela devrait éviter des surprises désagréables comme une mise à jour du noyau en réalisant après un redémarrage qu'il n'a pas détecté ou configuré le matériel réseau correctement et que vous devez parcourir une longue distance pour relancer à nouveau le système. Bien sûr, avoir la console série
du système connectée à une console ou un serveur de terminal devrait également aider à déboguer à distance les problèmes de redémarrage.