Comment automatiser les mises à jour de mon serveur debian

L'une des constantes en sécurité informatique c'est de mettre à jour dès que possible ces outils, logiciels, système d'exploitation etc. Sur les PC ou Mac c'est relativement automatique, mais sur les serveurs type debian ? Comment peut-on faire ? C'est une question à laquelle je vous propose de répondre dans cet article.

L'importance des mises à jour

Une petite piqure de rappel sur l'importance de faire les mises à jour de son serveur ne fera aucun mal vous verrez. En effet c'est souvent le seul moyen efficace pour corriger des failles de sécurité et garantir le bon fonctionnement de vos services.

Bien souvent il vous faudra être très réactif pour la mise en place de ces patchs de sécurité. Bien sûr les mises à jour ne concernent pas uniquement des correctifs de faille. Elles vont plus largement concerner des évolutions et des corrections de bug plus ou moins gros dans vos applications.

Comment faire des mises à jour automatique sur Debian ?

Pour pouvoir mettre en place ces mises à jour automatiques il va vous falloir installer un nouveau paquet et le configurer. Vous allez voir c'est très simple et en 5 minutes vous aurez automatisé vos mises à jour ainsi qu'améliorer grandement votre sécurité.

Commençons par installer le programme unattended-upgrades, mais aussi le programme apt-listchanges.

  • unattended-upgrades : c'est lui qui va se charger de réaliser les mises à jour automatiquement
  • apt-listchanges : vous servira à monitorer les mises à jour réalisé sur votre Debian

Pour les installer il suffit de taper la commande suivante (en root) :

apt-get install unattended-upgrades apt-listchanges

Voilà c'est en place vous allez pouvoir terminer la configuration des paquets à mettre à jour. Par défaut il ne fera que les mises à jour de sécurité. Ça tombe bien c'est ce que l'on veut, vous allez vérifier que c'est tout de même bien le cas. Ouvrez le fichier de configuration via la commande suivante :

nano /etc/apt/apt.conf.d/50unattended-upgrades

Chercher dans le fichier la ligne suivante : "Unattended-Upgrade::Origins-Pattern", ce bloc contient les ordres de mise à jour en fonction des types de paquets, stable, proposed-udpates, security etc. Vérifier bien que devant la ligne :

"origin=Debian,codename=${distro_codename},label=Debian-Security";

Si vous n'avez pas // si oui vous retirez les sinon votre serveur ne fera aucune mise à jour automatique. Chercher ensuite la ligne :

Unattended-Upgrade::Mail "root";

Devant vous devez avoir des // supprimez-les pour activer la notification par e-mail lors de la mise à jour. Remplacer root par votre adresse e-mail.

Par moment le système demandera un reboot après certaine mise à jour. Dans le fichier de configuration toute à la fin vous pouvez choisir comment il va agir quand un reboot est nécessaire. Cherchez la ligne :

//Unattended-Upgrade::Automatic-Reboot "false";

Changer la valeur "false" à "true"et retirer les // devant la ligne, juste en dessous vous avez la ligne qui va vous permettre de choisir l'heure du reboot. Car par défaut votre serveur redémarrera dès la fin de l'update.  Voici la ligne en question :

//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Idem retirez les // et vous pouvez choisir une heure, par défaut 2H du matin ce qui est plutôt pas mal. Vous devrez surement l'ajuster en fonction de vos autres services de backup, ou des taches planifié sur votre serveur.

Un dernier réglage qui peut avoir son importance par moment c'est la limitation de la vitesse de téléchargement des mises à jour. Vous pouvez la limiter grâce à la toute dernière ligne du fichier qui est :

//Acquire::http::Dl-Limit "70";

La valeur "70" correspond à 70 ko/s, globalement vous pouvez ne pas l'activer, car le téléchargement des updates ne devrait pas gêner le bon fonctionnement de votre serveur. Mais une fois encore dans certain environnement il peut être indispensable d'activer l'option. Pour la rendre opérante il faut retirer les // devant ladite ligne.

Il y a beaucoup d'autres réglages comme la suppression des dépendances qui ne sont plus utilisées etc. Cela étant mis en place sur des serveurs en production et donc qui ne doivent pas connaître de soucis je vous conseille quand même de ne pas activer trop d'option du genre. Vous venez d'activer les principales c'est l'essentiel.

Avant d'automatiser vous pouvez tester que tout fonctionne bien pour cela lancer la commande suivante :

unattended-upgrades -v

Dans la capture suivante vous verrez la réponse sur mon serveur de test lors de l’exécution de la commande il a rebooté à la fin de la mise à jour, car c'était nécessaire et que je n'avais pas activé le reboot pour une heure donnée.

Exclure des paquets de la mise à jour

Vous pouvez aussi vouloir ne jamais mettre un paquet à jour. Il y a souvent d'obscure raison qui pousse à faire cela, mais ça peut être nécessaire. Pour cela il faut ouvrir de nouveau le fichier de configuration et modifier le block suivant :

Unattended-Upgrade::Package-Blacklist

De là vous mettez les paquets à ne jamais mettre à jour automatiquement, vous pouvez par exemple ajouter nginx en modifiant le fichier comme ceci :

Unattended-Upgrade::Package-Blacklist {
"nginx";
};

Rendre l'update automatique sur ma debian

Pour l'instant on a fait que de configurer le logiciel Unattended Upgrades, vous allez donc maintenant mettre en place son exécution périodique. Pour cela taper la commande suivante pour modifier le fichier auto-upgrades dans la configuration des apt :

nano /etc/apt/apt.conf.d/20auto-upgrades

Ensuite ajoutez les deux lignes suivantes :

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

Voilà votre système vérifiera tous les jours s'il y a des mises à jour de sécurité à réaliser et si oui il les mettra en place. Voici en exemple un e-mail que vous pouvez recevoir à la fin de la  mise à jour par unattended-upgrades :

 

Conclusion

Voilà en 5 minutes vous avez encore amélioré la sécurité de votre serveur web. Rien de très compliqué et cela vous évitera de très nombreux problèmes de sécurité dans l'avenir. N'hésitez pas une fois par mois ou par semaine à lancer manuellement des vérifications de mise à jour. Et surtout si une annonce de faille très critique est corrigé par un patch n'hésitez pas faite le dès que possible.

 
Crédit photo : Conçu par Freepik

Sources :
https://wiki.debian.org/UnattendedUpgrades
https://linux-audit.com/using-unattended-upgrades-on-debian-and-ubuntu/