PS PrestaShop Intermédiaire

Admin Shield : sécuriser le back-office PrestaShop 8 et 9

Installer et configurer Admin Shield : limitation des tentatives, blocage IP et pays, captcha, lien secret, alertes, sessions, journal d'activité et rapport.

Mis à jour Version du module 1.3.0

Admin Shield protège l’accès au back-office de PrestaShop 8 et 9. Le module se règle depuis Paramètres avancés > Admin Shield, organisé en sept onglets : Tableau de bord, Historique des connexions, Journal d’activité, Sessions actives, Bannissements et verrous, Réglages et Accès au back-office.

Installation

  1. Dans Modules > Gestionnaire de modules, cliquez sur Installer un module et envoyez le fichier ZIP.
  2. L’installation vide le cache de PrestaShop : la protection de toutes les pages du back-office est active dès la requête suivante.
  3. Le module accorde à tous les profils d’employés le droit de voir le module. Sans ce droit, PrestaShop n’exécuterait pas ses hooks pour ces employés et leurs actions ne seraient pas journalisées.

Premiers réglages recommandés

  1. Onglet Réglages, bloc Adresses IP : cliquez sur Ajouter mon IP actuelle à la liste blanche. Une IP en liste blanche n’est jamais bloquée.
  2. Vérifiez la ligne IP client détectée. Derrière Cloudflare ou un proxy, gardez le mode Automatique ou choisissez le mode adapté.
  3. Configurez la vérification anti-bot (voir plus bas) et testez les clés.
  4. Cliquez sur M’envoyer un e-mail de test pour vérifier que les e-mails de la boutique partent.
  5. Onglet Accès au back-office : renommez le dossier admin si la checklist le signale comme facile à deviner.

Testez chaque protection depuis une fenêtre de navigation privée sans fermer votre session principale.

Limitation des tentatives de connexion

Par défaut, 5 échecs sur un même compte depuis une même IP, ou 15 échecs depuis une IP tous comptes confondus, dans une fenêtre de 15 minutes, verrouillent la connexion pendant 15 minutes. Avec le verrou progressif, la durée double à chaque récidive dans les 24 heures, jusqu’à 24 heures. Après 3 verrous en 24 heures, l’IP est bannie 7 jours. Le verrou porte sur le couple IP et compte : un attaquant ne peut pas bloquer un employé légitime connecté depuis une autre adresse. Les demandes de mot de passe oublié sont limitées à 5 par IP et par heure.

L’onglet Bannissements et verrous liste les verrous actifs, que vous pouvez lever, et les bannissements, que vous pouvez retirer. Vous y bannissez aussi une IP ou une plage CIDR à la main.

Adresses IP et filtre par pays

La liste blanche accepte des IP et des plages CIDR IPv4 et IPv6, une par ligne. L’option Autoriser uniquement la liste blanche refuse toute autre adresse ; elle n’est enregistrée que si votre IP actuelle figure dans la liste.

Le filtre par pays fonctionne en mode autorisation (seuls les pays choisis) ou blocage. Le pays vient de l’en-tête Cloudflare quand la requête arrive bien des serveurs de Cloudflare, sinon d’une base MMDB. Cliquez sur Télécharger la base DB-IP Lite pour installer la base pays gratuite, à mettre à jour tous les deux mois environ. Les adresses de réseau local ne sont jamais filtrées, et l’enregistrement est refusé s’il bloquerait votre propre connexion.

Les visiteurs refusés reçoivent une page 403, ou une page 404 si vous préférez cacher l’existence du back-office.

Vérification anti-bot : Turnstile ou hCaptcha

  1. Créez un widget sur dash.cloudflare.com (Turnstile) ou dashboard.hcaptcha.com, en autorisant le domaine de votre back-office.
  2. Dans Réglages, choisissez le fournisseur, collez la clé du site et la clé secrète, puis enregistrez.
  3. Résolvez le widget de test et cliquez sur Vérifier et activer.

La vérification ne s’applique à la page de connexion qu’après ce test réussi : une clé erronée ne peut pas bloquer les administrateurs. Toute modification des clés la désactive jusqu’au test suivant. Par défaut, les connexions passent si le fournisseur est injoignable.

Accès au back-office : lien secret et dossier admin

Lien d’accès secret

Une fois activé, le back-office ne s’ouvre que dans un navigateur qui a visité le lien secret une fois ; tous les autres reçoivent une page 404. Le navigateur qui l’active garde l’accès, et le lien est envoyé par e-mail aux destinataires des alertes. Générer un nouveau lien invalide tous les navigateurs sauf le vôtre. Les IP en liste blanche n’ont jamais besoin du lien.

Renommer le dossier admin

Un nom aléatoire est proposé. Avant le renommage, la nouvelle adresse est envoyée par e-mail ; le dossier est ensuite renommé et le cache vidé. Reconnectez-vous à la nouvelle adresse et mettez à jour les tâches cron qui pointent vers l’ancien dossier. Si le serveur web n’a pas le droit de renommer le dossier, faites-le par FTP puis videz le cache dans Paramètres avancés > Performances.

Alertes de connexion inhabituelle

La première connexion de chaque employé après l’installation sert de référence. Une alerte part ensuite pour une nouvelle IP, un nouveau pays, un nouveau navigateur ou système, ou une connexion hors de la plage horaire saisie (par exemple 07-21). Les destinataires sont l’employé, les super-administrateurs et les adresses supplémentaires. Le lien Ce n’était pas moi de l’e-mail, valable 7 jours, bannit l’IP, ferme les sessions de l’employé et invalide son mot de passe ; l’employé en choisit un nouveau avec Mot de passe oublié.

Le champ webhook publie aussi ces alertes, les verrous et les modifications sensibles dans Slack, Microsoft Teams, Discord, Google Chat ou Mattermost.

Sessions actives et inactivité

L’onglet Sessions actives liste les sessions ouvertes avec l’IP, le pays et l’appareil de la connexion. Vous pouvez fermer une session, déconnecter toutes vos autres sessions, ou déconnecter un employé partout. Le réglage Déconnexion après inactivité ferme les sessions restées inactives au-delà du délai choisi ; les rafraîchissements automatiques du back-office ne comptent pas comme activité.

Journal d’activité

Chaque création, modification et suppression faite en back-office est enregistrée avec l’employé, l’IP, la page et, pour une modification, l’ancienne et la nouvelle valeur de chaque champ. Mots de passe et jetons sont masqués. Les installations, désinstallations et mises à jour de modules sont aussi tracées. Les modifications d’employés, de profils, de clés API, d’URL de boutique et les installations de modules sont marquées sensibles et envoyées par e-mail aux administrateurs. Filtrez par employé, action ou objet, et exportez en CSV. Ajoutez dans les Réglages les classes d’objets à ne pas journaliser.

Rapport de sécurité

Le rapport part chaque semaine ou chaque mois aux super-administrateurs et aux adresses supplémentaires. Pour un envoi fiable, appelez une fois par jour l’URL cron affichée dans les Réglages. Sans cron, le rapport part lors de la visite suivante du back-office une fois l’échéance atteinte. Le bouton M’envoyer le rapport maintenant sert d’aperçu.

Accès de secours

Si vous êtes bloqué, créez par FTP un fichier vide nommé disable.flag dans modules/dfadminshield/ : toutes les protections s’arrêtent jusqu’à sa suppression. Ne supprimez pas le dossier du module, le conteneur Symfony de PrestaShop le référence. La valeur DFAS_KEY de la table configuration contient la clé du lien secret.

Double authentification

Admin Shield protège la page de connexion et surveille les accès, sans demander de code après le mot de passe. Pour ajouter cette étape, installez aussi le module 2FA Google Authenticator de DataFirefly : les deux fonctionnent ensemble.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support