
Maintenir ses serveurs et applications à jour est indispensable pour garantir la sécurité et la stabilité d’une infrastructure informatique. Pourtant, suivre les correctifs disponibles, vérifier les versions installées et identifier les systèmes non à jour peut rapidement devenir une tâche chronophage, surtout lorsque l’environnement grandit.
PatchMon est une plateforme open source de gestion des correctifs et de supervision des mises à jour pour les environnements Linux, FreeBSD et Windows. La solution permet de centraliser la visibilité sur les paquets installés, les mises à jour disponibles, les politiques de patching et même les contrôles de conformité depuis une interface web moderne.
PatchMon prend également en charge plusieurs gestionnaires de paquets comme APT, DNF/YUM, APK, Pacman ou encore FreeBSD pkg, tout en proposant des fonctionnalités avancées comme le suivi des conteneurs Docker, l’accès SSH/RDP depuis le navigateur, les alertes ou encore l’intégration OIDC/SSO.
L’un des points intéressants de la solution est son fonctionnement basé sur des agents en connexion sortante uniquement. Aucun port entrant n’est nécessaire sur les serveurs supervisés, ce qui simplifie fortement le déploiement dans des environnements sécurisés.
Dans ce tutoriel, nous allons voir comment déployer PatchMon en conteneur Docker avec Docker Compose, configurer les différents services nécessaires au fonctionnement de l’application et publier l’interface web derrière un reverse proxy afin de l’intégrer facilement dans une infrastructure existante.
Sommaire
Prérequis
Pour déployer Patchmon, vous aurez besoin :
- D’un serveur Linux avec Docker et Docker compose d’installés
- Un reverse proxy (Nginx / Traefik) pour publier Patchmon en HTTPS.
Concernant le certificat SSL, vous pouvez utiliser un certificat d’une autorité connue ou d’une autorité interne type ADCS.
Déploiement de Patchmon
Ce tutoriel a été réalise sur la version 2.0.2 de Pachmon qui présente encore pas mal de bug et une intégration de Windows limité
Avant de vous lancer directement dans le déploiement Patchmon, je vous invite à lire consulté les liens suivants :
Comment à mon habitude, je vais créer un dossier spécifique pour les fichiers et données de Patchmon sur mon serveur Linux :
mkdir -p /containers/patchmon
cd /containers/patchmonPour continuer, récupérer les fichiers du stacks :
- https://github.com/PatchMon/PatchMon/tree/main/docker
- https://github.com/rdrouche/Docker-Compose/tree/main/Patchmon
- https://tools.rdr-it.com/#compose-gen:patchmon
Ou clone le dossier :
bash <(wget -qO- https://git.rdr-it.com/root/scripts/-/raw/master/Linux/rdr-it/get-docker-compse/get.sh) PatchmonCréer ensuite le fichier .env basé sur le fichier d’exemple présent puis éditer le pour configurer les différents variables obligatoires :
- URL / Domaine
- Secret / Mot de passe
- …
Une fois cela fait télécharger les images des conteneurs Docker :
docker compose pullDémarrer les services et vérifier leur bon fonctionnement en regardant les logs :
docker compose up -d
docker compose logs -fLa dernière étape, configurer votre reverse proxy.
Voici ma configuration pour Nginx :
server{
listen 443 ssl;
http2 on;
server_name patchmon.domain.tld;
ssl_certificate /ssl/domain.tld.cer;
ssl_certificate_key /ssl/domain.tld.key;
access_log /var/log/nginx/patchmon.domain.tld_acess.log;
location / {
proxy_pass http://A.B.C.D:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}Il ne reste plus qu’à démarrer le stack de conteneur :
docker compose up -dConfiguration de Patchmon
Pour commencer la configuration, nous allons créer le premier utilisateur qui sera administrateur, aller sur l’interface Web de Patchmon depuis un navigateur Web en saissant l’URL configurée.
Pour commencer, remplir le formulaire qui va vous permettre de créer le premier compte sur Patchmon.

Ensuite vous pouvez configurer le MFA pour la connexion à Patchmon, dans le cas de mon lab, j’ai passé cette étape, si votre instance de Patchmon est directement exposé sur Internet, je vous conseille d’activer le MFA.

Ensuite l’assistant, vous invite à configurer l’URL d’accès à Patchmon et le type de certificat si celui-ci est autosigné.

Terminer la configuration des notifications pour être au courant des mises à jour.

Et pour finir, cliquer sur le bouton Access Dashboard

Si vous aimez le projet, je vous invite à mettre une étoile sur le dépôt Github pour encourager le projet.
La configuration terminée, vous arrivez sur la tableau de bord de Patchmon.

Ajouter des hôtes
Pour la communication entre le serveur et les hôtes, il est nécessaire de déployer une agent sur chaque machine, à ce jour au moment de la rédaction Patchmon prend en charge :
- Linux
- FreeBSD
- Windows (visu par de déploiement de mise à jour encore en version 2.0.2)
Dans ce tutoriel, nous allons voir le déploiement d’un agent sur Linux puis sur Windows.
Ajouter un hôte Linux
Depuis le menu à gauche, cliquer sur + 1 pour lancer l’assistant.

Choisir Linux 1 et cliquer sur Next 2.

Nommer l’hôte 1, activer les intégrations 2 si vous le souhaitez puis cliquer sur Next 3

Pour la gestion de Docker, j’utilise d’autre solution plus abouti, l’intégration de Docker étant encore en « beta », celle-ci n’est pas pertinente encore avec pas mal de bug, le produit évolue vite, je vous invite donc à tester après chaque mise à jour.
L’assistant fourni une ligne de commande à entrer sur le serveur Linux, cliquer sur le bouton Copy command 1.

Patchmon est maintenant en attente d’installation de l’agent …

Dans le terminal de votre serveur Linux, coller la commande et exécuter la puis patienter pendant l’installation …

Je n’ai pas eu le temps de faire la capture, si vous êtes en même sur l’interface Web de Patchmon, celui-ci va détecter l’agent et vous serez ensuite redirigé vers la page de l’hôte.

Comme on peut le voir sur la capture ci-dessous, mon serveur Linux.
L’hôte Linux est ajouté Patchmon.
Ajouter un hôte Windows
Je sais que je vais me répéter, mais au moment de la rédaction de ce tutoriel, la prise en charge de Windows reste assez compliquée. En théorie, l’installation de l’agent est censée se dérouler comme sous Linux via le même assistant. Cependant, malgré plusieurs tests, le script proposé ne fonctionne pas correctement sous Windows. Heureusement, cela n’empêche pas le déploiement de l’agent, à condition de passer par une méthode alternative.
Voici comment j’ai procédé pour l’installation sous Windows, pour commencer, j’ai du téléchargé l’agent et le mettre à dispo sur un serveur Web, pour le récupérer, aller sur Setting 1 / Agent Version 2 et cliquer sur l’icone de téléchargement de l’agent windows-amd64 3.

Télécharger le fichier puis l’héberger sur un serveur Web afin qu’il puisse être télécharger depuis les hôtes Windows.
Récupérer le script Powershell pour l’installation de l’agent Patchmon sur Windows : https://tools.rdr-it.com/#scripts/ps-patchmon-agent-install
Sur l’interface Web, ajouter un nouvel hôte en sélectionnant : Windows.

Ensuite nommer l’hôte et passer l’étape suivante puis copier la commande. Dans le script configurer les variables (params) au début de celui-ci, en indiquant, l’URL pour télécharger l’agent, l’url de Patchmon, puis dans la commande, récupérer X-API-ID qui est le paramètre $api et X-API-KEY à mettre dans la variable $token. Enregistrer le fichier Powershell puis exécuter le depuis une invite de commande Powershell lancer en administrateur.
Sur la page du script, vous trouverez également un second script qui permet d’utiliser l’auto enrollement.
Gérer les mises à jour
Dans cette partie, je ne vais rentrer trop dans le détail, car j’utilise principalement Patchmon pour avoir un aperçu de l’état des mises à jour des serveurs, pour le moment tant que l’outils est encore en « développement » et relativement jeune, je déploie les mises à jour à l’aide de playbook Ansible qui sont exécutés par Semaphore.
Patchmon vont permet d’installer les mises à jour soient manuellement en sélectionnant, que cela soit au niveau de la vue des hôtes ou des mises à jour, ou de mettre en place des politiques de patching automatique.
En fonction de l’évolution de l’outils, je vous ferrais un tutoriel complet sur cette partie.
Conclusion
Même si PatchMon est encore un projet relativement jeune, la solution évolue rapidement et se montre déjà très prometteuse pour centraliser le suivi des mises à jour et des correctifs au sein d’une infrastructure hétérogène.
À ce jour, je continue personnellement à gérer le déploiement des mises à jour Linux via mes playbooks Ansible, ce qui me permet de conserver une automatisation fine et adaptée à mon environnement. Du côté de Windows, WSUS reste également une solution fiable et éprouvée pour centraliser la gestion des correctifs Microsoft.
Là où PatchMon apporte une réelle valeur ajoutée, c’est surtout sur la visibilité globale de l’infrastructure. L’outil permet d’obtenir rapidement un état des systèmes, des mises à jour disponibles et des machines nécessitant une attention particulière, sans devoir jongler entre plusieurs interfaces ou solutions de supervision.
La prise en charge de Windows est encore en cours d’amélioration, mais si le développement continue dans cette direction, PatchMon pourrait devenir une solution particulièrement intéressante pour centraliser le suivi des correctifs aussi bien sur Linux que sur Windows depuis une interface unique.
PatchMon propose également une version commerciale incluant un support avancé ainsi qu’une offre hébergée dans le cloud. C’est une approche totalement compréhensible, car un projet open source demande énormément de travail et il est normal que celui-ci puisse être financé.
Comme pour beaucoup de projets open source à leurs débuts, j’ai malgré tout quelques réserves concernant une intégration trop profonde dans le système d’information. Lorsqu’une solution devient très prometteuse, il existe toujours le risque qu’à terme la version gratuite ou auto-hébergée perde progressivement certaines fonctionnalités ou bénéficie d’un support plus limité au profit de l’offre commerciale.
Cela n’enlève rien aux qualités actuelles de PatchMon, qui reste aujourd’hui une solution très intéressante à surveiller pour tous ceux qui recherchent une vue centralisée des mises à jour et correctifs de leur infrastructure.
FAQ
PatchMon est-il open source ?
Oui, PatchMon est un projet open source dont le code source est disponible publiquement. Il est possible de l’auto-héberger en conteneur Docker afin de garder la maîtrise complète de ses données et de son infrastructure.
PatchMon remplace-t-il Ansible ou WSUS ?
Non, PatchMon ne remplace pas directement des outils comme Ansible ou WSUS. L’objectif principal est davantage la supervision et la centralisation des informations liées aux mises à jour et aux correctifs. Les outils existants peuvent continuer à être utilisés pour le déploiement des mises à jour.
Quels systèmes d’exploitation sont pris en charge ?
PatchMon prend principalement en charge les distributions Linux et FreeBSD. Le support de Windows est en cours d’évolution et certaines fonctionnalités peuvent encore être limitées selon les versions utilisées.
Faut-il ouvrir des ports entrants sur les serveurs supervisés ?
Non, les agents utilisent un fonctionnement en connexion sortante uniquement. Cela simplifie le déploiement dans des environnements sécurisés et évite d’exposer des ports supplémentaires sur les machines supervisées.
Peut-on utiliser PatchMon derrière un reverse proxy ?
Oui, PatchMon fonctionne parfaitement derrière un reverse proxy comme Nginx, Traefik ou HAProxy. Cela permet notamment d’utiliser HTTPS, un nom de domaine personnalisé et une authentification centralisée via SSO/OIDC.
