4.10 Sécurité
Chemin : Administration > Configuration > Sécurité Accès : Administrateurs uniquement Cette page regroupe l'ensemble des paramètres de sécurité de Keatic ERP, organisés en 8 onglets depuis la v24.
Important : Chaque onglet dispose de son propre bouton de sauvegarde (MODIFIER ou ENREGISTRER). Les modifications sont effectives immédiatement pour tous les utilisateurs.
Onglet 1 – Divers
Paramètre | Constante | Défaut |
|---|---|---|
Utiliser les autorisations avancées des modules | MAIN_USE_ADVANCED_PERMS | Off |
Délai expiration des sessions (secondes) | MAIN_SESSION_TIMEOUT | 1440 s |
Nombre max. d'images dans un champ HTML | MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT | 0 |
Nombre max. de publications par IP en un mois | MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS | 200 |
Nombre max. de fichiers joints dans un formulaire | MAIN_SECURITY_MAX_ATTACHMENT_ON_FORMS | 10 |
Nombre max. d'échecs d'authentification en 24h | MAIN_SECURITY_MAX_NUMBER_FAILED_AUTH | 100 |
- Comment configurer le délai d'expiration des sessions ?
Rendez-vous dans Administration > Configuration > Sécurité > Onglet 1 — Divers et renseignez le champ Délai expiration des sessions (constante MAIN_SESSION_TIMEOUT). La valeur par défaut est 1440 secondes (24 minutes). Si ce champ n'est pas surchargé, Keatic ERP suit la valeur session.gc_maxlifetime définie dans la configuration PHP de votre serveur. Cliquez sur MODIFIER pour appliquer immédiatement le nouveau délai à tous les utilisateurs.
- Comment configurer les autorisations avancées dans l'onglet Divers ?
Activez l'option Utiliser les autorisations avancées des modules (constante MAIN_USE_ADVANCED_PERMS) dans l'onglet Divers. Cela débloque un niveau de droits supplémentaire et plus granulaire : les permissions standard se limitent à « Lire », « Créer/Modifier », « Supprimer », tandis que les permissions avancées ajoutent des droits précis comme « Valider », « Envoyer par email », « Clôturer »… Une fois activée, rendez-vous dans Accueil > Utilisateurs & Groupes pour attribuer ces nouvelles permissions fines depuis l'onglet Permissions de chaque utilisateur ou groupe.
Onglet 2 – Captcha
Protège les formulaires publics de Keatic ERP contre les robots. Les options disponibles dépendent des modules actifs.
Formulaire protégé | Constante |
|---|---|
Page de connexion | MAIN_SECURITY_ENABLECAPTCHA |
Formulaire public de contact tiers | MAIN_SECURITY_ENABLECAPTCHA_THIRDPARTY |
Création de ticket public | MAIN_SECURITY_ENABLECAPTCHA_TICKET |
Adhésion publique | MAIN_SECURITY_ENABLECAPTCHA_MEMBER |
Formulaire de don public | MAIN_SECURITY_ENABLECAPTCHA_DONATION |
Formulaire de recrutement public | MAIN_SECURITY_ENABLECAPTCHA_RECRUITMENT |
Si au moins un CAPTCHA est activé, une seconde section permet de choisir le moteur de génération (handler). Le moteur disponible par défaut est Standard (image générée en interne — la bibliothèque PHP GD est requise). Constante du handler : MAIN_SECURITY_ENABLECAPTCHA_HANDLER.
Quelles sont les limites contre les attaques par force brute ?
Keatic ERP propose plusieurs mécanismes complémentaires :
- Limitation des échecs : après 100 échecs en 24h (constante MAIN_SECURITY_MAX_NUMBER_FAILED_AUTH, onglet Divers), la connexion est systématiquement refusée pour le compte concerné.
- CAPTCHA : activez-le sur la page de connexion pour bloquer les soumissions automatisées par des scripts malveillants.
- Complexité des mots de passe : forcez des règles dans l'onglet Mots de passe pour rendre les attaques par dictionnaire beaucoup plus longues.
- Délégation OIDC : en utilisant OpenID Connect, vous déléguez l'authentification à un fournisseur externe (Google, Keycloak…) qui dispose de ses propres systèmes de détection de force brute.
- Journal d'audit : l'onglet Événements de sécurité trace les échecs de connexion (USER_LOGIN_FAILED), permettant de surveiller et analyser les tentatives d'attaque.
Onglet 3 – Mots de passe
Règle de génération — un seul handler actif à la fois (interrupteur radio) :
Handler | Description | Longueur min. | Constante |
|---|---|---|---|
Perso | Règles personnalisables | Selon config | USER_PASSWORD_GENERATED = Perso |
Standard | 12 caractères, algorithme interne | 12 | USER_PASSWORD_GENERATED = Standard |
None | Aucune suggestion (saisie libre) | 0 | USER_PASSWORD_GENERATED = None |
Configuration du handler Perso (constante USER_PASSWORD_PATTERN, format : longueur;majMin;numMin;speMin;consec) :
Champ | Description |
|---|---|
Longueur minimale | Nombre minimum de caractères (min 1) |
Nb min. majuscules/minuscules | Nombre de changements de casse requis |
Nb min. chiffres | Nombre de chiffres requis |
Nb min. caractères spéciaux | Nombre de symboles requis |
Nb max. caractères consécutifs identiques | Limite les répétitions (ex. « aaa ») |
Pas de caractères ambigus | Exclut les caractères difficiles à distinguer (0/O, 1/l…) |
Paramètres de chiffrement :
Paramètre | Description |
|---|---|
Chiffrer les mots de passe en base | Hash MD5/bcrypt — irréversible une fois activé |
Masquer le mot de passe BDD dans conf.php | Chiffre |
Cacher le lien « Mot de passe oublié » | Masque le lien de réinitialisation sur la page de connexion (MAIN_SECURITY_DISABLEFORGETPASSLINK) |
Comment définir des règles de complexité pour les mots de passe ?
- Rendez-vous dans Administration > Configuration > Sécurité > Onglet 3 — Mots de passe.
- Activez le handler Perso pour définir vos propres critères via la constante USER_PASSWORD_PATTERN.
- Renseignez : longueur minimale, nb min. de majuscules, de chiffres, de caractères spéciaux, nombre max. de caractères consécutifs identiques, et si vous souhaitez exclure les caractères ambigus (0/O, 1/l…).
- Il est fortement recommandé d'activer aussi Chiffrer les mots de passe en base (hash bcrypt)
Attention, cette action est irréversible.
- Cliquez sur le bouton de sauvegarde pour que ces nouvelles règles s'appliquent immédiatement à tous les utilisateurs.
Comment activer le chiffrement de la base de données dans conf.php ?
- Rendez-vous dans Administration > Configuration > Sécurité > Onglet 3 — Mots de passe.
- Localisez la ligne Masquer le mot de passe BDD dans conf.php et cliquez sur Activer.
- Keatic ERP transforme la variable $
keatic ERP_main_db_passkeatic_main_db_pass de votre fichier htdocs/conf/conf.php en une version chiffrée. Note importante : avant d'effectuer cette opération, assurez-vous que votre fichier conf.php est temporairement accessible en écriture par le serveur web. Une fois l'activation terminée, remettez le fichier en lecture seule.
Onglet 4 – Fichiers
Paramètre | Constante | Défaut |
|---|---|---|
Taille maximale des fichiers téléchargés (Ko) | MAIN_SECURITY_MAXFILESIZE_DOWNLOADED | — |
Taille maximale des fichiers envoyés (Ko) | MAIN_UPLOAD_DOC | 2048 Ko |
Masque des nouveaux fichiers (Unix/Linux) | MAIN_UMASK | 0660 |
Extensions interdites au téléversement | MAIN_FILE_EXTENSION_UPLOAD_RESTRICTION | htm,html,php,js,py,cgi… |
Utiliser l'antivirus sur les fichiers téléversés | MAIN_ANTIVIRUS_UPLOAD_ON | Off |
Astuce : La taille maximale des fichiers envoyés ne peut pas dépasser la limite définie dans votre php.ini (paramètre upload_max_filesize).
Quelles sont les extensions de fichiers interdites au téléversement ?
Par défaut, les extensions suivantes sont refusées pour empêcher l'envoi de scripts malveillants :
- Web et Scripts : htm, html, js
- Programmation et Exécutables : php, py (Python), cgi
- Extensions supplémentaires (selon les versions récentes) : shtml, phar, php3, php4, php5. La liste est stockée dans la constante MAIN_FILE_EXTENSION_UPLOAD_RESTRICTION. L'administrateur peut la personnaliser en ajoutant ou supprimant des extensions, séparées par des virgules.
Comment fonctionne l'antivirus pour les fichiers téléversés ?
Lorsqu'un utilisateur ajoute un document, Keatic ERP intercepte le fichier avant son enregistrement définitif et l'envoie pour analyse au logiciel de sécurité configuré. Si le moteur antivirus détecte une menace, le téléversement est immédiatement refusé. Configuration (onglet 4 — Fichiers) :
- Activation : basculez MAIN_ANTIVIRUS_UPLOAD_ON sur ON.
- Commande antivirus : indiquez le chemin complet vers l'exécutable (ex. /usr/bin/clamscan pour ClamAV sous Linux, ClamWin sous Windows).
- Paramètres antivirus : saisissez les arguments nécessaires (ex. --no-summary -r).
- Test : un formulaire de test d'envoi de fichier est disponible en bas de la page pour vérifier la configuration en conditions réelles. Keatic ERP ne fournit pas son propre moteur de détection — il pilote l'appel à l'outil système lors de chaque téléversement.
Onglet 5 – Accès externes (Proxy)
Si le serveur Keatic ERP doit passer par un proxy pour accéder à Internet (mises à jour, cours des devises, météo…), configurez ici les paramètres de connexion.
Paramètre | Constante | Défaut |
|---|---|---|
Timeout de connexion (secondes) | MAIN_USE_CONNECT_TIMEOUT | 10 |
Délai expiration de réponse (secondes) | MAIN_USE_RESPONSE_TIMEOUT | 30 |
Utiliser un serveur proxy | MAIN_PROXY_USE | Non |
Nom/Adresse du proxy | MAIN_PROXY_HOST | — |
Port du proxy | MAIN_PROXY_PORT | 0 |
Identifiant proxy | MAIN_PROXY_USER | — |
Mot de passe proxy | MAIN_PROXY_PASS | — |
Onglet 6 – Événements de sécurité
Active l'enregistrement d'un journal d'audit pour les événements de sécurité sensibles. Chaque événement s'active individuellement.
Avertissement : Cette fonctionnalité peut générer un volume important de données en base selon le nombre d'événements activés et l'activité de votre instance.
Événement | Description | Constante |
|---|---|---|
USER_LOGIN | Connexion réussie | MAIN_LOGEVENTS_USER_LOGIN |
USER_LOGIN_FAILED | Échec de connexion | MAIN_LOGEVENTS_USER_LOGIN_FAILED |
USER_LOGOUT | Déconnexion | MAIN_LOGEVENTS_USER_LOGOUT |
USER_CREATE | Création d'un utilisateur | MAIN_LOGEVENTS_USER_CREATE |
USER_MODIFY | Modification d'un utilisateur | MAIN_LOGEVENTS_USER_MODIFY |
USER_NEW_PASSWORD | Nouveau mot de passe généré | MAIN_LOGEVENTS_USER_NEW_PASSWORD |
USER_ENABLEDISABLE | Activation/désactivation d'un compte | MAIN_LOGEVENTS_USER_ENABLEDISABLE |
USER_DELETE | Suppression d'un utilisateur | MAIN_LOGEVENTS_USER_DELETE |
USERGROUP_CREATE | Création d'un groupe | MAIN_LOGEVENTS_USERGROUP_CREATE |
USERGROUP_MODIFY | Modification d'un groupe | MAIN_LOGEVENTS_USERGROUP_MODIFY |
USERGROUP_DELETE | Suppression d'un groupe | MAIN_LOGEVENTS_USERGROUP_DELETE |
Où consulter le journal d'audit des événements de sécurité ?
Le journal d'audit est consultable dans Accueil > Outils d'administration > Événements de sécurité. L'activation de l'enregistrement se fait dans Administration > Configuration > Sécurité > Onglet 6 — Événements de sécurité (/admin/events.php). Dans les versions récentes (v23 et v24), le journal consigne également l'installation (ou la tentative d'installation) d'un module. Note : si vous utilisez le module Archives/Logs Inaltérables (conformité Loi Finance), les événements liés aux factures et paiements sont gérés dans un journal spécifique et distinct, accessible via le menu dédié à ce module.
Onglet 7 – Paramètres d'authentification OpenID Connect
Permet à Keatic ERP de déléguer l'authentification à un fournisseur d'identité OpenID Connect pour mettre en place du SSO (Single Sign-On). Lorsque l'option est activée (toggle ON/OFF), des champs de configuration supplémentaires apparaissent pour saisir les paramètres du fournisseur (URL, client ID, secret, etc.). Exemples de fournisseurs compatibles : Keycloak, Google, Microsoft Entra ID.
Note : L'intégration native OpenID Connect est une nouveauté v24, remplaçant les anciens modules externes. Elle permet une authentification déléguée sans installation de module tiers.
Onglet 8 – En-têtes de sécurité HTTP
Réservé aux utilisateurs avancés. Un en-tête mal configuré peut rendre Keatic ERP inaccessible ou bloquer des ressources légitimes.
En-tête HTTP | Description | Constante |
|---|---|---|
Referer-Policy | Contrôle les informations de référencement transmises lors des navigations | MAIN_SECURITY_FORCERP |
Strict-Transport-Security (HSTS) | Force l'utilisation de HTTPS | MAIN_SECURITY_FORCESTS |
Permissions-Policy | Contrôle l'accès aux API navigateur (caméra, micro…) | MAIN_SECURITY_FORCEPP |
Content-Security-Policy (CSP) | Déclare les sources autorisées pour scripts, styles, images… | MAIN_SECURITY_FORCECSP |
Astuce : Le bouton + sur le champ CSP ouvre un assistant visuel pour ajouter des directives et sources sans saisie manuelle. Keatic ERP injecte automatiquement script-src 'self' 'unsafe-inline' et style-src 'self' 'unsafe-inline' pour ne pas bloquer son propre fonctionnement.
Permissions par défaut
Sous l'onglet Permissions par défaut, vous définissez les droits automatiquement attribués à chaque nouvel utilisateur créé. Cliquez sur + pour accorder une permission par défaut, et sur − pour la retirer.
Avertissement : Ces réglages ne s'appliquent qu'aux nouveaux utilisateurs. Pour modifier les permissions d'un utilisateur ou groupe existant, allez sur sa fiche dans Accueil > Utilisateurs & Groupes.
Comment gérer les permissions par défaut des nouveaux utilisateurs ?
Rendez-vous dans Accueil > Configuration > Sécurité > Permissions par défaut. L'interface présente tous les modules activés avec leurs actions possibles.
- Cliquez sur + pour qu'une permission soit donnée par défaut à tous les futurs utilisateurs.
- Cliquez sur - pour supprimer cette permission de la configuration par défaut. Points importants : - Ces réglages n'ont aucun effet sur les utilisateurs déjà existants. - Configurez cette section après avoir activé tous les modules souhaités — la liste des droits disponibles dépend des modules actifs. - Si vous avez activé les autorisations avancées (onglet Divers), des permissions plus fines (valider, envoyer par mail…) apparaissent également dans cette liste.