Composant CG Secure

Vote utilisateur: 4 / 5

Compat icon 3 x longfirst look joomla 4Ce composant permet de protéger l'accès aux formulaires Joomla et à l'administration de votre site en fonction du pays, du statut spammeur et/ou d'un mot de passe.

Version 1.3.0 : Vérification version minimum Joomla
Version 1.2.0 : compatibilité PHP 8.0
Version 1.1.14 : vérifier les erreurs avant réécriture htaccess
Version 1.1.13 : bloquer les badrobots, php error sur abuseipdb
Version 1.1.12 : bloquer la mise à jour .htaccess si déjà en cours
Version 1.1.11 : vérification code pays dans country.io/names.json
Version 1.1.10 : bloque brute force, répertoire backup
Version 1.1.9 : intégration partielle 7G firewall
Version 1.1.8 : sécurisation par fichier htaccess
Version 1.0.15 : 127.0.0.0 = localhost
Version 1.0.14 : bypass com_users.profile sur formulaire de contact
Version 1.0.13 : pays inconnu = rejet
Version 1.0.12 : spammeur status incorrect
Version 1.0.11 : redirection
Version 1.0.9 : JED Compatibility
Version 1.0.8 : autorise tous les pays, vérifie seulement spammeur
Version 1.0.7 : Joomla 4.0 compatibility (Octobre 2019)
Version 1.0.6 : version initiale (Octobre 2019)

Téléchargement du composant CG Secure

(déjà téléchargé 574 fois)

Téléchargement du composant CG Secure Pour Joomla 4

(déjà téléchargé 24 fois)

 

Ce composant reprend les fonctions des plugins CG Secure et CG Country en centralisant leurs paramétrages.

Important : lorsque vous migrez en Joomla 4.0 votre site, les plugins CG Secure sont automatiquement désactivés et sont relancés par la mise à jour du composant.

Vous autorisez un ou plusieurs pays ayant le droit de se connecter à votre administration, à votre module de connexion, à vos formulaires. Les autres pays sont alors identifiés en tant que hackeurs tentant d'accéder à des zones interdites.

Pour information, même si votre site n'a pas d'espace privé, un utilisateur peut accéder au formulaire d'identification en ajoutant /index.php?option=com_users&layout=edit&id=0 à l'adresse de votre site. Si, de plus, vous n'avez pas désactivé l'enregistrement automatique des utilisateurs (actif par défaut sur les anciennes versions Joomla avant 3.7.0), bienvenue à l'open bar.

Une fois activé, CG Secure protège le répertoire /administrator par un mot de passe ainsi que vos formulaires Joomla, après avoir vérifié le pays d'origine par rapport à l'adresse ip.

Bizarrerie Internet : La Martinique, la Guadeloupe et l'île de la Réunion, bien que départements français, sont considérés comme des pays par Internet, chacun ayant son code pays : MQ, GP et RE. N'oubliez pas de les activer si vous autorisez la France (fr) et ses DOM. Pour Saint Pierre et Miquelon, il faut entrer PM et, pour Wallis et Futuna, WF.

L'adresse IP est contrôlée par rapport à la base de données AbuseIPDB qui retourne la pays associé à l'adresse IP, ainsi que s'il est déjà présent dans la base de données des hackeurs potentiels.

En cas de tentative d'intrusion par un pays non autorisé, vous pouvez rapporter automatiquement cette adresse IP dans la base de données AbuseIPDB, après vous y être enregistré (c'est gratuit).

Les erreurs de connexion peuvent être stockées dans un fichier cgipcheck.trace.log dans votre répertoire des logs. Personnellement, j'utilise le composant View Logs pour visualiser mes fichiers logs.

Les utilisateurs rejetés n'auront pas accès à l'écran de connexion à l'administration Joomla, ni aux autres formulaires.

Les adresses IP rejetées sont stockées dans la base de données (table #__cg_rejected_ip). Ces adresses restent stockées le temps que vous définissez dans le paramètre "Durée de vie IP". Les adresses IP bannies sont visualisables dans le menu "Logs" du composant CG Secure.

1 composant

3 plugins

1 librairie.

Le composant CG Secure centralise le paramétrage des plugins. Il permet de visualiser les intrusions bloquées.
  • Plugin System CG Secure (événement onAfterDispatch) vérifie les accès à /administrator (attaquant cherchant à se logguer à votre administration via /administrator)
  • Plugin User CG Secure (événement onContentPrepareForm): vérifie avant l'affichage des formulaires Joomla (com_users, com_admin) (attaquant passant par les formulaires Joomla),
  • Plugin Authentication CG Secure (événement onUserAuthenticate) : vérifie au moment de l'authentification si l'accès est autorisé (attaquant ne passant pas par les formulaires Joomla)
La librairie cgsecure/ipcheck.php centralise le contrôle des adresses IP et signale à la base AbuseIPDB les IP essayant d'accéder à des zones non autorisées de votre site.

Remarque : si vous souhaitez sécuriser d'autres formulaires (VisForm, RSForm,...), vous pouvez facilement développer votre propre plugin avec la surveillance des événements de votre composant. Visforms utilise l'événement onVisformsFormPrepare($context,$form,$params), RSform l'événement rsfp_f_onBeforeFormDisplay($array). Ces plugins sont disponibles sur simple demande.

La version 1.1 introduit la sécurisation du site via le fichier .htaccess.

Naturellement, cette fonction ne fonctionne que sur serveur Apache 2.4.x minimum.

Cette sécurisation reprend les exemples fournis par https://docs.joomla.org/Htaccess_examples_(security), par https://perishablepress.com/category/htaccess/  ainsi que par AESecure. La différence vient dans la possibilité de bloquer les hackeurs avérés (attaques XSS, SQL injection,...) au niveau du fichier .htaccess afin de bloquer les attaques au plus tôt.

init htaccess
  • Multi-adresses : vous accédez à votre site via plusieurs adresses,
  • Sous-répertoires : votre site est dans un sous-répertoire chez votre hébergeur ou, en local, dans votre environnement;
 
param. htaccess

Lorsque vous cliquez sur activation, si votre site n'a pas encore de fichier .htaccess, CG Secure active le fichier htaccess.txt fourni par Joomla en le copiant à la racine de votre site.

Après avoir sauvegardé l'ancien fichier htaccess, le composant CG Secure ajoute ensuite les lignes nécessaires à la sécurité dans le fichier .htaccess en y insérant les lignes du fichier administrator/components/com_cgsecure/assets/cgaccess.txt.

Si ces lignes par défaut ne vous conviennent pas ou que vous souhaitez en ajouter/retirer/modifier, vous pouvez le faire en créant un fichier custom.txt dans le même répertoire que le fichier cgaccess.txt. Le fichier custom.txt sera alors utilisé à la place du fichier par défaut.

Attention: la manipulation des fichiers htaccess peut provoquer des blocages de votre site internet. Les anciennes versions du fichier sont sauvegardées dans le répertoire administrator/components/com_cgsecure/backup.

Note : la communication entre le fichier .htaccess et le composant CG Secure est sécurisée par un numéro aléatoire calculé à chaque activation du htaccess. Pour le modifier, désactiver le htaccess en cliquant sur Non du paramètre Activation, puis cliquer sur Oui, vous obtiendrez alors une nouvelle clé de sécurité. 

Comment accéder à votre administration une fois le plugin System CG Secure activé.

Remarque: si aucun mot de passe n'est entré, l'accès à l'administration s'effectue sans modification, sauf contrôle du pays et du statut spammeur.

  • HTTP Authentication: fenêtre standard Apache d'authentification. Vous devrez entrer mot de passe dans la zone "Password". Vous pouvez laisser la zone "Username" vide, car elle n'est pas vérifiée, 
  • Compatibilité: Vous devez entrer http://www.yourwebsite.com/administrator?votremotdepasse — "votremotdepasse" étant remplacé par le mot de passe que vous avez paramétré dans le composant CG Secure.

cgsecure config

Par défaut, seuls les formulaires de connexion Joomla sont protégés (com_admin, com_users). Si vous souhaitez bloquer aussi les formulaires de contact Joomla, il suffit d'ajouter com_contact dans la liste des composants à sécuriser.

Mettre * dans la liste des "pays autorisés" inhibera le contrôle du pays, mais laissera la vérification "spammeur" de l'adresse IP.

cgsecure admin

Vous pouvez définir sur cet écran la "liste blanche", c'est-à-dire des adresses IP pour lesquelles aucun contrôle ne sera effectué.

cgsecure logs

Si vous êtes enregistré chez AbuseIPDB (comme suggéré plus haut), vous pouvez aussi obtenir un historique des adresses IPs que vous avez rejetées (onglet Reports de votre espace "user account").

abuseip

Dans la colonne Comment de cet exemple, les 2 premières lettres sont celles de votre site, e = erreur, puis, un numéro d'erreur si l'erreur a été générée par un blocage lié au fichier .htaccess, les autres erreurs venant des 3 plugins CG Secure (Authentication, System, User).