Sécurisation d’un site internet sous Joomla

Sécuriser  son site internet sous Joomla

Qui n’a pas connu son site hacké et des mois d’effort réduit à néant, moi la dernière fois, cela m’avait mis dans une rage folle.  Une parade existe elle est décrit ci dessous. Attention quand même à surveiller les mises à jour des composants que vous utilisez , upgradez les chaque fois que c’est nécessaire.

Methode de protection basique:

1) bien vérifier que tous tes fichiers sont vérouillé dans l’administration. (templates index/css interdire la  modification après l’enregistrement etc..)
Bien vérifier que tous tes repertoires ont un index.html (même zéro bit pas grave) ATTENTION: Sauf dans /www et /administrator

2)

  • Joomla! Register Globals Emulation: OFF
  • Register Globals: OFF (configuration globale, onglet « serveur » uniquement sous joomla 1.0.13)
  • Magic Quotes: ON
  • Safe Mode: OFF <== si possible
  • File Uploads: ON
  • Session auto start: OFF

3) Dans ton (ou tes) .htaccess tu rajoute au tout début ces lignes qui empecherons une eventuelle tentative de listing de celui ci:

Code:
<Files .htaccess>

order allow,deny

deny from all

</Files>

 

 

4) Ensuite dans le fichier globals.php Juste aprés ça:

Code:
// no direct access

defined( ‘_VALID_MOS’ ) or die( ‘Restricted access’ );

 

Tu rajoute ça:*********

if (

ereg(‘gif?cmd’,$_SERVER[‘REQUEST_URI’]) ||

ereg(‘gif&cmd’,$_SERVER[‘REQUEST_URI’]) ||

ereg(‘jpg?cmd’,$_SERVER[‘REQUEST_URI’]) ||

ereg(‘jpg&cmd’,$_SERVER[‘REQUEST_URI’]) ||

ereg(‘txt?cmd’,$_SERVER[‘REQUEST_URI’]) ||

ereg(‘txt&cmd’,$_SERVER[‘REQUEST_URI’]) ||

ereg(‘txt?’,$_SERVER[‘REQUEST_URI’])

)

{

$mail_perso = « tonadresse@mail.com« ;

$mailheaders .= « From: « .$mail_perso . « rn »;

// $mailheaders .= « Bcc: « .$mail_perso. « rn »; // pour copie cachée

$msg = « Une tentative de hacking commise sur « .$_SERVER[‘HTTP_HOST’]. » par « .$_SERVER[‘REMOTE_ADDR’]. » en appelant « .$_SERVER[‘REQUEST_URI’]. »nn »;

$msg .= « HTTP_SERVER_VARS:nn »;

$msg .= « HTTP_HOST_NAME => « .gethostbyaddr($_SERVER[‘REMOTE_ADDR’]). »nn »;

while (list ($key, $val) = each ($_SERVER)) $msg .= « $key => $valn »;

$msg = addslashes($msg);

eval(« $msg = « $msg »; »);

$msg = stripslashes($msg);

@mail($mail_perso,’HACKING TENTATIVE ‘.$_SERVER[‘REMOTE_ADDR’],$msg,$mailheaders);

$iphack = « http://www.who.is/whois-ip/ip-address/« .$_SERVER[‘REMOTE_ADDR’]. » »;

die(‘<html><head><title>Stop Hacking</title></head><body style=margin:0px;><div align= »center » style= »background-color:#CCCC33; »><br /><br /><font size= »+6″><b>Stop hacking!</b></font><br /><br /><img xsrc= »http://www.le_site.chose/ton_image_déstiné_au_hacker.gif » border= »0″><br /><br /><br /><br /><iframe width=100% height=300 frameborder=0 xsrc= »‘.$iphack.' »></iframe></div></body></html>’);

}

// *************

 

Sans oublier de changer:tonadresse@mail.com par ton adresse a toi et www.le_site.chose/ton_image_déstiné_au_hacker.gif

 

Ce script bloque les attaques et t’averti par mail quel fichier (il te donne le lien) et à partir de quel serveur le cracker a voulu injecter, tout en bloquant la tentative.

ATTENTION ! Si votre site est sujet à un grand nombre d’attaques (et vous risquez d’être surpris) alors le server mail
de votre hébergeur peut être surchargé ! Si vous ne souhaitez plus recevoir les mails de notification, supprimez simplement votre adresse mail dans le script.

Un Whois complet est retourné(Whois en panne je modifie au plus vite), ainsi qu’un jolie écran personnalisé pour le cracker

A savoir que le script est actif sur la totalité des requêtes (pas des types de requêtes) vu la modification  du globals.php

En ce qui concerne les injections SQL, c’est propre au codage des composants surtout ceux qui necessite un login ou une vérification de session, si le cracker parvient (pour les plus vicelard) a te polluer avec un script en PERL alors la c’est la boîte de Pandorre qui s’ouvre….

Pour finir, il est inutile de tenir un fichier log des IP retournée comme attaquante car en général c’est du spoofing d’IP donc une chaîne sans fin.

 

Découvrez aussi

7 Thoughts to “Sécurisation d’un site internet sous Joomla”

  1. krys

    ca marche pas!!! SOS
    pb si je vais taper l’url de mon site/administrator/index2.php alors je me retrouve dans mon interface admin sans avoir besoin de me logguer!!!!!!!!!!!!!

    viva la faille

    bon tous mes dossiers ne sont pas vérouillé dans l’admin parce que ‘jai pas fini mon site encore est ce que ça va être résolu après?

  2. Templier

    Complément
    Merci pour cet article qui me sert bien.

    Si je peux rajouter quelque chose : il faut modifier le login administrateur dans la table _users de sa base de données car si un hacker reproduit le lien de mot de passe oublié et que le login utilisateur est admin ou administrator, il sera facile d’en usurper l’identité et de se procurer les parmètres du compte SuperAdmin.

  3. krys

    merci pour toutes ces infos bien utiles
    sans oublier Jsecure et sentinelle , non?

  4. gerard Morvan

    je ne trouve pas le fichier globals.php
    Bonjour,
    sous Joomla 1.5.14 je ne trouve pas le fichier globals.php ?
    Pouvez m’aider ?
    😉

  5. hermann yemdjeu

    sécurité
    bonsoir à tous

    j’utilise joomla1.5.20 et j’ai du mal à trouver ou vérifier que mes fichiers sont verrouillés( comment les verrouillés s’ils ne le sont pas).De plus ou trouver
    tous ces options à mettre en off ( étape 2)
    et pour terminer le fichier globals.php n’existe pas chez moi.
    merci de m’apportez votre soutient

  6. Eric

    Cela ne marche que pour les versions 1.0.X
    pour le Joomla 1.5.20 etc…
    c’est différend

  7. hermann yemdjeu

    j’ai eu à lire quelque part sur le net que joomla 1.5.20 est bien sécurisé. donc plus besoin de faire ces modifications. merci

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.