Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
technique:adminsys:secu:automatic_updates [2021/01/27 21:45] – créée qduchemitechnique:adminsys:secu:automatic_updates [2021/11/22 21:53] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. qduchemi
Ligne 3: Ligne 3:
 ## Automatiser les mises à jour de sécurité ## Automatiser les mises à jour de sécurité
  
-todo+### Préambule 
 + 
 +Les failles de sécurité sont un risque majeur pour l'infrastructure. Un exemple emblématique est la récente [vulnérabilité de sudo](https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txt), présente depuis plus de 10 ans, qui permet à n'importe quel utilisateur non-privilégié d'obtenir des droits d'administration. 
 + 
 +<bootnote critical>Ce genre de failles est critique : dès qu'elle est rendue publique, des robots commencent à tenter d'exploiter les vulnérabilités sur des plages d'IP et se servent des intrusions pour construire des réseaux de bots, miner des cryptomonnaies ou exfiltrer/chiffrer des données.</bootnote> 
 + 
 +Il est donc très désirable d'obtenir les mises à jour de sécurité le plus rapidement possible dès qu'un *patch* est disponible.  
 + 
 +<bootnote question>Les mises à jour automatique, ça craint, non ? Si ça casse des trucs et qu'on est pas là pour le voir ?</bootnote> 
 + 
 +Nos machines tournent sur Debian, une distribution Linux pensée pour la stabilité. L'idée est d'automatiser les mises à jour concernant les **failles de sécurité**. Un dépôt spécial vise à transmettre ces mises à jour, qui sont abondamment testées et n'introduisent pas de nouvelles fonctionnalités. 
 + 
 +Il nous semble beaucoup plus souhaitable de garantir le *patch* rapide des vulnérabilités, par exemple un semestre où l'équipe technique n'est pas très disponible, plutôt que de risquer de se faire trouer. Rappelons qu'il y a beaucoup de données personnelles sur les serveurs et qu'il est critique de les protéger du mieux que l'on peut. Certes, il y a toujours un risque de casse, mais il est minime. Ainsi, on appliquera : 
 + 
 +* Les mises à jour strictement nécessaires pour régler des failles de sécurité. 
 +* On exclura les mises à jour automatiques du noyau, qui nécessitent un redémarrage et font souvent exploser la mémoire disponible dans `/boot`, nécessitant une attention particulière. 
 +* On exclura les mises à jour automatiques de `grub`, qui peuvent mal tourner et empêcher un redémarrage. 
 + 
 +<bootnote learn>Debian propose un paquet qui gère la configuration de ces mises à jour automatique : `unattended-upgrades`.</bootnote> 
 + 
 +### Installer et configurer unattended-upgrades  
 + 
 +#### Installation 
 + 
 +<bootnote>Depuis Debian 9, le paquet est installé et configuré par défaut. Sauf que la plupart de nos VM ont été installées avec Debian 8... Et sur une autre, l'option a visiblement été désactivée à l'installation. On peut le vérifier avec la commande suivante : 
 + 
 +``` 
 +dpkg -s unattended-upgrades 
 +``` 
 +</bootnote> 
 + 
 +``` 
 +sudo apt update && sudo apt install unattended-upgrades apt-listchanges 
 +``` 
 + 
 +<bootnote learn>Ce genre d'opération peut s'effectuer sur l'ensemble des machines, d'un seul coup, [[technique:tips:broadcast|en utilisant cette astuce]].</bootnote> 
 + 
 +`apt-listchanges` va permettre de faire une synthèse des nouveaux paquets installés, et de les envoyer par mail à une adresse dédiée. Les personnes de l'équipe technique pourront se connecter au compte depuis un client IMAP quelconque et jeter un œil aux différentes mises à jour. 
 + 
 +#### Choisir les paquets à mettre à jour  
 + 
 +La configuration par défaut se trouve dans `/etc/apt/apt.conf.d/50unattended-upgrades`. Modifier la section suivante pour n'activer que les mises à jour de sécurité. On pourrait aussi activer les corrections de bug, mais ce n'est pas critique, on veut garder un maximum le contrôle sauf quand on parle de sécurité "vitale"
 + 
 +``` 
 +Unattended-Upgrade::Origins-Pattern { 
 +  "origin=Debian,codename=${distro_codename},label=Debian-Security"; 
 +
 +``` 
 + 
 +Désactiver la mise à jour automatique de `grub` et du noyau : 
 + 
 +``` 
 +Unattended-Upgrade::Package-Blacklist { 
 +  "linux-headers*"; 
 +  "linux-image*"; 
 +  "linux-generic*"; 
 +  "linux-modules*"; 
 +  "grub-*"; 
 +}; 
 +``` 
 + 
 +Remplir la ligne suivante : 
 + 
 +``` 
 +Unattended-Upgrade::Mail "tech@picasoft.net"; 
 +Unattended-Upgrade::MailOnlyOnError "true"; 
 +``` 
 + 
 +Elle indique qu'un rapport de mise à jour sera envoyé à `tech@picasoft.net`, **uniquement en cas d'erreur**. On configurera plus loin dans cette page le programme permettant d'envoyer de tels mails. :-D 
 + 
 +S'assurer que le redémarrage automatique est **désactivé** : 
 + 
 +``` 
 +Unattended-Upgrade::Automatic-Reboot "false"; 
 +``` 
 + 
 +#### Choisir les moments d'activation 
 + 
 +L'activation automatique des mises à jour se configure dans `/etc/apt/apt.conf.d/20auto-upgrades`. On vérifie qu'il continue les valeurs suivantes : 
 + 
 +``` 
 +APT::Periodic::Update-Package-Lists "1"; 
 +APT::Periodic::Unattended-Upgrade "1"; 
 +``` 
 + 
 +<bootnote learn>Le `1` indique que ces mises à jour sont faites une fois par jour (par un timer `systemd`). Pour configurer ce comportement plus finement, on pourra étudier et configurer le fichier `/etc/apt/apt.conf.d/02periodic`.</bootnote> 
 + 
 +### Envoyer un mail lors des mises à jour 
 + 
 +<bootnote>On suppose que les machines ont la [[technique:adminsys:tips:mail|capacité d'envoyer des mails via le serveur mail de Picasoft]].</bootnote> 
 + 
 +Éditer le fichier `/etc/apt/listchanges.conf` : 
 + 
 +``` 
 +frontend=pager 
 +email_address=root 
 +confirm=0 
 +save_seen=/var/lib/apt/listchanges.db 
 +which=both 
 +``` 
 + 
 +`unattended-upgrades` utilise `apt-listchanges` pour formater la sortie des mises à jour et envoyer un email à l'adresse demandée.
  • technique/adminsys/secu/automatic_updates.1611780359.txt.gz
  • de qduchemi