Présentation et installation de Tactical RMM

 

Présentation

Durant mes années d'administrateur systèmes Microsoft Windows (Il en faut bien), j'ai régulièrement été confronté à un souci de gestion de parc complet, simple, et efficace.
Lors de mes recherches, de nombreuses solutions se sont révélées être intéressantes (SolarWinds RMM, NinjaRMM, etc...).
Comme vous le savez, chez AukFood, on ne mange qu'OpenSource.
De ce fait, une solution s'est révélée pertinente : Tactical RMM (Remote Monitoring & Management)

Tactical RMM fournit une interface web pour la gestion de flotte d'ordinateur permettant :

  • La prise en main sur les postes (comme un TeamViewer)
  • Obtenir une ligne de commande à distance
  • Parcourir, télécharger, uploader des fichiers à distance
  • Surveiller les logs
  • Gérer les MAJ Windows, les services
  • Mise en place d'alertes (CPU, espace disque, RAM...)
  • Inventaire matériel et logiciels en place
  • Déploiement d'applications via Chocolatey
  • L'exécution de tâches en masse sur un ensemble de ressources

Tactical RMM s'appuie sur Django, Vue et Golang. Il utilise MeshCentral et un agent écrit en Golang.
Le serveur web utilisé est Nginx et la base de données MongoDB.
Cette solution est directement inspirée de l'outil commercial SolarWinds RMM (un des leaders du marché dans le RMM).
Contrairement à toutes les solutions de RMM performantes, celle-ci est sous licence MIT et est donc libre.

Actuellement, seul un agent Windows x86 et x64 sont disponibles. Un agent Linux et macOS sont en cours de développement.
Les versions de Windows supportés sont : Windows 7, 8.1, 10, Server 2008R2, 2012R2, 2016, 2019.

Pour obtenir un agent Windows avec du code signé (Pas d'alerte antivirale), un don mensuel au projet de 50$ (statut sponsor) est nécessaire. Pas de panique, lors du déploiement d'un agent, des exclusions antivirus seront faites automatiquement. Nous y reviendrons un peu plus tard.

Installation

2 méthodes d'installation sont possibles :

  • Classique / Traditionnelle
  • Docker

Avant de commencer

Dans cette démonstration, une installation fraîche de Debian 10 est utilisée pour le serveur et la méthode d'installation classique est employée.
Un domaine résolvable sur Internet pour la génération de certificats Let's Encrypt est nécessaire ainsi qu'une application basée sur TOTP (Microsoft Authenticator, Authy, PrivacyIDEA...)
Pour la connexion à la Web UI, il faudra vous munir d'un des navigateurs suivants :

  • Chrome >= 93
  • Edge >= 93
  • Firefox >= 92
  • Safari >= 15

Let's Go Pinguy !

Prérequis

Mise à jour système et installation des prérequis.

apt update
apt install -y wget curl sudo
apt -y upgrade

Si un nouveau kernel a été installé, redémarrez dessus.

Création d'un utilisateur

Créez un utilisateur "tactical" et ajoutez-le au groupe sudoers.

useradd -m -s /bin/bash tactical
usermod -a -G sudo tactical
passwd tactical

Le mot de passe renseigné à ce niveau servira pour la connexion en SSH au serveur et non à la Web UI. Celui-ci sera défini un peu plus tard.

Ouverture des ports

Configurez votre pare-feu :

  • Port TCP 443 : Accès Web UI
  • Port TCP 22 : Accès SSH
  • Port TCP 4222 : Communication avec l'agent

Script d'installation

Il est impératif de vérifier la bonne conformité de fichier /etc/hosts en premier lieu. Si le nom du serveur n'est pas correct, des erreurs d'installation se produiront.

Basculez sur l'utilisateur tactical.

su - tactical

Téléchargez et exécutez le script d'installation.

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

Répondez aux questions en remplaçant example.com par votre domaine ainsi qu'une adresse de messagerie valide.

Enregistrement TXT

Un challenge DNS est demandé afin de permettre la génération d'un certificat wildcard Let's Encrypt. Ce challenge DNS est demandé lors de la phase d'installation.

Une fois la propagation de l'entrée DNS effectuée, vérifiez celle-ci.

dig -t txt _acme-challenge.example.com

L'enregistrement DNS TXT doit impérativement retourner la bonne valeur sous peine d'un échec de la génération du certificat wildcard.

Création accès Web UI

Un couple login/password est à renseigner pour l'accès web durant le processus d'installation : https://rmm.example.com

Un résumé de toutes les informations de connexions sera affiché à la fin du processus d'installation.

MFA et Authenticator

Par défaut du MFA est mis en place avec une authentification par QR Code après la validation du couple login/password. Ce QR code est généré durant l'installation.

Nous vous recommandons l'utilisation d'une application mobile OpenSource comme PrivacyIDEA ou Authy.

Récupération de l'agent

Récupérez l'agent via https://mesh.example.com:443/agentinvite?c=abcdef.

Ce lien sera affiché dans le résumé affiché à la fin de l'installation.

Configuration initiale

Rendez-vous sur https://rmm.example.com.

  • Créez le premier client/site.
  • Définissez le fuseau horaire.
  • Uploadez l'agent RMM préalablement récupéré.

L'installation est terminée.

Fonctionnalités (aperçus)

Voici quelques captures des fonctionnalités disponibles (non exhaustives).

  • Summary

  • Checks

  • Tasks

  • Patches

  • Software

  • History

  • Scripting

  • Bulk

Conclusion

Tactical RMM est une solution robuste et en constante évolution. Les gestionnaires du projet ainsi que les contributeurs sont très réactifs et à l'écoute.
C'est une solution alternative parfaitement viable face aux concurrents propriétaires.

Dans un prochain article, je vous décrirai les différentes méthodes de déploiements de l'agent (manuellement, automatiquement, par GPO...), approfondissement les différentes fonctionnalités, les commandes de management spécifiques, comment réaliser une mise à jour de Tactical RMM, la sauvegarde, la restauration, etc...

Source

Projet : GitHub - wh1te909/tacticalrmm: A remote monitoring & management tool, built with Django, Vue and Go.