Sécuriser une instance Dolibarr hébergée

Les réglages de sécurité de Dolibarr 24 testés un par un sur une installation neuve : install.lock, conf.php, restriction par adresse IP et plages CIDR, double authentification, captcha, vérification d'intégrité, DoliSecure, version affichée.

Versions concernées
Dolibarr 24.0.2 (archive officielle, installée par l'assistant web ; PHP 8.2, MariaDB 11.4)
Ce qui a été vérifié
Tests du 15/10/2026 sur une instance neuve de Dolibarr 24.0.2 installée par l'assistant web, comme sur un hébergement mutualisé : pages d'installation avant et après install.lock, droits de conf.php, restriction d'IP (adresses, plages CIDR, erreurs de saisie, API, en-têtes falsifiés, proxy inverse), double authentification, captcha, journal des connexions, vérification d'intégrité avec fichiers ajoutés et modifiés, installation et activation de DoliSecure 1.0.10, version visible sans connexion avant et après MAIN_APPLICATION_TITLE, flux de cti.dolibarr.org. Lecture du code de Dolibarr 24.0.2 (main.inc.php, filecheck.php, credentials.php, login.tpl.php, security2.lib.php).

Votre Dolibarr est en ligne, chez un hébergeur ou sur un serveur, et vous voulez savoir quoi régler pour le protéger, sans être développeur. Voici les réglages utiles, dans l’ordre où nous les ferions.

Chaque point a été testé le 15 octobre 2026 sur une instance neuve de Dolibarr 24.0.2, installée par l’assistant web comme sur un hébergement mutualisé. Ce que nous n’avons pas pu tester est dit comme tel, à la fin de chaque partie et dans le dernier encadré.

Commencez par la page « Infos sécurité »

Dolibarr a sa propre liste de contrôle : Accueil › Outils d’administration › Infos sécurité. Elle vérifie la configuration de PHP, les droits sur les fichiers, le fichier conf.php et les réglages de sécurité, et indique pour chaque point la valeur recommandée.

Juste après l’installation, elle signalait notamment :

  • l’absence du fichier install.lock, qui laisse les pages d’installation ouvertes ;
  • « Le fichier conf est lisible ou inscriptible par tous les utilisateurs » ;
  • $dolibarr_main_prod: 0, avec « Sur un environnement de production, vous devriez régler ce paramètre sur 1 » ;
  • aucune restriction d’adresse IP, et aucun événement de sécurité enregistré.

Ouvrez-la avant de commencer, puis après chaque réglage : c’est le moyen le plus simple de voir ce qui reste à faire.

La page Infos sécurité après les réglages : conf.php et install.lock au vert

1. Fermer les pages d’installation : install.lock

L’assistant d’installation ne crée pas de fichier install.lock. Tant qu’il n’existe pas, n’importe qui peut ouvrir https://votre-dolibarr/install/ sans se connecter : sur notre instance, la page des prérequis s’affichait, avec la version de PHP.

Créez un fichier vide nommé install.lock dans le dossier des documents de Dolibarr (pas dans le dossier du programme). Son chemin exact est affiché par l’avertissement de la page d’accueil et par la page Infos sécurité. Sur un hébergement mutualisé, le gestionnaire de fichiers ou un client FTP suffit.

Ensuite, toutes les pages d’installation affichent : « Les pages d’installation/mise à jour ont été désactivées pour des raisons de sécurité ». Pour faire une mise à jour sans supprimer ce fichier, voir notre note install.lock : où le mettre, et comment faire une mise à jour avec.

Et installmodules.lock

La page Infos sécurité propose aussi un fichier installmodules.lock, au même endroit. Nous l’avons testé : l’onglet Déployer/Installer un module externe affiche alors que l’installation est impossible depuis l’interface, et le bouton Installer des modules communautaires ne fait plus rien. Installez donc d’abord les modules dont vous avez besoin (DoliSecure, plus bas), puis créez ce fichier. Il faudra le retirer le temps de mettre un module à jour.

2. conf.php en lecture seule, et le mode production

Après l’installation, conf/conf.php était lisible par tous (droits 644). Nous l’avons passé en 400 (lecture pour son propriétaire seulement) : Dolibarr fonctionne normalement et la page Infos sécurité passe au vert. Si votre hébergeur exécute PHP sous un autre compte que le vôtre, demandez-lui la valeur adaptée.

La première ligne du même bloc (« Certains fichiers ou répertoires ne sont pas en mode lecture seule ») est restée en orange sur notre instance : nous ne l’avons pas traitée dans ce test.

Profitez-en, avant de le verrouiller, pour corriger une ligne. L’assistant a écrit :

$dolibarr_main_prod='0';

Mettez '1'. Le fichier d’exemple fourni avec Dolibarr (conf.php.example) explique qu’en mode production les messages d’erreur ne sont plus affichés, pour ne pas renseigner un attaquant.

3. Restreindre l’accès par adresse IP

Si vous vous connectez toujours depuis les mêmes adresses (bureau, VPN), Dolibarr peut refuser toutes les autres. Depuis la version 24, la liste accepte aussi des plages d’adresses (notation CIDR, par exemple 198.51.100.0/24 pour les adresses 198.51.100.0 à 198.51.100.255).

D’abord, relevez votre adresse telle que le serveur la voit : Accueil › Outils d’administration › Infos navigateur, ligne Adresse IP. Avec un VPN, faites-le VPN allumé : c’est l’adresse de sortie du VPN qui compte.

Puis ajoutez une ligne dans conf/conf.php (adresses séparées par des virgules) :

$dolibarr_main_restrict_ip='203.0.113.10, 198.51.100.0/24';

Pour toute autre adresse, Dolibarr n’affiche plus que ce message, en anglais :

Message affiché à une adresse non autorisée

Ce que nous avons vérifié :

  • une adresse exacte et des plages /24 et /16 fonctionnent ;
  • un point-virgule au lieu d’une virgule vous enferme dehors : la ligne n’est plus comprise et votre propre adresse est refusée ;
  • envoyer une fausse adresse dans les en-têtes X-Forwarded-For, Client-IP ou CF-Connecting-IP ne contourne pas la restriction ;
  • l’API REST n’est pas protégée : avec une clé valide, elle répondait normalement depuis une adresse refusée. Le fichier d’exemple précise aussi que les pages publiques (sans connexion) ne sont pas concernées ;
  • derrière un proxy (Cloudflare, pare-feu applicatif de l’hébergeur…), Dolibarr voit l’adresse du proxy, pas la vôtre. Avec un proxy de test devant le serveur, l’accès était refusé et le message affichait l’adresse du proxy. Vérifiez donc dans Infos navigateur que l’adresse affichée est bien la vôtre : sinon, la restriction ne marchera pas telle quelle.

Si vous vous enfermez dehors (box internet qui change d’adresse, par exemple), supprimez la ligne par FTP : l’accès revient. Sur notre serveur de test, chaque modification de conf.php n’a été prise en compte qu’au bout de quelques secondes, à cause du cache de PHP.

4. Double authentification (2FA) : absente de Dolibarr 24.0.2

C’est la question la plus fréquente, et la réponse est non. Dans Dolibarr 24.0.2 :

  • l’onglet Configuration › Sécurité n’a aucune option de double authentification, et aucun module de la liste n’en propose ;
  • une constante cachée (MAIN_SECURITY_ALLOW_TOTP) fait apparaître une ligne « Authentification à deux facteurs (2FA) » sur la fiche utilisateur et une page « TOTP », mais le bouton Nouveau n’enregistre rien et la connexion ne demande toujours aucun code. Le code correspondant est vide : c’est un chantier en cours, à ne pas utiliser.

Pour avoir une 2FA aujourd’hui, il faut un module complémentaire. Une recherche « 2FA » sur le Dolistore le 15/10/2026 en montrait trois ; nous n’en avons testé aucun, vérifiez qu’il est annoncé compatible avec votre version. L’autre piste est de confier la connexion à un fournisseur d’identité qui impose sa propre double authentification : l’onglet Paramètres d’authentification OpenID existe dans Configuration › Sécurité, nous ne l’avons pas testé.

En attendant, les trois mesures suivantes, testées, compliquent déjà beaucoup la vie d’un robot : captcha, journal des connexions et restriction d’IP.

5. Captcha et journal des connexions

Captcha : Configuration › Sécurité › Captcha, activez la ligne « Login ». Un champ « Code sécurité » apparaît sous le mot de passe. Testé : sans le code, la connexion est refusée même avec le bon mot de passe (« Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur… »).

Journal : Configuration › Sécurité › Événements de sécurité, cochez USER_LOGIN, USER_LOGIN_FAILED et USER_LOGOUT, puis Enregistrer. La liste se lit dans Outils d’administration › Événements de sécurité : date, adresse IP, identifiant et motif de chaque échec (mauvais mot de passe, mauvais code captcha).

Le journal des connexions : une tentative échouée, puis une connexion réussie

6. Vérifier l’intégrité des fichiers

C’est le bon réflexe quand votre hébergeur signale un fichier suspect. Dolibarr compare chacun de ses fichiers à la liste officielle de la version installée.

Menu Outils d’administration › Infos Dolibarr › Vérification de l’intégrité des fichiers. Choisissez Signature à distance (la liste est alors téléchargée depuis dolibarr.org), puis Vérifier.

Le choix de la signature

Sur l’instance neuve : « L’intégrité des fichiers est conforme avec la référence ». Nous avons ensuite ajouté un fichier PHP à la racine et modifié un fichier de Dolibarr : les deux sont listés, avec « Echec du contrôle du fichier d’intégrité : certains fichiers ont été modifiés, supprimés ou ajoutés ».

Un fichier modifié et un fichier ajouté, détectés

Trois limites, vérifiées :

  • le dossier custom/ n’est pas contrôlé : un fichier PHP ajouté dans custom/ n’apparaît pas. C’est là que vont les modules complémentaires, regardez-le vous-même ;
  • le dossier des documents n’est pas contrôlé non plus ;
  • la « Signature locale intégrée » est un fichier du dossier install/, sur le même serveur : si des fichiers ont été modifiés, il a pu l’être aussi. Préférez la signature à distance. L’image Docker officielle (24.0.1) ne contient d’ailleurs pas ce fichier local.

Si votre hébergeur signale un fichier : lancez la vérification. Si le fichier signalé fait partie de Dolibarr et n’apparaît ni dans les fichiers modifiés ni dans les fichiers ajoutés, il est identique à l’original : transmettez ce résultat à l’hébergeur, il s’agit probablement d’une fausse alerte (le cas s’est produit chez OVH, qui l’a reconnu, d’après le forum Dolibarr). S’il apparaît dans la liste, remplacez les fichiers par ceux de la même version officielle, puis changez les mots de passe.

7. Être prévenu des failles : DoliSecure et cti.dolibarr.org

DoliSecure

DoliSecure est un module gratuit de Joliciel, publié dans le dépôt de modules communautaires de Dolibarr. Il compare votre version à la base publique de vulnérabilités NVD (CVE) et affiche le résultat sur la page d’accueil des administrateurs.

Installation testée dans Dolibarr 24.0.2 :

  1. Configuration › Modules / Applications, onglet Rechercher un module/application externe ;
  2. activez Dépôt de modules communautaires Dolibarr (il passe « En ligne ») ;
  3. sur la carte DoliSecure, Installer, puis confirmez ;
  4. dans l’onglet des modules disponibles, cherchez DoliSecure et activez-le.

Le dépôt communautaire activé dans la page des modules

Un widget « Sécurité Dolibarr (CVE) » apparaît sur l’accueil. Pour la 24.0.2 : « Aucune vulnérabilité connue ».

Le widget DoliSecure sur la page d’accueil

Pour vérifier qu’il détecte bien quelque chose, nous lui avons fait croire à d’autres versions (données NVD du 15/10/2026) : 1 vulnérabilité pour une 24.0.1 (corrigée en 24.0.2), 17 pour une 23.0.4, 34 pour une 22.0.0. Il est annoncé compatible de Dolibarr 21.0 à 24.0. Il interroge la NVD depuis votre serveur, qui doit donc pouvoir accéder à internet. Les alertes par e-mail n’ont pas été testées.

cti.dolibarr.org

Le site cti.dolibarr.org liste les correctifs de sécurité des six derniers mois, avec un flux RSS (https://cti.dolibarr.org/index-security.rss, 81 alertes le 15/10/2026). Deux réserves, que la page elle-même permet de comprendre :

  • la liste est construite en cherchant des marqueurs (CVE, GHSA, « Sec: »…) dans les messages des modifications du code : un correctif sans marqueur n’y figure pas ;
  • elle indique la branche corrigée (21.0, 22.0…), pas une version publiée : le correctif peut ne pas être encore disponible en téléchargement.

Sur les 7 CVE récentes relevées par DoliSecure pour les versions 24.0.1 et 23.0.4, une seule apparaissait sous son numéro dans le flux. Les deux sources se complètent ; dans les deux cas, la réponse est la même : mettre Dolibarr à jour.

8. Masquer la version : un réglage cosmétique

Sur la page de connexion, Dolibarr affiche « Dolibarr 24.0.2 ». La constante MAIN_APPLICATION_TITLE (Configuration › Divers, nom MAIN_APPLICATION_TITLE, valeur par exemple Gestion, puis Ajouter) remplace ce titre.

Mais la version reste lisible sans se connecter. Après le réglage, nous avons encore relevé :

  • le titre de l’onglet du navigateur : « Identifiant Gestion @ 24.0.2 » (le code le garde exprès) ;
  • 16 occurrences de « 24.0.2 » dans le code de la page, surtout dans les adresses des fichiers CSS et JavaScript (?version=24.0.2) ;
  • le fichier /install/filelist-24.0.2.xml, téléchargeable sans connexion, même avec install.lock.

Masquer la version ne trompe donc pas un robot. La vraie protection, c’est d’être à jour.

9. Les sauvegardes

Aucune de ces mesures ne supprime le risque. Une sauvegarde récente, stockée hors du serveur et dont la restauration a été essayée, reste indispensable. Notre guide Sauvegarder et restaurer Dolibarr détaille la méthode testée, y compris la clé d’instance sans laquelle certaines données chiffrées restent illisibles après une restauration.

Ce que nous n’avons pas testé

  • Un vrai hébergement mutualisé (OVH, Infomaniak…) : l’installation a été faite par l’assistant web, sur un serveur de test qui reproduit ce cas. Les droits de fichiers peuvent varier d’un hébergeur à l’autre.
  • HTTPS et l’option $dolibarr_main_force_https.
  • Les modules de double authentification du Dolistore et la connexion OpenID.
  • L’envoi des alertes par e-mail de DoliSecure.
  • Une adresse IPv6 autorisée (seul le refus d’une adresse IPv4 a été vérifié).

En résumé

  • Ouvrez Outils d’administration › Infos sécurité et suivez-la.
  • Créez install.lock dans le dossier des documents ; installmodules.lock une fois les modules installés.
  • conf.php en lecture seule, $dolibarr_main_prod='1'.
  • Restriction d’IP : virgules, plages CIDR ; l’API n’est pas couverte, un proxy la fausse.
  • Pas de 2FA dans Dolibarr 24.0.2 : module complémentaire, ou à défaut captcha et journal des connexions.
  • Alerte de l’hébergeur : vérification d’intégrité, signature à distance, et coup d’œil à custom/.
  • DoliSecure pour être prévenu, puis mise à jour.
  • Masquer la version ne protège pas.
  • Une sauvegarde hors du serveur, restaurée au moins une fois.

Si vous préférez qu’on regarde votre instance avec vous, le diagnostic à 90 € consiste à passer une heure sur votre Dolibarr, puis à vous remettre par écrit ce qui est à corriger et ce que coûterait la correction.

À lire aussi

Dolibarrsécuritéinstall.lockrestriction IPCIDRdouble authentification2FAcaptchaintégrité des fichiersCVEDoliSecurehébergement mutualisé