une des étapes importantes est de pouvoir empêcher qui que ce soit de pouvoir pénétrer dans l'administration.
Des attaques sont souvent enregistrées vers le dossier adm afin de trouver une faille pour s'y introduire.
Outre que le système des permissions de phpbb3 est assez radical contre les intrusions, rien n'est impénétrable...
Pour faire échouer radicalement des tentatives d'intrusions, le fait de pouvoir renommer le dossier adm renforce alors considérablement la sécurité.
Il est vraiment dommage que phpbb3 ne soit pas pourvu d'origine de cette fonction
Il est aussi fait une adaptation pour des outils officiels de phpbb: le stk (support toolkit) et l'installeur umil .
Pour y remédier, j'ai donc pensé à combler ce manque, mais comme les outils de phpbb3 (mises à jour automatiques et automod) ne sont pas adaptés à ceci, il faudra faire un renommage du dossier avant d'utiliser ces outils.
Mise en œuvre de l'astuce:
Ouvrir le fichier config.php
Rechercher:
- Code: Select all
$load_extensions = '';
Ajouter après dans une nouvelle ligne:
- Code: Select all
$admin_path = 'administration/';
Note:
'administration/' est un exemple, il vous est possible de mettre le nom de dossier qui vous convient.Autre exemple:
'21548796arf35exv/'Vous renommerez le dossier "adm" par ce nouveau nom de dossier...
Ouvrir le fichier memberlist.php
Rechercher:
- Code: Select all
$template->assign_vars(array(
'L_POSTS_IN_QUEUE' => $user->lang('NUM_POSTS_IN_QUEUE', $member['posts_in_queue']),
Ajouter avant dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
global $admin_path;
if (is_dir($phpbb_root_path.$admin_path))
{
$_admin_path = $phpbb_root_path.$admin_path;
}
else
{
$_admin_path = $phpbb_root_path. 'adm/';
}
// Rename admin folder ----//
Rechercher:
- Code: Select all
'U_USER_ADMIN' => ($auth->acl_get('a_user')) ? append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=users&mode=overview&u=' . $user_id, true, $user->session_id) : '',
Remplacer par:
- Code: Select all
// Rename admin folder ----
//'U_USER_ADMIN' => ($auth->acl_get('a_user')) ? append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=users&mode=overview&u=' . $user_id, true, $user->session_id) : '',
'U_USER_ADMIN' => ($auth->acl_get('a_user')) ? append_sid("{$phpbb_root_path}{$_admin_path}index.$phpEx", 'i=users&mode=overview&u=' . $user_id, true, $user->session_id) : '',
// Rename admin folder ----//
Ouvrir le fichier viewonline.php
Rechercher:
- Code: Select all
case 'adm/index':
Remplacer par:
- Code: Select all
case $admin_path.'index':
Ouvrir le fichier adm/swatch.php
Rechercher:
- Code: Select all
$template->set_custom_template($phpbb_root_path . 'adm/style', 'admin');
remplacer par:
- Code: Select all
// Rename admin folder ----
$template->set_custom_template($phpbb_root_path . $admin_path . 'style', 'admin');
// Rename admin folder ----//
Ouvrir le fichier includes/functions.php
Rechercher:
- Code: Select all
global $db, $config, $template, $SID, $_SID, $user, $auth, $phpEx, $phpbb_root_path
Ajouter après dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
global $admin_path;
if (is_dir($phpbb_root_path.$admin_path))
{
$_admin_path = $phpbb_root_path.$admin_path;
}
else
{
$_admin_path = $phpbb_root_path. 'adm/';
}
// Rename admin folder ----//
Rechercher:
- Code: Select all
'ROOT_PATH' => $phpbb_root_path,
Ajouter après dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
'ADM_ROOT_PATH' => $_admin_path,
// Rename admin folder ----//
Rechercher:
- Code: Select all
$template->assign_vars(array(
'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
Ajouter avant dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
global $admin_path;
if (is_dir($phpbb_root_path.$admin_path))
{
$_admin_path = $phpbb_root_path.$admin_path;
}
else
{
$_admin_path = $phpbb_root_path. 'adm/';
}
// Rename admin folder ----//
Rechercher:
- Code: Select all
'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$phpbb_root_path}adm/index.$phpEx", false, true, $user->session_id) : '')
Remplacer par:
- Code: Select all
// Rename admin folder ----
//'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$phpbb_root_path}adm/index.$phpEx", false, true, $user->session_id) : '')
'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$_admin_path}index.$phpEx", false, true, $user->session_id) : '')
// Rename admin folder ----//
Ouvrir le fichier includes/db/dbal.php
Rechercher:
- Code: Select all
global $cache, $starttime, $phpbb_root_path, $user;
Ajouter après dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
global $admin_path;
if (is_dir($phpbb_root_path.'adm/'))
{
$_admin_path = $phpbb_root_path.'adm/';
}
else
{
$_admin_path = $phpbb_root_path.$admin_path;
}
// Rename admin folder ----//
Rechercher:
- Code: Select all
<link href="' . $phpbb_root_path . 'adm/style/admin.css" rel="stylesheet" type="text/css" media="screen" />
Remplacer par:
- Code: Select all
<link href="' . $_admin_path . 'style/admin.css" rel="stylesheet" type="text/css" media="screen" />
Ouvrir le fichier includes/ucp/ucp_groups.php
Rechercher:
- Code: Select all
global $db, $user, $auth, $cache, $template;
Ajouter après dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
global $admin_path;
// Rename admin folder ----//
Rechercher:
- Code: Select all
$avatar_img = (!empty($group_row['group_avatar'])) ? get_user_avatar($group_row['group_avatar'], $group_row['group_avatar_type'], $group_row['group_avatar_width'], $group_row['group_avatar_height'], 'GROUP_AVATAR') : '<img src="' . $phpbb_root_path . 'adm/images/no_avatar.gif" alt="" />';
Remplacer par:
- Code: Select all
// Rename admin folder ----
//$avatar_img = (!empty($group_row['group_avatar'])) ? get_user_avatar($group_row['group_avatar'], $group_row['group_avatar_type'], $group_row['group_avatar_width'], $group_row['group_avatar_height'], 'GROUP_AVATAR') : '<img src="' . $phpbb_root_path . 'adm/images/no_avatar.gif" alt="" />';
$avatar_img = (!empty($group_row['group_avatar'])) ? get_user_avatar($group_row['group_avatar'], $group_row['group_avatar_type'], $group_row['group_avatar_width'], $group_row['group_avatar_height'], 'GROUP_AVATAR') : '<img src="' . $phpbb_root_path . $admin_path . 'images/no_avatar.gif" alt="" />';
// Rename admin folder ----//
Rechercher:
- Code: Select all
'U_SWATCH' => append_sid("{$phpbb_root_path}adm/swatch.$phpEx", 'form=ucp&name=group_colour'),
Remplacer par:
- Code: Select all
// Rename admin folder ----
//'U_SWATCH' => append_sid("{$phpbb_root_path}adm/swatch.$phpEx", 'form=ucp&name=group_colour'),
'U_SWATCH' => append_sid("{$phpbb_root_path}{$admin_path}swatch.$phpEx", 'form=ucp&name=group_colour'),
// Rename admin folder ----//
Puis, après avoir appliqué ces modifications, rendez-vous sur votre ftp et renommez le dossier adm du nom que vous avez attribué comme valeur de la variable $phpbb_admin_path dans config.php
Rendez-vous sur votre forum, pointez sur le lien administration et voyez alors la différence!
Vous ne risquez plus aucune attaque sur l'administration car elle est devenue introuvable
Important:
Avant d'utiliser une mise à jour automatique de phpbb ou automod pour installer un mod, renommez alors le dossier de l'administration en "adm" afin qu'il soit trouvé et que aucune erreur ne se produise.
N'ayez crainte, le code s'adapte alors au renommage du dossier.
Après cela, renommez avec la valeur de $phpbb_admin_path.
# Adaptation de ce tuto pour le stk:
Pour pouvoir bien utiliser le stk, quelques petites modifications sont aussi indispensable.
Ouvrir le fichier stk/index.php
Rechercher:
- Code: Select all
// Output common stuff
Ajouter avant, dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
if (!is_dir(PHPBB_ROOT_PATH.$admin_path))
{
define('ADMIN_ROOT_PATH', PHPBB_ROOT_PATH . 'adm/');
}
else
{
define('ADMIN_ROOT_PATH', PHPBB_ROOT_PATH . $admin_path);
}
// Rename admin folder ----//
trouver:
- Code: Select all
'U_ADM_INDEX' => append_sid(PHPBB_ROOT_PATH . 'adm/index.' . PHP_EXT, false, true, $user->session_id),
remplacer par:
- Code: Select all
// Rename admin folder ----
'U_ADM_INDEX' => append_sid(ADMIN_ROOT_PATH . 'index.' . PHP_EXT, false, true, $user->session_id),
// Rename admin folder ----//
Ouvrir le fichier stk/tools/admin/profile_list.php
rechercher:
- Code: Select all
'U_USER_ADMIN' => append_sid(PHPBB_ROOT_PATH . 'adm/index.' . PHP_EXT, 'i=users&mode=overview&u=' . $row['user_id'], true, $user->session_id),
remplacer par:
- Code: Select all
// Rename admin folder ----
'U_USER_ADMIN' => append_sid(ADMIN_ROOT_PATH . 'index.' . PHP_EXT, 'i=users&mode=overview&u=' . $row['user_id'], true, $user->session_id),
// Rename admin folder ----//
# Adaptation de ce tuto pour umil:
Ces modifications sont indispensables pour pouvoir bien faire fonctionner l'installeur umil
Ouvrir le fichier umil/umil_frontend.php
rechercher:
- Code: Select all
global $phpbb_root_path, $phpEx, $template, $user;
ajoutez après dans une nouvelle ligne:
- Code: Select all
// Rename admin folder ----
global $admin_path;
if (!is_dir($phpbb_root_path.$admin_path))
{
$_admin_path = $phpbb_root_path. 'adm/';
}
else
{
$_admin_path = $phpbb_root_path.$admin_path;
}
// Rename admin folder ----//
rechercher:
- Code: Select all
'U_ADM_INDEX' => append_sid("{$phpbb_root_path}adm/index.$phpEx", false, true, $user->session_id),
remplacer par:
- Code: Select all
// Rename admin folder ----
'U_ADM_INDEX' => append_sid("{$_admin_path}index.$phpEx", false, true, $user->session_id),
// Rename admin folder ----//
Ouvrir le fichier umil/style/parse.css
rechercher:
- Code: Select all
ROOT_PATH}adm/
remplacer par:
- Code: Select all
ADM_ROOT_PATH}
Attention: faire ce remplacement 30 fois dans ce fichier
J'ai mis en place un sondage sur ce système afin de voir si j'en fait un mod ou autre.
N'hésitez pas à faire part de vos impressions et suggestions afin d'arriver à un système de protection optimal.
$phpbb_admin_path vers $admin_pathpuis certains
$admin_path vers $_admin_pathCeci pour éviter un bug de css non trouvé dans la vue des requêtes des pages de l'administration.
RSS Feeds
Search
Login
View unanswered posts
View new posts (0)
View active topics














