TacticalRMM : Installation du serveur et d'un premier agent

Open source RMM TacticalRMM Monitoring

Au travail, nous utilisons RG-System en tant que RMM (mais aussi pour la sauvegarde/restauration et à terme en tant qu'Endpoint Security) par le biais de l'intégrateur Berger-Levrault. Ça marche bien mais cela a un coût. Bref ce n'est pas à la portée de toutes les bourses et ce n'est pas libre.

Récemment je suis tombé sur un article de Korben (https://korben.info/gerer-flotte-ordinateur-windows.html) présentant TacticalRMM.

TacticalRMM est une alternative libre au RMM de référence SolarWinds et "gratuite" (il vous faudra sponsoriser le projet pour obtenir des agents avec le code signé afin qu'ils ne soient pas vu comme des virus par Windows).

TacticalRMM est actuellement le seul RMM open source disponible sur le marché.

L'outil présente de nombreuses fonctionnalités : Capture%20d%E2%80%99%C3%A9cran%20du%202021-07-18%2012-33-16

Même s'il ne permet pas de répondre complètement à mon cahier des charges actuel, j'ai quand même décidé de l'installer dans mon lab afin de jouer un peu avec et de suivre les évolutions. En effet la solution est jeune et évolue rapidement.

Si vous n'avez pas envi de monter votre lab, vous pouvez tester la démo ici : https://rmm.tacticalrmm.io/login

Le RMM (Remote Monitoring & Management) est un outil permettant de piloter son parc informatique depuis une plate-forme centralisée. Vous pouvez suivre l'état de vos équipements à distance (état des ressources, charge, etc) mais aussi de prendre en main à distance un PC, de déployer des logiciels...

Serveur TacticalRMM API :

  • OS : Debian 10
  • RAM : 2048
  • IP : 192.168.1.240/255.255.255.0
  • Nom d'hôte : srv-rmm
  • Domaine de portée locale : labo.lan
  • FQDN : srv-rmm.labo.lan

Serveur Windows :

  • OS : Windows 2016
  • RAM : 2048
  • IP : 192.168.1.230/255.255.255.0
  • Nom d'hôte : DC201601
  • Domaine de portée locale : labo.lan
  • FQDN : dc201601.labo.lan

  • Avoir un logiciel pour l'authentification 2FA. J'utilise Authy sur Android.

  • Domaine : labo.lan
  • Frontend : rmm.labo.lan
  • API : api.labo.lan
  • Meshcentral : mesh.labo.lan

Par défaut le script d'installation utilise Let's Encrypt. Vu que nous allons travailler en local, j'utilise un nom de domaine de portée locale labo.lan. Par conséquent il vous faut monter une PKI afin de générer un certificat de type wildcard. Vous trouverez ici comment monter la PKI https://blog.raspot.in/fr/blog/crowdsec-installation-et-securisation-du-serveur-local-api#cration-du-certificat-auto-sign

Lors du renseignement du fqdn, il faudra saisir : *.labo.lan. Bon faudra modifier mon script, car celui va générer des fichiers et dossiers avec l'astérisque. J'ai monté la PKI sur mon serveur RMM.

Une fois le certificat de l'autorité de certification généré, il faut l'ajouter au magasin :

cp Pki/CA/ca.crt /usr/local/share/ca-certificates/
update-ca-certificates

On stockera le certificat serveur et la clé privée : /opt/pki/certs/wildcard.labo.lan/ Créez le dossier suivant et les raccourcis vers le certificat et la clé privée (on en aura besoin pour plus tard) :

mkdir -p /etc/letsencrypt/live/labo.lan/
ln -s /opt/pki/certs/wildcard.labo.lan/wildcard.labo.lan.key /etc/letsencrypt/live/labo.lan/fullchain.pem
ln -s /opt/pki/certs/wildcard.labo.lan/wildcard.labo.lan.key /etc/letsencrypt/live/labo.lan/privkey.pem

Installez les paquets nécessaires pour l'installation de TacticalRMM : apt install -y wget curl sudo

Création de l'utilsateur "tactical" :

adduser tactical
adduser tactical sudo

Récupérez le fichier install.sh (en tant que user "tactical") :

su - tactical
wget https://raw.githubusercontent.com/wh1te909/tacticalrmm/master/install.sh
chmod +x install.sh

Vu qu'on est sur une maquette, on va modifier le script afin qu'il ne cherche pas à générer un certif Letsencrypt :

vim install.sh : 
#### vers la ligne 149, commentez les lignes suivantes comme ci-dessous et modifier les chemins vers le certif serveur et la clé privée ###

#sudo apt install -y software-properties-common
#sudo apt update
#sudo apt install -y certbot openssl
#
#print_green 'Getting wildcard cert'
#
#sudo certbot certonly --manual -d *.${rootdomain} --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns -m ${letsemail} --no-eff-email
#while [[ $? -ne 0 ]]
#do
#sudo certbot certonly --manual -d *.${rootdomain} --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns -m ${letsemail} --no-eff-email 
#done

CERT_PRIV_KEY=/opt/pki/certs/wildcard.labo.lan/wilcard.labo.lan.key
CERT_PUB_KEY=/opt/pki/certs/wildcard.labo.lan/wilcard.labo.lan.crt

Lancer le script d'installation (toujours en tant que user "tactical") :

./install.sh
  • Saisissez les urls demandées
  • Lors de la création de l'utilisateur permettant de se connecter à l'interface web, il est demandé de scanner un QRcode avec une application 2FA. J'utilise Authy sur Android mais ça s'installe aussi sous GNU/Linux (https://authy.com/download/)
  • Un lien est généré afin de récupérer un Remote Agent Installation for TacticalRMM : copiez le lien et conservez-le.

Depuis un poste de travail :

  • Renseignez le fichier "hosts" (ex. : 192.168.1.240 api.labo.lan rmm.labo.lan mesh.labo.lan)
  • Lancez le navigateur web et importer le certificat de votre autorité de certification dans le magasin des certificats (celui qui a servi à signer le certificat serveur à l'étape PKI).
  • Relancez le navigateur
  • Connectez-vous sur le lien précédemment copié lors de l'installation de TRMM et téléchargez l'agent mesh Windows 64.
  • Connectez-vous sur https://rmm.labo.lan (vous ne devez pas avoir d'alerte de sécurité / le certificat doit être vu comme légitime).
  • Identifier-vous (credentials + 2-FA)
  • Renseignez le nom d'un client (ex. Client01), du site (ex. Site01), la timezone et uploadez l'agent mesh téléchargé juste avant.

Sur le serveur Windows à monitorer :

  • Copiez le certificat de l'autorité de certification créé à l'étape "PKI" sur le serveur
  • Menu Windows > Saisir mmc
  • Dans la console, clic sur Fichier > "Ajouter ou supprimer des composants..."
  • Sélectionnez "Certificats", cliquez sur ajouter, cocher "Un compte d'ordinateur", cochez "Ordinateur local", clic Terminer puis OK
  • Clic droit sur "Autorités de certification racines de confiance" > Toutes les tâches > Importer le ca.crt

    Toujours sur le serveur Windows à monitorer :

  • Lancez le bloc-note en tant q'administrateur
  • Ouvrez le fichier c:\Windows\System32\drivers\etc\hosts
  • Saisissez à la fin du fichier 192.168.1.240 api.labo.lan rmm.labo.lan mesh.labo.lan

    Afin de pouvoir déployer des logiciels, il faut installer le logiciel Chocolatey sur le serveur. Chocolatey est un gestionnaire de paquets pour Windows. Comme sous Debian, il permet d’installer et de désinstaller en mode CLI des applications en utilisant la commande choco (Plus d'infos sur Chocalatey). Lancez une console PowerShell en tant qu'administrateur puis saisissez cette commande :

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))`

    Depuis le poste de travail,

  • Rendez-vous sur https://rmm.labo.lan
  • Depuis le menu, cliquez sur Agents > Install Agent

f98486cac1808b6c9f17c4ab9a14b8b0

  • Cochez le type de client (Server ou Workstation) et les options nécessaires puis cliquez sur le bouton "Generate..."

7cae748ca168b4b6900e16d6b39388bc

  • Récupérez l'agent et le transférer sur le serveur.

    Le logiciel d'installation n'est pas signé et sera vu comme un virus (un trojan) par Windows Defender.

  • Si vous souhaitez avoir un agent signé, rdv sur https://wh1te909.github.io/tacticalrmm/code_signing/ (50$/mois).

  • Si vous optez pour le programme d'installation non signé : ajoutez le programme d'installation de l'agent dans la liste d'exclusion de l'antivirus et de Windows Defender.

  • Lancez le programme d'installation de l'agent récupéré.

Si tout est OK, vous devriez voir l'agent remontée dans la console : 06cfaabf3190c8f17d44c2679ef53aef

Pour la prise en main à distance, on peut soit prendre la main sans rien demander, soit faire une demande préalable (clic droit sur le bouton "Se connecter").

Le projet est relativement jeune mais très prometteur. Pour le moment, on ne peut déployer que des agents Windows mais des agents Linux et MacOS sont en cours de développement. J'espère que ce billet vous aura permis de monter votre maquette. Une fois le serveur installé, le reste se fait de manière assez intuitive. Amusez-vous bien :)

Article précédent Article suivant