hacker-attack.-100L'un des fichiers les plus sensibles sous Joomla! est le fichier configuration.php qui se trouve à la racine de chaque installation par défaut.

Ce fichier est très convoité par les hackeurs et à juste titre car il contient toutes les informations relatives au fonctionnement de votre site (identifiants des bases de données et FTP entre autres).

Depuis Joomla 1.6, il est possible de modifier l'emplacement de ce dernier sur un site et ainsi améliorer la sécurité de ce dernier. Il faut bien garder à l'esprit qu'aucune solution de sécurité n'est garantie à 100%, mais l'on peut s'en approcher.


Avant de commencer les modifications nécessaires pour déplacer le configuration.php, nous vous conseillons de réaliser une sauvegarde de vos fichiers.

 

Modification des fichiers


travaux 150Il est conseillé de passer le site en mode maintenance le temps des interventions, nous allons récupérer en local les deux fichiers qui seront à modifier

  • defines.php présent dans le dossier /administrator/includes
  • defines.php dans le dossier /includes

Les modifications qui seront apportées sur les fichiers sont identiques mais attention ces deux fichiers comportent des lignes différentes, donc soyez vigilent et ne pas les mélanger .

Pour commencer vous allez créer un dossier(répertoire) à la racine de votre site avec le nom de votre choix, attention de ne jamais utiliser d'accent ou chiffre au risque de générer des erreurs. Pour notre exemple nous utiliserons mondossier

Une fois ce dossier créé nous allons copier le fichier configuration.php dans ce dernier via un transfert par un client de FTP, nous en profiterons pour y ajouter aussi un index.html (un de ceux de Joomla conviendra)

La première partie est donc en place, il nous reste les modifications à apporter aux fichier précédemment récupérés en local. Le principe des modifications est de renseigner la nouvelle localisation du fichier configuration.php pour le bon fonctionnnement de Joomla.

Nous prendrons donc l'exemple du fichier defines.php présent dans le dossier includes à la racine du site, utilisez surtout un éditeur de texte adéquat (cf:cet article)

Ajoutez les deux lignes suivantes

define('_JDEFINES', 1);  define('JPATH_BASE', dirname(__FILE__));

juste en dessous de celle-ci

defined('_JEXEC') or die;

Modifiez cette ligne

define('JPATH_CONFIGURATION', JPATH_ROOT);

comme-ci dessous

define('JPATH_CONFIGURATION',   JPATH_ROOT .DS.'mondossier');

Sous Joomla 3.0 (contribution de cavo789)

La constante DS a été supprimée dans Joomla 3.0 aussi il faut utiliser DIRECTORY_SEPARATOR à la place.

la ligne suivante sous Joomla 2.5

define('JPATH_CONFIGURATION',   JPATH_ROOT .DS.'mondossier');

serait idéalement à remplacer par

define('JPATH_CONFIGURATION', JPATH_ROOT.DIRECTORY_SEPARATOR.'mondossier');

 Voilà nous arrivons bientôt à fin de ce tutoriel, il nous reste plus qu'à transférer respectivement chacun des fichiers modifiés dans le bon dossier.

La dernière opération va consister à simplement supprimer le configuration.php présent à la racine du site, si ce n'est déjà fait.

move configuration

Pour aller plus loin


Des chmods restrictifs (cf:cet article) utilisés sur les fichiers de cet article (444) et le répertoire créé (505) seront bien sûr un plus.
 
Pour finir nous vous conseillons d'ajouter la ligne ci-dessous dans le fichier robots.txt 

Disallow: /mondossier/

Vos réactions sur le sujet du forum

Adaptation libre d'un extrait de l'article : Simple Security Guide, Part 2

A propos de l'auteur
Stéphane Bourderiou
Nom: Stéphane Bourderiou
Fondateur des sites Aide-joomla.fr et SFK
Derniers articles de l'auteur