Informations techniques sur les connexions mode sans-agent pour les systèmes Linux
L’utilisation de connexions mode sans-agent pour superviser des systèmes Linux est possible en fournissant à Cyberwatch un compte permettant la connexion à l’actif via le protocole SSH. Le protocole SSH fournit différentes méthodes pour gérer l’authentification (mots de passe, clés SSH) des comptes à autoriser.
Créer un compte SSH avec authentification par login / mot de passe
Par exemple, il est possible d’utiliser la commande suivante :
sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'
sudo passwd cyberwatch # Attention il faudra saisir ici le mot de passe à attribuer au compte
Explications : cette commande crée un compte nommé « cyberwatch » et permet de définir le mot de passe de ce compte.
Créer un compte SSH avec authentification par clé publique / clé privée
Génération de la clé SSH
Sur une machine Linux dédiée à la génération de clés, générer une clé RSA 4096 bits :
ssh-keygen -t rsa -b 4096
Par défaut, cette clé sera sauvegardée dans les fichiers ~/.ssh/id_rsa
(clé privée) et ~/.ssh/id_rsa.pub
(clé publique).
Les clés SSH avec une passphrase ne sont pas supportées.
Création de l’utilisateur et mise en place de la clé
Sur l’actif Linux à protéger, créer un utilisateur ‘cyberwatch’ via la commande :
sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'
Depuis la machine Linux dédiée à la génération de clés, transférer la clé publique générée au point 1 vers l’actif Linux à protéger. Cela peut être réalisé avec la commande :
cat ~/.ssh/id_rsa.pub | ssh [user]@[host] 'sudo tee -a /home/cyberwatch/.ssh/authorized_keys'
en veillant à remplacer [user]
et [host]
par les paramètres de connexion de l’actif à superviser.
Optionnel - donner les droits sudoers SANS TTY à Cyberwatch
Pour certaines opérations, comme le déploiement de correctifs, l’exécution de certains scans ou la vérification de scripts de conformité, les droits sudoers sont nécessaires pour l’exécution des commandes associées sur l’actif.
Fournir ces droits n’est pas strictement nécessaire, Cyberwatch est en mesure de lancer ses scans de vulnérabilité par défaut sans avoir de droits spécifiques sur les actifs supervisés.
Vous trouverez ci-dessous une des façons de mettre en place ces droits sur vos actifs afin de permettre à Cyberwatch de réaliser les opérations mentionnées.
Sur l’actif cible, via SSH, utiliser la commande suivante :
sudo visudo
Ajouter à la fin du fichier les lignes suivantes :
# cyberwatch privileges
cyberwatch ALL=(ALL) NOPASSWD:ALL
Defaults:cyberwatch !requiretty
Explications : cette commande modifie le fichier /etc/sudoers
et configure les droits de l’utilisateur nommé « cyberwatch » de sorte à ce qu’il soit sudoer et désactive TTY.
Détail des droits sudoers minimums nécessaires pour déployer des correctifs sur les systèmes Linux
Les systèmes Linux fournissent des méthodes permettant de limiter les droits sudoers à l’utilisation de certaines commandes seulement. Cela peut être utile si vous souhaitez permettre à Cyberwatch d’effectuer certaines opérations spécifiques comme le déploiement de correctifs.
Cela ne sera cependant pas suffisant pour permettre à Cyberwatch de réaliser les analyses de conformité, car il n’est pas possible d’établir une liste complète des commandes susceptibles d’être lancées et qui nécessitent des droits sudoers.
Une façon de restreindre les droits sudoers de l’utilisateur utilisé pour la supervision d’un actif Linux est de limiter ses droits sudoers aux commandes suivantes :
id
apt-get/yum/pacman
shutdown
ss
dmidecode
docker
Voici une brève explication de pourquoi vous pourriez autoriser ces commandes :
id
est la première commande exécutée par Cyberwatch lors de la connexion à un actif, elle permet de déterminer si Cyberwatch dispose ou non de droits sudoers sur l’actifapt-get/yum/pacman
sont des gestionnaires de paquets typiquement utilisés sur les différents systèmes Linux (liste non exhaustive), ceux-ci seront utilisés par Cyberwatch lors de déploiement de correctifs en fonction du système d’exploitationshutdown
sera utilisée si vous souhaitez déclencher un redémarrage de vos actifs depuis Cyberwatchss
est utilisée pour le scan de ports, autoriser l’exécution de cette commande avec des droits sudoers permet à Cyberwatch de récupérer les processus derrière les différents portsdmidecode
est utilisée pour récupérer les métadonnées du BIOS, la commande requiert des droits sudoersdocker
sert à effectuer le scan de vulnérabilités des images Docker trouvées sur l’actif
Pour un actif utilisant apt
, un exemple de configuration du fichier /etc/sudoers
pourrait être :
# cyberwatch privileges
Cmnd_Alias CBW = /usr/bin/id, /usr/bin/apt-get, /sbin/shutdown, /usr/bin/ss, /usr/sbin/dmidecode, /usr/bin/docker
cyberwatch-agent ALL=(ALL) NOPASSWD:SETENV: CBW
Defaults:cyberwatch-agent !requiretty