Présentation d'OCS Inventory

Avant de vous partager mon expérience avec OCS Inventory, je vais d'abord vous faire une petite présentation de ce qu'est OCS Inventory.

OCS Inventory est une solution open source pour la gestion de parc informatique. La solution OCS Inventory vous permet d'inventorier le matériel et les logiciels des ordinateurs de votre parc informatique. Ces fonctionnalités ne sont pas les seuls, car OCS Inventory permet de faire pleins d'autres choses nativement. Comme le scan de sous-réseaux, le télédéploiement de logiciels ou de fichier, la détection de CVE. Il ne s'agit là que des fonctionnalités de bases les plus notables.

La partie serveur d'OCS inventory est développée en PHP. Afin de collecter les informations logicielles et matérielles des ordinateurs, OCS Inventory utilise un agent qui vient s'installer sur chaque ordinateur. L’agent envoie les données au serveur en utilisant le protocole HTTP ou sa version sécurisé HTTPS. Les données sont envoyées au format XML et sont compressées afin de réduire l’utilisation du réseau. Le point fort de l'agent OCS est le fait qu'il est développé pour les systèmes d'exploitation Windows, Linux, MacOS et Android. Ce qui vous permet de pouvoir inventorier globalement tous les équipements de vos utilisateurs.

L’agent OCS est capable de remonter un grand nombre d’informations sur l’ordinateur où il est installé, tel que :

  • Les composants matériels de l’ordinateur
  • Le système d’exploitation
  • La clé de licence de Windows
  • L’utilisateur connecté
  • Les partitions du disque ainsi que leurs espaces libres
  • Les logiciels installés et leurs versions.
  • Les informations relatives aux périphériques connectés à l’ordinateur
  • Les informations réseau de l’ordinateur
  • Le nom d’hôte de la machine

De plus, vous pouvez installer des plugins afin de collecter d'autres informations. Voici quelques exemples de plugins disponible :

  • Firewall Rules : Remonte les règles du pare-feu
  • Chromeextensions : Remonte les extensions chrome installées
  • Bitlocker status : remonte le statut de Bitlocker
  • Winusers : Remonte les utilisateurs Windows
  • Systemd Service : Remonte les services systemd

Il existe pleins d'autres plugins que vous retrouverez ici

Du côté serveur, OCS Inventory se décompose en 4 composants pour fonctionner qui sont les suivants :

  • Serveur de base de données
  • Serveur de communication
  • Serveur de déploiement
  • Console d'administration

Architecture de OCS Inventory

Le serveur de base de données permet de stocker les données des différents éléments inventoriés dans OCS Inventory. La base de données OCS est une base SQL, vous pouvez donc utiliser un système de gestion de bases de données comme MariaDB ou PostgreSQL. Le serveur de communication permet de récupérer les données inventoriées par les agents OCS. Le serveur de déploiement assure la diffusion aux agents des paquets pour installation, désinstallation ou encore la mise à jour de logiciel via télédéploiement. Le dernier composant est la console d’administration qui permet de consulter les données du parc et de configurer la solution via une interface Web.

Cette présentation d'OCS est une présentation en surface, je vous invite à vous rendre sur la documentation de la solution pour avoir plus d'information.

Mon expérience avec OCS Inventory

Maintenant, que je vous ai présenté la solution OCS Inventory, je vais vous parler de mon expérience sur la solution.

Aujourd'hui, j'utilise et j'administre OCS Inventory pour deux entreprises différentes, qui ont chacune des besoins et une taille différentes.

Exploitations et mes utilisations

L'un des usages principaux que je fais d'OCS Inventory est la gestion de parc. La gestion de parc en entreprise est selon moi très importante, car elle vous permet de suivre vos équipements (qui l'utilise ?, où se trouve t'il ?, modéle, ect..). Dans les deux entreprises où j'utilise OCS Inventory. Je l'utilise surtout pour effectuer un inventaire dynamique du parc. C'est selon moi ce qui en fait la force, car la gestion d'un parc informatique peux s'avérer très fastidieuse et complexe lorsque l'on a un grand nombre de machines et d'utilisateurs.

Imaginer devoir suivre la position géographique (sous-réseau de connexion) et l'utilisateur connecté sur vos postes de travail à la main. Cela vous demanderez des journées entières à faire de la saisie. C'est pour cela que j'utilise OCS Inventory, grâce à un script, je m'assure du déploiement de l'agent sur tous les ordinateurs présent dans mon Active Directory (on en parlera juste après).

L'agent OCS me remonte toutes les caractéristiques de mes postes de travails. Voici quelques exemples de ce que cela me permet de faire :

  • Activité du poste : Grâce à la date de dernière communication avec le serveur, je peux sélectionner les postes inactifs pour m'assurer si ces postes ont bien été restituer si l'utilisateur n'est plus là.
  • Logiciel installé : La remonté des logiciels installé sur les postes me permet de savoir qui utilise un logiciel spécifique, très utile pour les logiciels soumis à licences, afin d'optimiser les licences.
  • Suivi des mises à jour : En liens avec le point précédent, j'ai un suivi des versions des logiciels et peux donc savoir qu'elles sont les postes à jour ou non.
  • Répartitions des modèles : Fournir des statistiques à ma direction, notamment pour un renouvellement de parc.
  • Sécurité et conformité : Pour l'une des deux entreprises, j'ai très souvent besoin d'effectuer des rapports de sécurité des postes de travails. OCS me permet ici de remonter les machines obsolètes, non chiffré, sans antivirus ou règles de pare-feu, avec des versions de logiciel obsolète (détection de CVE).
  • Suivi du matériel : La remonté des utilisateurs qui ont un profil sur un poste ainsi que le dernier sous-réseau de connexion permet de savoir à qui appartient le poste et de savoir où se situe le poste grâce au sous-réseau. C'est très utile quand on recherche un poste d'une personne partie de l'entreprise et qu'on veut savoir sur qu'elle site géographique le PC se trouve.

C'est là que quelques exemples de ce que l'on peut faire avec OCS Inventory, de plus la gestion de parc n'est pas la seule fonctionnalité d'OCS. Le scan de sous-réseau peut vous être utile pour détecter des équipements qui se connectent sur votre réseau et qui pourraient donc engendrer un risque de sécurité.

La gestion de l'outil et de son agent

Je vous ai parlé précédemment de script de déploiement de l'agent OCS Inventory, mais il ne s'agit pas de la seule façon de déployer l'agent.

Tout d'abord, il faut savoir qu'il existe plusieurs versions de l'agent OCS:

  • Version Portable
  • Installeur de l'agent

J'utilise personnellement ces deux versions d'agent et elles ont chacune leurs avantages et inconvénients. Je vais commencer par vous parler de la version la plus utilisée, je pense qui est la version installeur.

La version installeur de l'agent est plutôt simple à utiliser, car il s'installe comme tout autre logiciel. Cette version à plusieurs avantages, notamment l'installeur va créer un service OCS qui va tourner tous seule en fond. Cela permet d'exécuter l'agent au démarrage de la machine ou encore à une fréquence régulière. Cependant, cette version a selon moi des défauts. Par exemple pour installer les plugins lors de l'installation de l'agent, vous avez deux solutions soit passé sur chaque machine pour déposer votre plugins dans le dossier plugin d'OCS automatisable par un scirpt. La seconde solution est d'utiliser OCS Packager qui vous permet de packager un installeur OCS avec vos plugins. Cette solution fonctionne bien, cependant dès que vous rajouterez un plugin vous devrez repackager votre agent et le réinstaller, cette solution peut être déployer via une GPO.

Personnellement, j'utilise la version avec installeur pour un parc de 100 machines. Pour l'installation de plugins, j'ai plutôt opté pour un script qui vient déposer les plugins dans le répertoire d'OCS Inventory.

Vous l'aurez compris, j'utilise donc la version portable d'OCS pour mon parc de plus de 2000 machines. A l'inverse de la version installeur, il vous faudra automatiser son exécution vous-même, car vous n'aurez aucun service, ou tâche planifier qui sera créer sur le poste. Cependant, vous pourrez créer vous-même une tâche planifier pour exécuter l'agent. C'est selon moi l'inconvénient de la version portable, c'est que vous devrez automatiser vous-même son exécution à l'aide de script, de PSexec, robocopy, ect. Si vous aimez bidouiller et que vous avez des connaissances en Powershell, Batch, bach et admin système, cela ne vous posera pas forcément de problème. L'avantage de cette solution est que vous aurez beaucoup plus de flexibilité. Personnellement, j'utilise un dossier source sur un serveur, ce dossier source me permet de déposer mes configurations et mes plugins. J'utilise ensuite un script qui via robocopy copie ce dossier sur les postes puis exécute à distance l'agent avec un psexec. Pour cette solution, vous devrez avoir un serveur ou machines qui servira de serveur pour déployer votre agent.

Développement

Pour ce qui est du développement sur OCS, et bien cela est très simple. Le code étant open source, vous pouvez sans difficulté modifier son code pour vos usages. Lien vers le repo OCS https://github.com/OCSInventory-NG/OCSInventory-ocsreports

Bien entendu, il vous faudra un minimum de connaissance en développement. OCS étant codé en PHP et utilisant la programmation orienté objet, il vous faudra maîtriser ces notions là. Pour vous donner des idées de ce qu'il est possible de faire avec OCS voici ce qu j'ai pu développer.

  • Intégration des informations de sécurité de mon EDR en utilisant son API
  • Suivi des patch de sécurité Windows en utilisant l'API Microsoft et en remontant les patch installés sur les machines
  • Génération de rapport au format PDF

Pour le développement de plugins, je vous invite à récupérer le repo d'example sur Github. Vous devrez maîtriser Powershell, batch et un peu PHP pour développer vos plugins.

Mon avis sur OCS

Maintenant, que je vous ai fait un tour de mon expérience avec OCS Inventory, il est tant que je vous donne mon avis sur la solution.

Pour moi, OCS Inventory est un très bon outil, pour la gestion des parcs informatiques en entreprise. L'outil dispose selon moi de points fort, mais aussi de certaines faiblesses/inconvénients.

Le point le plus fort d'OCS est sa principale fonctionnalité qui est l'inventaire automatique de vos machines. Grâce à son agent, la remonté des informations des machines permet d'avoir une vision globale du parc et de prévoir son renouvellement. De plus, comme je l'ai dit précédemment cela permet aussi d'avoir une vision sur les logiciels installés. La remonté des CVE est aussi une fonctionnalité que j'apprécie tous particulièrement, car dans un monde ou les failles de sécurité sont de plus en plus fréquente et exploité, avoir une vision sur les failles sur les postes de travail est très utile.

Si vous disposez d'un SI avec les services de bases (Active Directory, DNS, etc... ). Il n'y a pas de difficulté a déployer l'agent OCS sur votre parc, c'est encore un fois un point fort de la solution selon moi. De plus, l'agent OCS ne demande pas comme certaines solutions d'installer un tas de dépendances pour qu'il fonctionne, ce qui est bien pratique.

La gratuité de la solution est aussi un point fort, que vous ayez 10 ou 50 000 machines dans votre parc, cela ne vous coûtera pas plus cher que 0 €. Le fait que la solution soit open source est l'une de ses plus grandes qualités pour moi, j'ai pu personnellement créer plusieurs plugins pour mon agent OCS, mais aussi ajouter des fonctionnalités à son interface Web.

Cependant, OCS n'a pas que des points positifs selon moi. La fonctionnalité que je n'utilise pas voir très peu est celles de télédistribution et ceux pour plusieurs raisons.

  • Télédéploiement complexe a configurer avec le HTTPS (modif du code source)
  • L'installation / désinstallation ne se fait pas toujours bien en fonction des logiciels.

Après la fonctionnalité de télédéploiement fonctionne, mais elle est selon moi pas la plus performante et la plus simple à gérer. Ce n'est bien entendu que mon avis, si vous souhaite utiliser la fonctionnalité et qu'elle vous conviens ne vous en privé pas.

Pour terminer, OCS est une solution que j'utilise au quotidien et que j'apprécie particulièrement. C'est pour cela que je vous la recommande fortement, pour gérer votre parc informatique.