57 votes

Quelle est l'urgence d'un *** Redémarrage du système requis *** pour la sécurité ?

Pour apprendre un peu d'administration de serveur, j'ai mis en place un simple serveur Ubuntu 14.04 sur lequel je fais tourner un site web personnel. Je l'ai configuré pour qu'il installe automatiquement les mises à jour de sécurité, mais pas les autres mises à jour. Cela semble fonctionner assez bien. De temps en temps, lorsque je me connecte au serveur (avec ssh), j'obtiens un message disant :

*** System restart required ***

Les fois où cela s'est produit, j'ai simplement redémarré Ubuntu et tout est rentré dans l'ordre. C'est normal, car il s'agit d'un simple site web personnel. Ce que je me demande cependant, c'est comment cela fonctionne pour les serveurs web qui devraient être opérationnels 99,9999etc% du temps ? Ne redémarrent-ils tout simplement pas et risquent-ils d'être victimes d'une violation de la sécurité parce que les mises à jour de sécurité ne sont pas installées (ce que je ne peux imaginer) ? Ou bien prennent-ils le temps d'arrêt pour acquis (ce que je ne peux pas non plus imaginer) ?

Comment dois-je gérer cette situation s'il s'agit d'un serveur de production très important que je veux maintenir en fonctionnement ? Tous les conseils sont les bienvenus !

[EDIT] Je sais que je peux faire cat /var/run/reboot-required.pkgs pour lister les paquets qui provoquent le redémarrage. La commande donne actuellement les résultats suivants :

linux-image-3.13.0-36-generic
linux-base
dbus
linux-image-extra-3.13.0-36-generic
linux-base

mais comment puis-je savoir si les mises à jour sont des petites choses ou si j'ai une sérieuse vulnérabilité de sécurité si je ne fais pas le redémarrage ?

[EDIT2] Ok, j'ai maintenant combiné les commandes que j'ai trouvé utiles en une seule :

xargs aptitude changelog < /var/run/reboot-required.pkgs | grep urgency=high

Si cela ne donne rien, il ne semble pas y avoir de problèmes de sécurité d'une grande urgence.

Une dernière question cependant : est-ce que low , medium y high les seules possibilités d'urgence, ou en existe-t-il d'autres comme par exemple critical o extremelyimportant ?

48voto

Il n'y a pas de réponse simple car cela dépend des mises à jour effectuées. Si le noyau présente un grave problème de sécurité, il est bon de le redémarrer dès que possible. Si le noyau n'a subi que des corrections mineures, le redémarrage peut être reporté.

Si vous garantissez une disponibilité > 99,9 %, vous aurez presque toujours un système en grappe où vous pouvez redémarrer les nœuds un par un sans interrompre le service.

Il faut donc redémarrer le premier système et le rattacher au cluster. Puis le second et ainsi de suite. Ainsi, le service ne sera jamais indisponible.

3voto

user2658174 Points 31

addon pour la solution du thème

J'effectue une vérification similaire pour la "nécessité de redémarrage" du système de surveillance zabbix.

Je vois 2 problèmes dans la solution 'Topic' :

  1. L'aptitude fonctionne généralement mal dans les scripts. Je tue quelques heures mais je n'ai toujours pas réussi à le faire fonctionner avec zabbix.
  2. si seulement 1 changelog inclut urgent mise à jour - votre contrôle donnera toujours des résultats positifs

Ma logique est la suivante :

  1. Vérifiez dernier changement seulement dans le changelog pour chaque paquet qui nécessite un redémarrage du système
  2. En tant que sortie, montrez seulement plus haute priorité mise à jour

Utilisation de Documentation Debian J'ai trouvé 5 valeurs possibles pour 'urgency' et aussi le fait qu'il peut être suivi par des caractères égaux ("=") ou des points-virgules (" :"). Il peut également y avoir des caractères majuscules et minuscules.

Je me suis donc retrouvé avec ce qui suit :

#!/bin/bash
##################################
# Zabbix monitoring script
#
# Checking urgency in changelog 
# for updates which require system restart
#
##################################
# Contact:
#  anton.lugovoi@yandex.ru
##################################
# ChangeLog:
#  20151205    initial creation
#  20151208    check uniq packages only 
##################################

case "$1" in

status)
    if [ -f /var/run/reboot-required ]; then
      echo 1
    else
      echo 0
    fi 
    ;;

urgency)
    if [ -f /var/run/reboot-required.pkgs ]; then
      while read pkg; do
        tmp=`/usr/bin/apt-get changelog $pkg | \
             /bin/grep -m1 -ioP '(?<=[Uu]rgency[=:])(low|medium|high|emergency|critical)' | \
             tr '[:upper:]' '[:lower:]'`
        if [ -n $tmp ]; then
          if   [ "$tmp" == "low" ] && \
               [ "$urgency" != "medium" ] && \
               [ "$urgency" != "high" ] && \
               [ "$urgency" != "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=low
          elif [ "$tmp" == "medium" ] && \
               [ "$urgency" != "high" ] && \
               [ "$urgency" != "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=medium
          elif [ "$tmp" == "high" ] && \
               [ "$urgency" != "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=high
          elif [ "$tmp" == "emergency" ] && \
               [ "$urgency" != "critical" ]; then 
            urgency=emergency
          elif [ "$tmp" == "critical" ]; then 
            urgency=critical
            break
          fi
        fi 
      done < <(sort -u /run/reboot-required.pkgs)
    else
      urgency=none
    fi

    case "$urgency" in
        none)      urgency=0 ;;
        low)       urgency=1 ;;
        medium)    urgency=2 ;;
        high)      urgency=3 ;;
        emergency) urgency=4 ;;
        critical)  urgency=5 ;;
        *)         urgency=42 ;;
    esac

    echo $urgency
    ;;
esac
exit 0

En conséquence :

  • reboot_required_check.sh status renvoie 1 si le redémarrage est nécessaire, 0 si ce n'est pas le cas.
  • reboot_required_check.sh urgency renvoie le niveau d'"urgence" le plus élevé ou "0" si le redémarrage n'est pas nécessaire.

J'espère que cela aidera quelqu'un à gagner du temps ;)

0voto

rom Points 101

Ce que je me demande, c'est comment cela fonctionne pour les serveurs web qui devraient être opérationnels 99.9999etc% du temps ? Ne redémarrent-ils pas tout simplement et risquent d'avoir une faille de sécurité parce que les mises à jour de sécurité ne sont pas de sécurité ne sont pas installées (ce que je ne peux pas imaginer) ? Ou bien prennent-ils le temps d'arrêt pour pour acquis (ce que je ne peux pas non plus imaginer) ?

Les gros serveurs web sont redémarrés lorsque * Redémarrage du système requis * apparaît pour des raisons de sécurité.

Mais cela est transparent pour l'utilisateur et le site n'est jamais en panne car les gros serveurs gèrent souvent deux ou trois serveurs qui stockent exactement les mêmes fichiers et affichent le même site. Le premier est le serveur principal tandis que les deux autres sont secondaires et ne sont utilisés que lorsque le serveur principal est en panne.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X