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

Ubuntu Livepatch Featured

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.

Ubuntu Livepatch Code Text

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-livepatch

Attendez 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.

Ubuntu Livepatch Install Snap

Enfin, avec la dernière commande de la page de Canonical,

sudo canonical-livepatch enable#PASTE_YOUR_TOKEN_HERE

le 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 snapd

Maintenant, 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 upgrade

Vous 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é.

Ubuntu Livepatch Service Restart

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.service

pour 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 status

de temps en temps pour vérifier les choses.