Ce didacticiel va vous montrer comment configurer une mise à jour de sécurité automatique, c'est-à-dire des mises à niveau sans surveillance, sur Ubuntu. Si vous ne vivez pas sous une grotte, vous connaissez probablement la violation massive de données d'Equifax. 143 millions d'informations sur les clients d'Equifax, y compris le nom, le numéro de sécurité sociale, la date de naissance, le permis de conduire, 200 000 numéros de carte de crédit, ont été volées entre mai et juillet 2017.
En mars 2017, une vulnérabilité critique dans Apache Structs a été découverte et la fondation Apache a publié un correctif lorsqu'elle a annoncé l'existence de la vulnérabilité. Cependant, Equifax n'a pas corrigé la vulnérabilité pendant deux mois, ce qui a entraîné une violation massive des données. Les entreprises exécutant des applications complexes peuvent avoir besoin d'effectuer des tests approfondis avant d'installer les mises à jour, mais si vous disposez d'un simple serveur Linux pour un usage personnel, vous pouvez activer la mise à jour de sécurité automatique pour corriger les vulnérabilités dès que possible.
Configurer la mise à jour de sécurité automatique (mises à niveau sans surveillance) sur le serveur Ubuntu
Tout d'abord, installez les unattended-upgrades
paquet.
sudo apt update sudo apt install unattended-upgrades
Vous devez installer le update-notifier-common
package afin de configurer le redémarrage automatique.
sudo apt install update-notifier-common
Modifiez ensuite les 50unattended-upgrades
fichier.
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Dans ce fichier, vous pouvez configurer les packages qui doivent être automatiquement mis à jour. Par défaut, seules les mises à jour de sécurité seront automatiquement installées, comme indiqué par les lignes suivantes. Il n'est donc pas nécessaire de modifier cette section.
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; // Extended Security Maintenance; doesn't necessarily exist for // every release and this system may not have it installed, but if // available, the policy for updates is such that unattended-upgrades // should also install from here by default. "${distro_id}ESMApps:${distro_codename}-apps-security"; "${distro_id}ESM:${distro_codename}-infra-security"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; };
- La première origine
"${distro_id}:${distro_codename}"
est nécessaire, car les mises à jour de sécurité peuvent extraire de nouvelles dépendances à partir de sources non liées à la sécurité. Cette origine ne fournit pas de mises à jour logicielles. - La deuxième origine concerne les mises à jour de sécurité régulières.
- Les troisième et quatrième origines (ESMApps et ESM) sont destinées à la maintenance de sécurité étendue, c'est-à-dire pour ceux qui exécutent une version d'Ubuntu en fin de vie. Vous pouvez le laisser tel quel.
Notification par e-mail
Parfois, Ubuntu peut échouer à installer les mises à jour de sécurité, une mise à jour manuelle est donc nécessaire. Si vous souhaitez recevoir des notifications par e-mail après chaque mise à jour de sécurité, recherchez la ligne suivante et décommentez-la. (Supprimez les doubles barres obliques au début.)
Ubuntu 18.04
//Unattended-Upgrade::Mail "root";
Ubuntu 20.04
//Unattended-Upgrade::Mail "";
Vous pouvez spécifier une adresse e-mail pour recevoir des notifications comme ci-dessous.
Unattended-Upgrade::Mail "[email protected]";
Si vous préférez recevoir des notifications par e-mail uniquement en cas d'erreur lors de la mise à jour de sécurité, décommentez la ligne suivante.
Ubuntu 18.04
//Unattended-Upgrade::MailOnlyOnError "true";
Sur Ubuntu 20.04, vous devez trouver la ligne suivante
//Unattended-Upgrade::MailReport "on-change";
Décommentez-le et remplacez-le par
Unattended-Upgrade::MailReport "only-on-error";
Supprimer automatiquement les dépendances inutilisées
Vous devez probablement faire sudo apt autoremove
après chaque mise à jour, retrouvez donc la ligne suivante :
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
Décommentez cette ligne et changez false
à true
.
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Redémarrage automatique
Lorsqu'une mise à jour de sécurité pour le noyau Linux est installée, vous devez redémarrer le serveur Ubuntu afin d'appliquer la mise à jour du noyau. Si le serveur n'est utilisé que par vous ou quelques personnes, l'activation du redémarrage automatique peut être pratique. Trouvez la ligne suivante.
//Unattended-Upgrade::Automatic-Reboot "false";
Décommentez-le et changez false
à true
pour activer le redémarrage automatique
Unattended-Upgrade::Automatic-Reboot "true";
Vous pouvez également spécifier l'heure à laquelle le redémarrage sera effectué. Par défaut, le redémarrage est effectué immédiatement après l'installation de la mise à jour du noyau. Je l'ai configuré pour redémarrer à 4 heures du matin. Assurez-vous de définir un fuseau horaire correct pour votre serveur.
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Enregistrez et fermez le fichier.
Si le serveur est utilisé par de nombreux utilisateurs ou nécessite une disponibilité élevée (comme ce blog), vous ne devez pas activer le redémarrage automatique. Au lieu de cela, vous pouvez utiliser Canonical livepatch pour corriger le noyau Linux sans redémarrage.
- Service LivePatch canonique :patcher le noyau Linux sur Ubuntu sans redémarrage
Activer la mise à jour automatique de la sécurité
Maintenant que la mise à jour de sécurité automatique est configurée, nous devons l'activer en créant les 20auto-upgrades
fichier.
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Copiez et collez les deux lignes suivantes dans le fichier.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
- La première ligne rend
apt
faire "apt-get update
” automatiquement chaque jour. S'il est réglé sur 2, alors tous les deux jours. (0=désactivé) - La deuxième ligne rend
apt
pour installer automatiquement les mises à jour de sécurité. (1=activé, 0=désactivé)
Enregistrez et fermez le fichier.
Exécuter la mise à niveau sans surveillance à une heure précise
La mise à niveau sans surveillance est exécutée de manière aléatoire entre 00h00 et 7h00, afin d'éviter les pics de charge sur les serveurs miroirs dus au fait que tout le monde exécute des mises à jour en même temps. Vous pouvez exécuter manuellement la mise à niveau sans surveillance avec :
sudo unattended-upgrade -v
Vous pouvez également ajouter cette commande à votre tâche Cron.
sudo crontab -e
Ajoutez la ligne suivante au bas de votre fichier Crontab, afin que la mise à niveau sans surveillance s'exécute tous les jours à 2 heures du matin.
0 2 * * * sudo /usr/bin/unattended-upgrade -v
Configuration du relais SMTP
Afin de recevoir des notifications par e-mail après chaque mise à jour de sécurité, votre serveur doit pouvoir envoyer des e-mails. S'il s'agit de votre serveur de messagerie, il ne vous reste plus qu'à installer le bsd-mailx
paquet.
sudo apt install bsd-mailx
S'il ne s'agit pas d'un serveur de messagerie, vous devez configurer un relais SMTP. Nous pouvons installer le serveur SMTP de Postfix, puis relayer les e-mails via des fournisseurs de services de messagerie.
Il existe plusieurs fournisseurs de services de messagerie (ESP) qui peut agir comme hôte relais. Certains facturent des frais minimes, d'autres offrent des quotas gratuits tous les mois. Dans cet article, j'aimerais vous montrer comment utiliser Sendinblue, qui est un fournisseur de services de messagerie qui vous permet d'envoyer gratuitement 300 e-mails par jour.
Créez un compte gratuit sur sendinblue.com. Une fois votre profil utilisateur complété, cliquez sur Transactional
onglet, vous obtiendrez vos paramètres SMTP. S'il n'y a pas de paramètres SMTP, vous devez contacter le service client Sendinblue afin d'activer le service de messagerie transactionnelle.

Vous devez maintenant configurer votre serveur SMTP Postfix pour utiliser les paramètres SMTP de Sendinblue.
Installons le serveur SMTP Postfix sur Ubuntu avec la commande suivante.
sudo apt install postfix libsasl2-modules
Lorsque vous voyez le message suivant, appuyez sur la touche Tab et appuyez sur Entrée.
Choisissez ensuite la deuxième option :Internet Site
.
Ensuite, définissez le nom de messagerie du système. Par exemple, je saisis mon nom de domaine linuxbabe.com
.
Une fois Postfix installé, ouvrez le fichier de configuration principal avec un éditeur de texte en ligne de commande comme Nano.
sudo nano /etc/postfix/main.cf
Trouvez la ligne suivante.
relayhost =
Par défaut, sa valeur est vide. Définissez la valeur de relayhost
à [smtp-relay.sendinblue.com]:587
.
relayhost = [smtp-relay.sendinblue.com]:587
Ajoutez ensuite les lignes suivantes à la fin de ce fichier.
# outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000
Enregistrez et fermez le fichier. Créez ensuite le /etc/postfix/sasl_passwd
fichier.
sudo nano /etc/postfix/sasl_passwd
Ajoutez l'hôte de relais SMTP et les informations d'identification SMTP à ce fichier comme ci-dessous. Remplacez smtp_username
et smtp_password
avec votre propre nom d'utilisateur et mot de passe qui sont fournis par SendinBlue. Notez qu'il y a deux-points entre le nom d'utilisateur et le mot de passe.
[smtp-relay.sendinblue.com]:587 smtp_username:smtp_passowrd
Enregistrez et fermez le fichier. Créez ensuite le fichier de base de données de hachage correspondant avec postmap
.
sudo postmap /etc/postfix/sasl_passwd
Vous devriez maintenant avoir un fichier /etc/postfix/sasl_passwd.db
. Redémarrez Postfix pour que les modifications prennent effet.
sudo systemctl restart postfix
Par défaut, sasl_passwd
et sasl_passwd.db
Le fichier peut être lu par n'importe quel utilisateur sur le serveur. Modifiez l'autorisation à 600 afin que seul root puisse lire et écrire dans ces deux fichiers.
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
Désormais, Postfix enverra les emails via Sendinblue.
Ajouter des adresses d'expéditeur
Cliquez sur le menu déroulant dans le coin supérieur droit du tableau de bord de votre compte Sendinblue et sélectionnez Expéditeurs et IP pour ajouter votre domaine et l'adresse de l'expéditeur.

Envoi d'e-mails de test
Nous pouvons maintenant envoyer un e-mail de test avec mailx
commande comme ci-dessous.
sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address
Si les configurations SMTP sont correctes, vous recevrez un e-mail.
L'e-mail ne s'envoie pas ?
Vous pouvez consulter le journal des e-mails (/var/log/mail.log
) pour déboguer pourquoi l'e-mail n'est pas envoyé.
Si vous enveloppez l'hôte de relais avec des crochets dans /etc/postfix/main.cf
fichier.
relayhost = [smtp-relay.sendinblue.com]:587
Ensuite, vous devez également envelopper le nom d'hôte dans /etc/postfix/sasl_passwd
fichier.
[smtp-relay.sendinblue.com]:587 [email protected]:YourGmailPassword
N'oubliez pas de regénérer le fichier de base de données de hachage.
sudo postmap /etc/postfix/sasl_passwd
Redémarrez Postfix pour que les modifications prennent effet.
sudo systemctl restart postfix
Désactiver la réception d'e-mails
Par défaut, Postfix est configuré pour accepter le courrier entrant. Vous pouvez configurer Postfix pour n'envoyer que des e-mails, mais n'accepter aucun e-mail entrant. Trouvez la ligne suivante dans /etc/postfix/main.cf
fichier.
inet_interfaces = all
Remplacez-le par le texte suivant afin que Postfix n'écoute que sur localhost.
inet_interfaces = loopback-only
Rapport par e-mail
Il existe 3 e-mails possibles envoyés par une mise à niveau sans surveillance :
- La mise à jour sans assistance a renvoyé : vrai. Cela signifie que les packages ont été installés avec succès.
- Mise à jour sans assistance renvoyée : Faux. Cela signifie qu'une erreur s'est produite lors de l'installation des mises à jour. Nécessite généralement une intervention humaine. Si vous recevez cet e-mail, vous devez exécuter manuellement
sudo apt upgrade
. - Mise à jour sans assistance renvoyée :aucune. Des mises à jour sont disponibles, mais le système a refusé de les installer.
Journaux
Les journaux se trouvent dans /var/log/unattended-upgrades/
répertoire.
Vérifier le redémarrage
Le checkrestart
La commande peut vous aider à déterminer quels processus doivent être redémarrés après une mise à niveau. Il est disponible sur debian-goodies
paquet.
sudo apt install debian-goodies sudo checkrestart