SOURCE:http://www.aidoforum.com/tutoriaux-161-securiser-votre-forum-phpbb.html -> Sécuriser votre forum phpbb

Etape 1 : Les dossiers

Pour commencer, juste après l'installation de votre forum, il vous faut supprimer les dossiers install et contrib à la racine de votre forum (le dossier et tout son contenu).

Après, vous supprimez les dossiers (et toujours leur contenu) suivant :
  • db/schemas/
    (seulement le dossier schemas/ et son contenu, n'effacez pas le dossier db/ et les fichiers s'y trouvant)
    docs/
  • Maintenant, il faut augmenter la sécurité de certains répertoires. L'opération se déroule grâce à un fichier htaccess. Créez un fichier texte et incrivez dedans cette unique ligne (sans espace après le dernier mot, ni saut de ligne) : deny from all

    Vous l'enregistrez sous le nom htaccess.txt

    Ensuite vous le transférez par FTP (en mode ASCII, cette fonction dépend de votre logiciel FTP) dans les répertoires qui suivent et vous le renommez ensuite en .htaccess :
  • includes/
    db/
    language/
  • Pour finir cette première étape de protection, il nous faut supprimer les fichiers inutiles de votre forum.
  • templates/subSilver/install.tpl
    (subSilver est à remplacer par le nom de votre template), supprimez le fichier install.tpl
    db/
    effacez les fichiers qui ne correspondent pas à votre type de base de données. Pour mysql par exemple, vous laissez seulement les fichiers db2.php, mysql.php, mysql4.php (pour mysql 4.x), et index.htm

  • Etape 2 : Protection du fichier config.php

    Le fichier config.php se trouve par défaut à la racine de votre forum. Pour plus de sécurité, nous allons le déplacer dans un nouveau répertoire.

    Pour cela, créez un répertoire à la racine de votre forum et appelez-le comme vous voulez (en respectant ces seules conditions : pas de majuscules ni d'espaces). Dans mon exemple, je le nommerais includes_toto. Cette opération effectuée, ajoutez dans le répertoire nouvellement crée un fichier .htaccess comme décrit dans le message précédent. Pour finir, déplacez le fichier config.php dans le nouveau répertoire (n'oubliez pas se supprimer le fichier config.php à la racine du forum).

    Maintenant, il faut modifier un autre fichier pour que cette modification soit prise en compte. Editez avec le bloc-note par exemple, le fichier common.php situé à la racine du forum et faites comme suit :


    ----[ Ouvrir ]----

    common.php

    ----[ Trouver ]----

    include($phpbb_root_path . 'config.'.$phpEx);

    ----[ Remplacer par ]----

    include($phpbb_root_path . 'includes_toto/config.'.$phpEx);


    le répertoire includes_toto est à changer par le nom que vous avez donné à votre nouveau répertoire contenant le fichier config.php.

    Enregistrez et transférez le fichier common.php modifié par FTP à la racine de votre forum (remplacez l'ancien).

    Astuce supplémentaire

    Vous pouvez mettre un fichier config.php servant de leurre à la racine de votre forum, celui-ci contenant de mauvaises informations pour les variables $dbname, $dbuser, $dbpasswd et $table_prefix.

    (merci à FX pour son sujet sur lequel je me suis basé pour les étapes 1 et 2)

    Etape 3 : Protection du dossier admin

    Le dossier admin/ étant une pièce maîtresse d'un forum phpBB, tout ceux ayant le rang d'administrateur (de façon officielle comme officieuse) peuvent modifier l'intégralité d'un forum. Il convient donc de sécuriser cette zone. Pour cela, la création d'un système HTaccess composé de deux fichiers nommés .htaccess et .htpasswd est une protection efficace, qui oblige donc tout administrateur à rentrer un indentifiant et un mot de passe pour accéder à l'administration.

    Certains hébergeurs proposent depuis le panel de gestion d'un compte la possibilité de créer des protections sur les répertoires présents sur le ftp. Si ce n'est pas le cas, il reste la méthode manuelle. Là encore, tout dépend de votre hébergeur, car la manipulation peut se révéler différente suivant celui-ci. Par exemple, pour ceux étant sur un hébergement Free, il vous faut suivre ce qui se trouve sur cette page (Free uniquement). Il vous sera expliqué comment créer un fichier .htaccess et .htpasswd pour un répertoire spécifique. Donc, renseignez-vous auprès de votre hébergement s'il existe une page spéciale détaillant la marche à suivre, sinon passez par un tutorial disponible sur internet
    PHPdébutant
    SiteduZer0

    Sources supplémentaires:

    Il existe quelques outils annexes pour générer un système HTaccess, ou bien pour crypter le contenu du fichier .htpasswd. Voici deux adresses parmis celles disponibles sur internet:

    htaccess generator
    ce script vous permettra de générer simplement des fichiers .htaccess et .htpasswd.
    htpasswd Content Generator
    cette page vous permettra de crypter rapidement le contenu du fichier .htpasswd.

    Etape 4 : Garantir une sécurité accrue dans l'ACP

    L'ACP (Administration Control Panel) permet donc de gérer la totalité d'un forum phpBB, et même la base de données associée. Or, si une personne malveillante arrive à avoir accès au panneau d'administration, il peut facilement supprimer entièrement la base de donnée. Je préconise deux choses pour éviter ce résultat, n'avoir aucun accès à la base de données depuis l'ACP, et ne gérer cette base de donnée que depuis un module extérieur également sécurisé. J'entends par là, par exemple, l'utilisation de PhpMyAdmin (fourni la plupart du temps par l'hébergement et sécurisé par défaut). Renseignez-vous auprès de votre hébergeur.

    Pour empêcher l'accès à la base de données depuis l'ACP, supprimez depuis votre ftp les fichiers suivants:
  • admin/admin_db_utilities.php
    templates/subSilver/admin/db_utils_backup_body.tpl
    templates/subSilver/admin/db_utils_restore_body.tpl
  • Bien entendu, évitez par la suite d'installer des Mods permettant de lancer des actions directement dans la base de données (par exemple: un Mod pour ajouter des requêtes SQL, un Mod pour réparer ou optimiser la base de données). Toutes ces actions doivent être effectuées depuis PhpMyAdmin ou tout autre module extérieur, module sécurisé bien évidemment. Si un hébergeur fourni PhpMyAdmin, son accès est le plus souvent sécurisé. Si rien n'est disponible par votre hébergeur, vous pouvez vous-même installer PhpMyAdmin
    (ou bien eSKUeL) et en protéger l'accès via un HTaccess.

    Etape 5 : Identifiants et mots de passe

    Pour que la sécurité de votre forum soit vraiment efficace, il faut avant toute chose bien choisir vos mots de passe, ou plutôt ne pas les choisir du tout. Préférez des mots de passe assez longs (6-12 caractères étant une bonne moyenne) composés d'une succession aléatoire de chiffres et de lettres, n'ayant aucun rapport avec votre vie. Donc ne choisissez pas la plaque d'immatriculation de votre voiture, et encore moins votre date de naissance. Si vous voulez les noter, comme pense-bête, ne le faites que dans un endroit sûr de votre PC, ou sur un support autre qu'informatique.

    Deuxième point important, et cela concerne la plupart du temps les équipes administratives d'un forum, ne laissez aucune traces d'identifiants et de mots de passe dans les sections privées d'un forum ou dans un message privé. Si une personne malveillante récupère un rang d'administrateur, elle pourrait avoir accès facilement à ces données. si vous devez passer ces informations à une autre personne, faites le d'une manière indépendante au forum.

    Etape 6 : Indexation des répertoires

    Par défaut, le contenu d'un répertoire est visible par tous s'il ne contient pas au moins un fichier index.htm(l). Ce fichier empêche simplement qu'un visiteur puisse visualiser le contenu d'un répertoire. Le dossier templates/ en contient un par exemple (taille: 169 octets). Si vous avez ajouté des répertoires dans votre forum, contenant des images ou autres fichiers, copiez dans ceux-ci ce fichier index.htm pour ne pas lister son contenu.

    (tutorial par reddog - EzCom)

    Par reddog, le 13 Avril 2005 à 18h06