Bonjour,
Pour ceux qui sont en DYI et qui veulent automatiser les patches de sécu debian, surtout en ce moment ou il en pleut par brouette, je vous propose ce petit tuto
Unattended-Upgrades est un paquet nous permettant d’automatiser les mises à jours de
sécurités sur notre serveur, afin notamment de patch des CVE lorsque les maj de sécurité
sont publiées. On installe le paquet avec la commande :
apt install unattended-upgrades apt-listchanges debconf-utils
# Pour avoir accès à dpkg-reconfigure
export PATH=$PATH:/usr/sbin
dpkg-reconfigure --priority=low unattended-upgrades
Cette deuxième commande nous affiche un display nous demandant si nous souhaitons
activer les mises à jours de sécurités automatiques. Nous répondons oui :
Ca nous créé plusieurs fichiers, dont /etc/apt/apt.conf.d/20auto-upgrades &
/etc/apt/apt.conf.d/50unattended-upgrades qui s’occupent respectivement de programmer
les mises à jours automatiques et de choisir comment les installer, lesquelles, que faire, etc.
Et nous avons déjà une conf solide. Mais on peut l’améliorer ! La première chose à faire, c’est
de configurer le 50unnatended-upgrades pour que les mises à jours de sécurité du kernel (ou
nécessitant un reboot) trigger un reboot. Ainsi, on modifie le fichier en tant que root :
nano /etc/apt/apt.conf.d/50unattended-upgrades
On recherche les blocs suivants :
// Automatically reboot *WITHOUT CONFIRMATION* if
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";
// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
// Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";
Les valeurs par défauts sont que les reboots ne sont pas activés ; s’ils le sont, ils s’effectuent now ! et même si un user est connecté. On remplace par une conf où les mises à jours s’effectuent à une heure précise, pendant la nuit (5h du matin en UTC, 3h ou 4h chez nous), même si un user est logué.
Et on mets donc ses nouvelles valeurs :
// Automatically reboot *WITHOUT CONFIRMATION* if
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot "true";
// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
// Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";
Unattended-Upgrade::Automatic-Reboot-Time "05:00";
Ensuite, on va aussi activer le cleanup automatique qui se trouve sur les blocs du dessus :
// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
//Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// Do automatic removal of newly unused dependencies after the upgrade
//Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
Ici les cleanups sont automatiques sauf pour le dernier. Ainsi, les kernels non-utilisés et à part
une version de backup sont supprimés, et pareil lorsque après un upgrade un paquet perd une
dépendance qui devient non utilisée celle-ci est supprimée. Le dernier, à false, fait un run
systématique de apt-get autoremove qui remove toutes les dépendances orphelines, ce qui
peut en voir qui sont là depuis longtemps. On met les valeurs en durs plutôt que par défaut :
// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
//Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// Do automatic removal of newly unused dependencies after the upgrade
//Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Voilà si cela peut aider.
Luis
