Comment éviter les redémarrages de serveur avec Ubuntu Livepatch

Si vous administrez votre propre serveur(s), tôt ou tard, vous êtes confronté à ce problème : vous devez redémarrer le système d’exploitation, mais la machine fournit un service important que vous ne pouvez pas interrompre.
Mais pourquoi redémarrer en premier lieu ? Tout semble fonctionner correctement après une commande apt-get upgrade. Cependant, les choses ne sont pas toujours ce qu’elles semblent être. Même si le système continue de fonctionner après chaque mise à jour, sans forcer un redémarrage comme le fait Windows, il pourrait tout de même en avoir besoin.
Par exemple, lorsqu’une vulnérabilité dans le cœur du système (noyau) est découverte, elle est corrigée et envoyée à votre serveur sous forme de nouveau paquet. Après avoir installé le noyau corrigé, certains fichiers sont écrits sur le disque, mais c’est toujours l’ancien noyau qui gère le système, car c’est celui qui est chargé en mémoire (RAM).
Cela signifie que votre serveur est toujours vulnérable aux failles de sécurité précédemment découvertes. D’autres processus, démons et services peuvent être rechargés sans redémarrer le système d’exploitation. Cependant, le noyau est au cœur du système et ne peut être rechargé qu’au prochain démarrage.
Lisez aussi : Comment ajouter des utilisateurs dans Ubuntu Server
Ubuntu Livepatch résout ce problème en vous permettant de corriger les failles de sécurité du noyau sans redémarrer. De cette façon, vous pouvez éviter ou retarder les redémarrages pendant des semaines ou des mois sans compromettre la sécurité.
L’idée principale derrière le patching en direct est simple : lorsqu’une fonction est vulnérable, réécrivez-la, éliminez le défaut et chargez la nouvelle fonction quelque part en mémoire. Lorsque la fonction est appelée, au lieu d’exécuter le code dans le noyau, redirigez l’appel pour utiliser le code réécrit.

Mais, comme pour la plupart des choses qui semblent fonctionner simplement, l’implémentation et les détails techniques ne sont pas si simples.
Comment configurer Livepatch sur Ubuntu
Allez sur cette page et créez votre compte Ubuntu One. (Ou connectez-vous simplement si vous l’avez déjà.) Vérifiez votre e-mail et cliquez ensuite sur le lien de confirmation de compte. Ensuite, visitez la page du service Canonical Livepatch. Sélectionnez que vous êtes un “utilisateur Ubuntu” et cliquez sur le bouton pour générer votre jeton. La page suivante vous montrera les commandes exactes que vous devez entrer sur votre serveur. Après la première commande, entrez
sudo snap install canonical-livepatchAttendez quelques secondes jusqu’à ce que le paquet snap soit complètement installé. Quand c’est fait, vous obtiendrez un résultat similaire à ce que vous pouvez voir sur l’image suivante.

Enfin, avec la dernière commande de la page de Canonical,
sudo canonical-livepatch enable#PASTE_YOUR_TOKEN_HEREle service devient actif et appliquera automatiquement les correctifs de sécurité à votre noyau, chaque fois que nécessaire, sans intervention de votre part.
Installer le démon Snap si nécessaire
Dans de rares occasions, la première commande de la section précédente peut échouer, avec le message d’erreur suivant : -bash: /usr/bin/snap: Aucun fichier ou répertoire de ce type. Dans ce cas, cela signifie que votre fournisseur de serveur a une image du système d’exploitation Ubuntu qui n’inclut pas le service de démon snap par défaut. Installez-le avec :
sudo apt update &&sudo apt install snapdMaintenant, exécutez à nouveau les deux commandes de la section précédente.
Lisez aussi : 5 correctifs utiles pour améliorer votre expérience avec dwm
Garder votre serveur à jour
Livepatch appliquera toutes les mises à jour de sécurité nécessaires à votre noyau. Cependant, vous devriez toujours mettre à jour le reste de votre système régulièrement avec une commande comme :
sudo apt update &&sudo apt upgradeVous devriez le faire chaque semaine, ou même plus souvent, si vous le pouvez. Des paquets système importants pourraient vous indiquer qu’ils doivent être redémarrés pour appliquer les derniers correctifs de sécurité.

Ce sont généralement des redémarrages gracieux, ce qui signifie qu’ils ne perturbent aucun service dans le processus. Par exemple, dans ce cas, le démon SSH a été redémarré sans interrompre la session SSH active.
Dans d’autres situations, vous pourriez redémarrer vous-même des services pour vous assurer que le nouveau code corrigé est rechargé et que les correctifs de sécurité sont appliqués. Par exemple, si vous remarquez que le paquet nginx a été mis à jour, vous pouvez exécuter
systemctl restart nginx.servicepour recharger le démon nginx en mémoire. Sinon, même si un paquet est mis à jour, il pourrait encore fonctionner avec l’ancien code vulnérable, mettant votre serveur à risque d’attaques connues. Certaines mises à jour de paquets le font pour vous, mais d’autres ne le font pas. C’est pourquoi il est bon d’avoir l’habitude de prêter attention à ce que “apt upgrade” fait et de redémarrer certains services, si nécessaire. Vous pouvez également consulter les journaux pour voir si cela a été fait automatiquement.
Conclusion
Comme vous pouvez le voir, Canonical a rendu cela plutôt facile à mettre en œuvre sur un serveur. En ce qui concerne le noyau, aucun travail de maintenance n’est requis de votre part. La seule chose que vous pouvez faire est d’exécuter
canonical-livepatch statusde temps en temps pour vérifier les choses.