Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=clean_corrupted_html
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltruefalse
Panel
titleSommaire

Table of Contents
maxLevel34
stylenone

Contexte

Cette page a pour but de vous guider pas à pas dans l'installation décrire la mise en place du pack linux-by-SSH_by_ssh. Elle vous accompagnera dans _shinken :

  • le

    Le déploiement du pack sur

    votre plateforme

    la plateforme (sur le Synchronizer et sur le ou les Pollers),

  • dans la configuration de vos connexions SSH,
  • dans la mise à jour du package d'OpenSSH
  • et dans la mise en place de pré-requis pour certains checks.

Procédure de mise en place du pack

Si vous avez déjà installé une version précédente de ce pack, il vous faudra supprimer les anciens dossiers dans lesquels le pack était présent. Pour supprimer ces dossiers, utilisez la commande suivante :

Code Block
languagebash
rm -rf /var/lib/shinken-user/libexec/linux_by_ssh
rm -rf /etc/shinken/packs/linux_by_ssh/

Ensuite transférer sur votre machine et décompressez le fichier en utilisant commande et en remplaçant "nom_du_pack_version.tar.gz" par le nom du pack qui vous est livré :

Code Block
languagebash
tar xvzf nom_du_pack_version.tar.gz -C ./

Voici un exemple plus concret :

Code Block
languagebash
tar xvzf linux_by_ssh_V02.00.tar.gz -C ./

Plaçons maintenant les différents éléments du pack au bon endroit :

Les fichiers de configuration :
  • Nous vous conseillons de créer un Collecteur de type ( cfg-file-import ) qui permet d'importer des définitions d'éléments Shinken depuis les fichiers de définitions présents dans ce pack.
  • Une fois le collecteur mis en place, nous allons déployer le pack au bon endroit :

  • En premier, le fichier de configuration :

    Code Block
    languagebash
    cp -r ./linux_by_ssh/configuration/* /etc/shinken-user/source-data/source-data-cfg-Shinken-additionalPacks/elements/linux_by_ssh/
    chown -R shinken:shinken /etc/shinken-user/source-data/source-data-cfg-Shinken-additionalPacks/packs/linux_by_ssh/
  • Ensuite les sondes :
    Code Block
    languagebash
    mkdir /var/lib/shinken-user/libexec/linux_by_ssh;
    cp -r ./linux_by_ssh/libexec/*
    /var/lib/shinken-user/libexec/linux_by_ssh/

    Une fois ces commandes exécutées, vous n'avez plus qu'à importer les nouveaux éléments depuis votre interface de configuration.

    Vous pouvez également supprimer le dossier qui a été créer suite à la décompression du pack en utilisant la commande suivante :

    Code Block
    languagebash
    rm -rf ./linux_by_ssh
    Info

    Attention à ne pas supprimer le tar.gz, connaître la version exacte du pack qui vous a été livré vous sera utile en cas de problème avec votre pack.

    • La configuration des prérequis nécessaires à l’exécution des checks.

    L'installation du pack sur l'infrastructure Shinken

    En préambule, il faut :

    1. Récupérer la dernière version du pack auprès de l'équipe Shinken ou de votre partenaire,
    2. Transférer le pack sur votre Synchronizer et votre/vos Pollers.

    Mise en place du pack avec l'installeur "install.sh" ( sur Poller / Synchronizer )

    Commun à tout Poller / Synchronizer

    Que ce soit sur un Synchronizer où sur un Pollers :

    1. Désarchiver le pack :

      Code Block
      languagetext
      themeEmacs
      tar --no-same-owner -xf NOM_DU_PACK.tar.xz
    2. Entrée dans le répertoire extrait de l'archive et lancer le "install.sh"

      Code Block
      languagetext
      themeEmacs
      cd NOM_DU_PACK/
      ./install.sh
    3. L'installeur dépose les éléments suivants :

      • Le fichier de configuration de la source "shinken-additional-packs-import" qui servira à importer la définition du pack dans le Synchronizer.
      • Les fichiers de définitions des éléments du pack, à importer dans le Synchronizer.
      • Les sondes du pack.

        Exemple de mise en place :

        Code Block
        languagetext
        themeEmacs
        =============================================
        INSTALL PACK [ linux-by-SSH__shinken ]
        =============================================
        
            -----------------------------
            |   COLLECTOR [ shinken-additional-packs-import ]
        
                => ADDING Collector cfg file
                      - Path : /etc/shinken/sources/shinken-additional-packs-import.cfg
                => CREATING Collector DATA space
                      - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
                      => ADDING Definition File [ definition_shinken-additional-packs-import.cfg ]
                             - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/definition_shinken-additional-packs-import.cfg
                      - Changing owner ( to "shinken" user )
                      - Setting rights
        
            -----------------------------
            |   MONITORING DEFINITION:
        
                => Installing definition files in source-data folder ( Collector => shinken-additional-packs-import )
                      - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
                      - Changing owner ( to "shinken" user )
                      - Setting rights
        
            -----------------------------
            |   PROBES:
        
                => Deleting previous probes
                => Installing probes
                      - Path : /var/lib/shinken-user/libexec/shinken-additional-packs/shinken-linux_by_ssh
                      - Setting owner ( to "shinken" user )
                      - Setting rights
        
        
    Note
    iconfalse

     Si une version du pack est déjà installée, elle doit être désinstallée avant d’installer la nouvelle version. L’installeur vérifiera automatiquement si l’ancienne version a été correctement supprimée et vous avertira si ce n’est pas le cas.

    Code Block
    languagetext
    themeEmacs
    ========================================================
    PRE-INSTALLATION CHECKS
    ========================================================
    
    ERROR: Previous installation detected!
    
    The following files/folders from a previous installation were found:
                  - /var/lib/shinken-user/libexec/shinken-additional-packs/linux_by_ssh-shinken
                  - /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/linux_by_ssh-shinken
                  - /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/linux_by_ssh-shinken
                  - /etc/shinken/resource.d/shinken-additional-packs-import/global-data/linux_by_ssh-shinken
    
    Please run './uninstall.sh' before installing the pack.
    
    Installation ABORTED.
    
    WARNING: Uninstallation will remove all installed config files ( .cfg ).
    This step is required for installing this new pack version.
    All manual changes to the present config files will be lost. This doesn't affect shinken Staging or Production environment.

    Sur le Synchronizer

    1. SEULEMENT si le collecteur "shinken-additional-packs-import" n'est pas déja PRÉSENT dans votre Synchronizer ( par exemple : première fois que vous utilisez un installeur de pack Shinken ) :

      Vérifier dans la configuration de votre Synchronizer ( /etc/shinken/synchronizers/synchronizer-master.cfg ) que le collecteur "shinken-additional-packs-import" soit présent dans le champ sources.

      Code Block
      languagetext
      themeEmacs
      cat /etc/shinken/synchronizers/synchronizer-master.cfg
      Code Block
      languagejs
      themeConfluence
      define synchronizer {
          [...]
          sources                   Source 1, Source 2, Source 3, shinken-additional-packs-import
          [...]
      }

      Si le collecteur "shinken-additional-packs-import" n'est pas présent, l'ajouter dans la liste puis redémarrez le Synchronizer pour que le collecteur soit pris en compte :

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de shinken strictement inferieur à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart
    2. Activer le collecteur "shinken-additional-packs-import" si ce n'est pas déja fait.

      Panel

      Image Added

    3. Lancer l'import du collecteur "shinken-additional-packs-import":

      Panel

      Image Added


      • En suivant, vous devrez peut-être accepter ou des nouveautés ou des différences qui seraient liés à ce pack ( en fonction de l'évolution du pack ).

    4. IMPORTANT : si c'est première fois que vous installez le pack, il est nécessaire de faire un dernier redémarrage du Synchronizer.

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de shinken strictement inferieur à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart

    Mise en place du pack manuellement ( si l'utilisation du script install.sh n’est pas souhaitée ) :

    Commun à tout Poller / Synchronizer

    Si vous avez déjà installé le pack

    Nous vous conseillons de supprimer les anciens dossiers dans lesquels le pack était présent, pour être sûr d'avoir la dernière version de tous les fichiers livrés.

    Pour supprimer ces dossiers, utilisez la commande suivante ( si vous avez suivi à la lettre la procédure d'installation manuelle ) :

    Code Block
    languagetext
    themeEmacs
    rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/linux_by_ssh-shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/linux_by_ssh-shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/linux_by_ssh-shinken
    rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/linux_by_ssh-shinken
    Extraire le pack

    Transférer sur votre machine et décompressez le fichier contenant le pack à l'aide de la ligne de commande ci-dessous ( en remplaçant "PACK__shinken__NON-DU-PACK__VERSION__OS.tar.gz" par le nom du pack qui vous est livré.

    • Pour Linux  ( le paramètre --no-same-owner permet de ne pas conserver les attributs d'utilisateurs/roles présent de la création du pack  ) :
    Code Block
    languagetext
    themeEmacs
    tar -xjfv --no-same-owner PACK__shinken__NON-DU-PACK__VERSION__linux.tar.xz -C ./
    • Pour Windows ( Rôle de Poller ) :
    Code Block
    languagetext
    themeEmacs
    tar -xvzf PACK__shinken__NOM-DU-PACK__VERSION__windows.tar.gz -C ./

    Entrez dans le répertoire créér :

    Code Block
    languagetext
    themeEmacs
    cd NOM_DU_PACK/
    Les sondes ( mises en place )

    On place les sondes :

    Code Block
    languagetext
    themeEmacs
    probe_path="/var/lib/shinken-user/libexec/shinken-additional-packs/shinken-linux_by_ssh"
    mkdir --parents $probe_path
    cp -r ./probes/* $probe_path
    chown -R shinken:shinken $probe_path
    chmod -R 750 $probe_path

    Sur le Synchronizer

    Ensuite, plaçons maintenant la définition des éléments de supervision du pack au bon endroit :

    • Les fichiers de configuration :
      • Nous vous conseillons de créer un Collecteur de type ( cfg-file-import ) qui permet d'importer des définitions d'éléments Shinken depuis les fichiers de définitions présents dans ce pack.
      • Une fois le collecteur mis en place, nous allons déployer le pack au bon endroit :

        • En premier, les fichiers de définition des éléments ( modèles d'hôtes, checks, commandes, ... )  du pack :

          Code Block
          languagetext
          themeEmacs
          shinken_collector_data_path="/etc/shinken-user/source-data/source-data-shinken-additional-packs-import"
          cp -r ./monitoring-definitions/packs/* $shinken_collector_data_path
          chown -R shinken:shinken $shinken_collector_data_path
          chmod -R 744 $shinken_collector_data_path
        • Ensuite, les données globales

          Code Block
          languagetext
          themeEmacs
          shinken_pack_globaldata_path="/etc/shinken/resource.d/shinken-additional-packs-import"
          mkdir --parents $shinken_pack_globaldata_path
          cp -r "./monitoring-definitions/global-data" "$shinken_pack_globaldata_path"
          chown -R shinken:shinken "$shinken_pack_globaldata_path"
          chmod -R 744 "$shinken_pack_globaldata_path"
    • Redémarrer le Synchronizer

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de shinken strictement inférieures à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart


    • Activer le collecteur  "shinken-additional-packs-import" :

      Panel

      Image Added

    • Lancer l'import du collecteur "shinken-additional-packs-import",

      Panel

      Image Added


      • En suivant, vous devrez peut-être accepter les nouveautés / différences qui seraient liés à ce pack ( en fonction de l'évolution du pack ).

    • IMPORTANT : si c'est première fois que vous installez le pack, il est nécessaire de faire un dernier redémarrage du Synchronizer.

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de shinken strictement inferieur à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart

    Vous pouvez également supprimer le dossier qui a été créé suite à la décompression du pack en utilisant la commande suivante :

    Code Block
    languagetext
    themeEmacs
    rm -rf ./linux_by_ssh
    Info

    Attention à ne pas supprimer le tar.gz, connaître la version exacte du pack qui vous a été livré vous sera utile en cas de problème avec votre pack.

    Si vous avez déjà installé une version précédente de ce pack, il vous faudra supprimer les anciens dossiers dans lesquels le pack était présent ( afin d'éviter de garder d'ancien fichier en cas d'évolution de la structure du pack ).

    Pour supprimer ces dossiers, utilisez la commande suivante :

    Code Block
    languagetext
    themeEmacs
    rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/linux_by_ssh-shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/linux_by_ssh-shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/linux_by_ssh-shinken
    rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/linux_by_ssh-shinken

    Désinstaller le pack avec "uninstall.sh"

    Entrée dans le répertoire extrait de l'archive et lancer le "uninstall.sh"

    Code Block
    languagetext
    themeEmacs
    cd PACK__linux-by-SSH__shinken__VXX.XX.XX-final__Linux
    ./uninstall.sh

    Ce mécanisme va seulement enlever les fichiers mis en place lors de l'installation ( Fichier du collecteur d'import, définition des éléments de supervision, et les sondes proposées ), mais ne touchent pas aux éléments que vous avez absorbés dans le Synchronizer.


    Code Block
    languagetext
    themeEmacs
    =============================================
    DELETE PACK [ linux-by-SSH__shinken ]
    =============================================
    
        -----------------------------
        |   COLLECTOR [ shinken-additional-packs-import ]
    
            => Deleting collector configuration file
                  - Path : /etc/shinken/sources/shinken-additional-packs-import.cfg
            => Deleting collector data folder
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
    
        -----------------------------
        |   MONITORING DEFINITION:
    
            => Deleting pack globaldata folder
                  - Path : /etc/shinken/resource.d/shinken-additional-packs-import/
    
        -----------------------------
        |   PROBES:
    
            => Deleting probes
                  - Path : /var/lib/shinken-user/libexec/shinken-additional-packs/shinken-linux_by_ssh



    Info

    À noter :   Vous devrez retirer les éléments importés dans le Synchronizer ( modèles d'hôtes, checks, ... ) via les actions de masses .

    Pré-requis pour l'exécution des checks

    Pour l'exécution correcte des commandes du pack linux-by-SSH, vous aurez besoin d'une connexion SSH.


    Cette section est décrite dans la page Configuration du linux supervisé par le pack linux-by-SSH__shinken

    Erreurs lors de l'utilisation du pack

    Pour toute erreur survenue lors de l'exécution des checks, voir la page Erreurs du pack linux-by-SSH__shinken

    Import des modifications suite à une mise à jour de Shinken

    Après avoir effectué une mise à jour de Shinken et en cas de modification du pack linux_by_ssh, les mises à jour seront mises à votre disposition sous la forme d'un fichier tar.gz.

    Vous devrez suivre les mêmes étapes que lors de la mise en place de ce pack.

    Comment configurer la connexion SSH ?

    Pour l'exécution correcte des commandes du pack linux_by_ssh, vous aurez besoin d'une connexion SSH.

    Quelques informations au préalable sont nécessaires pour la bonne compréhension de cette partie.

    D'une part, du côté de l'architecture Shinken, l'exécution des commandes sont réalisées par les Pollers, en tant qu'utilisateur "shinken". Comme pour tous les serveurs hébergeant Shinken, cet utilisateur est un utilisateur sans mot de passe par défaut. ( les connexions SSH vers les serveurs Shinken via cet utilisateur ne sont donc possibles qu'avec une clé SSH )

    D'autre part, du côté des machines Linux supervisées, un nom d'utilisateur, et une clé SSH ou mot de passe sont requis. Dans le modèle linux_by_ssh, des données sont prévues à cet effet.

    Nous conseillons l'utilisation d'un utilisateur spécifique (pour le service de supervision) ainsi que l'utilisation d'une connexion via clé SSH, afin d'éviter l'utilisation du super utilisateur root qui n'est pas requis par les checks.

    Info
    titleRemarque

    Si vous utilisez le pack linux_by_ssh pour superviser vos serveurs hébergeant Shinken, vous pouvez utiliser l'utilisateur déjà créé et utilisé par Shinken Entreprise : shinken. 

    Si vous choisissez cet utilisateur, vous n'aurez pas besoin de données particulières pour vos modèles d'hôte "linux_by_ssh", "linux_by_ssh_advanced" et "linux_by_ssh_extra" car les valeurs par défaut à l'installation de shinken suffiront ( voir le tableau de données plus bas dans cette page ).

    Il faudra par contre réaliser les autorisations manuelles via clé SSH.

    Info
    titleCas Particulier

    Par défaut, vos serveurs Shinken autorisent les connexions SSH émises par l'utilisateur shinken de leur propre serveur.

    Donc dans le cas d'une installation rapide, le Poller pourra exécuter avec succès les requêtes SSH envoyées sur lui même, sans que vous ne fassiez de manipulations avec les clés.

    Côté client (machine ou serveur Linux supervisé)

    Si votre utilisateur de supervision n'est pas déjà créé sur votre linux à superviser, depuis un terminal de la machine supervisée "linux-1" ( en root ), il faut créer un nouvel utilisateur local avec mot de passe ( dans cet exemple user-service-shinken mais vous pouvez créer un autre utilisateur )

    Code Block
                   [root@linux-1 ~]# adduser -m -r user-service-shinken 
    [FACULTATIF] : [root@linux-1 ~]# passwd user-service-shinken
    Info
    Notez que la mise en place d'un mot de passe pour cet utilisateur n'est pas obligatoire, mais il vous faudra copier la clé SSH via la méthode manuelle expliquée plus bas car la commande automatique ssh-copy-id requiert un mot de passe pour l'utilisateur du système de destination.

    Côté serveur Poller

    Copie de la clé SSH de votre utilisateur de supervision "user-service-shinken" depuis le serveur Poller "shinken-poller" ( pour cet exemple ), vers le serveur supervisé "linux-1" ( dans cet exemple, IP : 192.168.1.19

    Copie clé SSH via commande ssh-copy-id

    Soit via la méthode "automatique" via la commande ssh-copy-id en se connectant au préalable via l'utilisateur shinken sur le ou les serveurs pollers :

    Code Block
    languagebash
    [root@shinken-poller ~]# su - shinken
    [shinken@shinken-poller ~]#  ssh-copy-id -i ~/.ssh/id_rsa user-service-shinken@linux-1
    The authenticity of host '192.168.1.19 (192.168.1.19)' can't be established.
    RSA key fingerprint is 00:ff:ee:dd:cc:bb:aa:d6:d3:79:1d:f6:93:47:80:27.
    Are you sure you want to continue connecting (yes/no)? yes
    user-service-shinken@linux-1's password: XXXXXXXXXXX
    Now try logging into the machine, with "ssh 'user-service-shinken@linux-1'", and check in:
      .ssh/authorized_keys
    to make sure we haven't added extra keys that you weren't expecting.

    Copie clé SSH via commande ssh

    Soit via une commande SSH depuis le serveur Poller, il s'agit d'ajouter la clé publique au fichier "authorized_keys" du serveur supervisé ( ici vm2 ) :

    Code Block
    languagebash
    cat /var/lib/shinken/.ssh/id_rsa.pub | ssh root@vm2 "cat >> /var/lib/shinken/.ssh/authorized_keys"

    Ici la connexion se fait via l'utilisateur root du serveur vm2 ( mais vous pouvez utiliser votre propre utilisateur ), le but étant de rajouter, en une commande SSH, la clé de l'utilisateur shinken du Poller /var/lib/shinken/.ssh/id_rsa.pub à la fin du fichier /var/lib/shinken/.ssh/authorized_keys du serveur supervisé.

    Copie clé SSH manuellement

    Soit via méthode "manuelle" via rajout de la clé dans le fichier authorized_keys

    • Récupérez la clé publique de l'utilisateur qui va établir la connexion SSH, et la copier
    Code Block
    languagebash
    [root@shinken-poller ~]# su - shinken
    [-bash-4.1]$ less .ssh/id_rsa.pub
    
    -> copiez la clé
    • Connectez vous sur le serveur linux supervisé avec votre utilisateur de supervision et collez cette clé dans le fichier "authorized_keys" de l'utilisateur de supervision:
    Code Block
    languagebash
    [root@linux-1 ~]# su - user-service-shinken
    [-bash-4.1]$ vi .ssh/authorized_keys
    
    -> collez la clé

    Test de connexion

    Test de connexion au serveur "remote-host" en tant qu'utilisateur user-service-shinken via l'utilisateur du Poller ( shinken ) :

    Code Block
    [root@shinken-poller ~]# su - shinken
    [shinken@shinken-poller ~]# ssh user-service-shinken@linux-1 -i .ssh/id_rsa

    La connexion doit s'établir avec succès.

    Côté interface de configuration

    Dans chaque hôte héritant du modèle d'hôte "linux_by_ssh", "linux_by_ssh_advanced" ou "linux_by_ssh_extra", vous aurez 4 données concernant la connexion SSH, ces 4 données seront par la suite utilisées par tous les checks.

    Contrairement aux autres données, les valeurs par défaut de celles-ci sont configurées dans un certain fichier en central ( serveur hébergeant l'Arbiter ) /etc/shinken/resource.d/ssh.cfg.

    DonnéeDescriptionValeur par défautValeur par défaut à l'installation de shinkenSSH_KEY

    Répertoire de la clé générée sur votre serveur hébergeant le démon Poller

    $SSH_KEY$~/.ssh/id_rsaSSH_KEY_PASSPHRASE

    Mot de passe utilisé pour l'authentification de l'utilisateur ou pour utiliser la clé privée ("Passphrase") si nécessaire

    $SSH_KEY_PASSPHRASE$''SSH_PORT

    Port de connexion SSH

    $SSH_PORT$22SSH_USER

    Utilisateur pour la connexion SSH

    $SSH_USER$shinken
    Info
    titleRemarque
    • Toutes les valeurs par défaut renvoient à une globale ( voir la page LES VARIABLES ( Remplacement dynamique de contenu - Anciennement les MACROS ) ) qui sont modifiables dans le fichier /etc/shinken/resource.d/ssh.cfg, attention cependant, la modification dans le fichier direct entraînera une modification sur tous les hôtes utilisant ces globales.
    • La modification des valeurs par défaut présentes dans le fichier du serveur ( /etc/shinken/resource.d/ssh.cfg ) nécessite un redémarrage intégrale du service shinken ( service shinken restart ).

    Par exemple, voici le paramétrage d'une connexion via clé SSH par défaut :

    Image Removed

    Image Removed

    Par exemple, voici le paramétrage d'une connexion via Utilisateur/Mot de passe :

    Image Removed

    Mise à jour d'OpenSSH

    Ce script peut ne pas fonctionner correctement avec les versions d'OpenSSH antérieure à la 6, dû à une impossibilité de modifier les droits des fichiers et donc de faire fonctionner le script hors root lors des accès à la commande "lastb" à distance.

    Nous vous conseillons donc de mettre à jour votre version d'OpenSSH, ce qui garantira également une meilleure sécurité sur votre environnement. Attention, par précaution, assurez vous d'avoir une session console au serveur sur lequel vous souhaitez réaliser la mise à jour.

    En général

    Sur la plupart des distributions encore à jour les versions d'OpenSSH 6 ou supérieures se trouvent déjà dans les dépôts officiels, il vous suffit donc de réaliser votre commande de mise à jour, quelques exemples :

    Info
    titleNote

    Les commandes peuvent s'étendre à d'autres distributions non répertoriées

    Centos 7 et Redhat

    Code Block
    languagebash
    yum update openssh

    Debian et Ubuntu

    Code Block
    languagebash
    apt-get upgrade openssh

    ArchLinux et autres

    Code Block
    languagebash
    pacman -Syu openssh

    Sur Centos 6.6

    Voici les différentes commandes : ( un exemple ici avec la version OpenSSH 7.6 Officielle, mais vous pouvez prendre la dernière version disponible sur le site officiel )

    Installation de quelques paquets

    Code Block
    languagebash
    yum install rpm-build gcc make wget openssl-devel krb5-devel pam-devel libX11-devel xmkmf libXt-devel

    Téléchargement

    Code Block
    languagebash
    wget https://mirrors.ircam.fr/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz

    Extractions et copies

    Code Block
    languagebash
    tar xvf openssh-7.6p1.tar.gz
    mkdir -p /root/rpmbuild/{SOURCES,SPECS}
    cp ./openssh-7.6p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
    cp openssh-7.6p1.tar.gz /root/rpmbuild/SOURCES/

    Paramétrage Specs

    Code Block
    languagebash
    cd /root/rpmbuild/SPECS/
    sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh.spec
    sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh.spec
    sed -i -e "s/BuildPreReq/BuildRequires/g" openssh.spec

    Build du RPM et installation

    Code Block
    languagebash
    rpmbuild -bb openssh.spec
    
    cd /root/rpmbuild/RPMS/x86_64/
    
    rpm -Uvh *.rpm

    Redémarrez votre service sshd :

    Code Block
    languagebash
    service sshd restart

    Vous pouvez vérifier votre version avec :

    Code Block
    languagebash
    rpm -qa | grep openssh

    Si vous avez quelconques problèmes vous pouvez revenir sur l'ancienne version avec : 

    Code Block
    languagebash
    yum downgrade openssh-server
    Info

    Si vous utilisez l'utilisateur "shinken" (par défaut) avec une connexion via clé RSA, il se peut que suite à la mise à jour, vos scripts affichent un message de problème d'authentification ( [ERROR] Connection failed 'Authentification failed' ), sur le serveur sur lequel vous avez mis à jour SSH, veuillez réinitialiser l'utilisateur en lui supprimant son mot de passe ( par défaut ) avec la commande :

    passwd -d shinken

    Pré-requis pour certains checks

    Certains checks requièrent un accès spécifique à des fichiers. Pour se faire une commande est à votre disposition. Cette commande permettra au groupe de l'utilisateur choisi pour votre supervision Shinken d'avoir un accès ( en lecture seule ) au fichier /var/log/btmp ( pour le check Connections Failed SSH ) et au fichier /etc/ssh/sshd_config ( pour le check Security SSH ), fichiers comportant vos logs de connexions échouées et votre configuration SSH. Sans cet accès les sondes ne fonctionneront pas et vous renverront le statut "Unknown".

    Info
    titleRemarque

    Cette commande ne peut être effectuée qu'en ayant les droits root. Donc en étant connecté au compte root ou en ayant fait la commande "su" au préalable.

    Fonctionnement

    La commande modifie le fichier /usr/lib/tmpfiles.d/var.conf qui est chargé de rétablir les droits au redémarrage de la machine. Ce fichier n'est pas disponible sur toutes les distributions Linux, vous pourrez alors avoir une erreur, "no such file or directory", cela n'affecte en rien l'application de la commande.

    Ensuite le fichier /etc/logrotate.conf sera modifié de la même façon pour qu'à la rotation des logs (tous les mois par défaut) les droits ne soient pas rétablis.

    Pour finir nous changeons donc les droits des fichiers /var/log/btmp et /etc/ssh/sshd_config pour permettre au groupe utilisé pour la supervision ( et donc son utilisateur ) de les lire.

    Exécution de la commande

    Pour donner un accès en lecture seule au fichier /var/log/btmp et au fichier /etc/ssh/sshd_config au groupe shinken, en root depuis le serveur à superviser, exécutez : 

    Code Block
    languagebash
    titleUtilisation
    sed -i -e "s/btmp 0600 root utmp/btmp 0640 root shinken/g" /usr/lib/tmpfiles.d/var.conf ; sed -i -e "s/create 0600 root utmp/create 0640 root shinken/g" /etc/logrotate.conf ; chmod 640 /var/log/btmp /etc/ssh/sshd_config ; chown root:shinken /var/log/btmp /etc/ssh/sshd_config