Publié par le 15 septembre 2014 • 118 Commentaires

Aujourd’hui, je lance une nouvelle série d’articles. Cette série consacrée aux plugins WordPress (ou extensions) développés par des français et plus largement des francophones, c’est pourquoi ces articles vont faire partie des « Plugins gaulois » !

Comme pour les autres recettes relatives aux plugins, vous pourrez découvrir leur rôle et leur fonctionnement au sein d’un tutoriel détaillé.

Commençons avec une petite question :

Saviez-vous que votre site est probablement en train de se faire attaquer ?

Depuis quelques semaines, votre Marmite bien aimée subissait des attaques de type « brute force » quasi quotidiennement, heureusement j’ai réussi à bouter les assaillants hors du blog grâce à un petit plugin bien pratique.

Pourtant, vous imaginez bien que j’ai fait le maximum pour protéger le blog. Voici ce qui est actuellement en place :

  • Des sauvegardes sont faites régulièrement grâce à BackupBuddy (aff)
  • Cloudflare sert à accélérer le site et à repousser/filtrer certaines menaces
  • Sucuri (aff) surveille les éventuelles modifications de fichiers sur le serveur.

Bref, j’essaie de faire en sorte que vous puissiez consulter le blog à n’importe quelle heure du jour ou de la nuit 🙂

Avant de passer aux explications, je tiens à revenir sur ce que sont exactement les attaques brute force.

Et si on jouait aux devinettes ?

Effectivement, les attaques brute force ont un point commun avec les devinettes. En fait, ce genre d’attaque correspond à des robots qui essaient de découvrir l’identifiant et le mot de passe du compte administrateur de votre site.

Si par malheur, un essai s’avère concluant. Vous pouvez dire adieu à votre site. L’agresseur pourra y faire tout ce qu’il voudra (puisqu’il se sera connecté en tant qu’administrateur).

Alors comment font ces robots pour deviner votre mot de passe ?

Et bien ils essaient, réessaient et essaient encore des dizaines, centaines de mots de passe en les combinants avec les identifiants les plus utilisés.

Bannissez donc les identifiants comme « admin » ou « test » de votre site pour corser le travail des agresseurs.

La deuxième mesure à prendre est d’utiliser des mots de passe complexes. C’est à dire avec des caractères variés (majuscules, minuscules, chiffres et signes de ponctuation). Pour générer des mots de passe complexes, jetez un oeil à ce site, il est top 🙂

J’espère que votre mot de passe ne fait pas partie du top 25 des pires mots de passe de 2013. Si oui, dépêchez-vous de le changer !

Pour info (je n’en dirai pas plus), l’identifiant administrateur du blog est aussi compliqué que le mot de passe. Petit conseil d’ami : vous devriez faire de même pour votre site.

Je vous entends déjà me dire : « Et bien c’est bon, mon identifiant et mon mot de passe sont complexes. S’ils veulent venir, je les attends ! ».

Revenons au cas de WP Marmite

Comme je vous l’ai dit en début d’article, j’utilise le service Sucuri pour surveiller l’activité sur tout le site.

Même si leur service est payant, ils mettent à disposition un plugin gratuit : Sucuri Security.

Sucuri Security WordPress

Cet article n’est pas consacré à ce plugin mais retenez qu’il permet de recevoir des notifications pour toutes les tentatives de connexion infructueuses.

J’ai donc reçu des emails en pagaille me disant que des IPs basées en Chine, en Irak, en Russie et aux États-Unis essayaient de voler les futures recettes.

Pirates !

Mon premier réflexe a été de bannir toutes ces adresses IPs via CloudFlare (un futur article vous expliquera comment le mettre en place) afin de leur refuser l’accès au site.

Étant donné que les attaques continuaient, j’ai carrément banni certains pays. Donc si vous êtes partez en Chine ou en Irak, désolé mais vous ne pourrez pas lire le site 😛

Malgré tout, les attaques se poursuivaient toujours. Bien que je suis relativement confiant sur mon couple identifiant/mot de passe, je ne dormais pas sur mes deux oreilles en sachant que des robots tentaient de se connecter en permanence au blog.

En discutant avec Geoffrey Crofte, il m’a fait découvrir le plugin SF Move Login (créé par Grégory Viguier de ScreenFeed et Julio de BoiteAWeb) dont le but est de déménager la page de connexion de site.

Effectivement, si la page de connexion classique (située à votresite.com/wp-login.php) n’est plus là, les robots et autres assaillants l’ont dans l’os !

Et devinez quoi, depuis que j’ai installé ce plugin, je ne reçois plus d’emails de Sucuri concernant des tentatives de connexion ratées.

Êtes-vous intéressé par ce plugin ? Si oui, je vous propose un…

Petit tour du propriétaire

SF Move Login

Je dis petit car cela est très rapide. Une fois que vous aurez recherché et installé SF Move Login sur votre site, votre page de connexion par défaut ne sera plus active.

Par défaut, le plugin redirige les pages suivantes à ces adresses :

  • Page de connexion : /login
  • Lien de déconnexion : /logout
  • Mot de passe perdu : /lostpassword
  • Rappel de mot de passe : /resetpass
  • Inscription : /register

Du coup, si comme moi vous n’aimez pas avoir des mots en anglais qui se baladent un peu partout, je vous recommande de passer par quelques morceaux de codes pour définir de nouvelles adresses.

Comment personnaliser SF Move Login

Suivez le guide, ce n’est pas si compliqué. Collez simplement ce code dans le fichier functions.php de votre thème (enfant de préférence) :

/* SF Move Login */
function my_custom_movelogin_slugs( $slugs ) {
return array_merge( $slugs, array(
'logout' => 'salut',
'lostpassword' => 'mdpperdu',
'resetpass' => 'reset',
'register' => 'bienvenue',
'login' => 'sesameouvretoi',
) );
}
add_filter( 'sfml_slugs', 'my_custom_movelogin_slugs' );

Si le plugin ne peut pas modifier votre fichier .htaccess, ajoutez et modifiez le code suivant à l’intérieur (situé à la racine de votre installation) :

# BEGIN SF Move Login
<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /
RewriteRule ^sesameouvretoi/?$ $1wp-login.php [QSA,L]
RewriteRule ^postpass/?$ $1wp-login.php?action=postpass [QSA,L]
RewriteRule ^salut/?$ $1wp-login.php?action=logout [QSA,L]
RewriteRule ^mdpperdu/?$ $1wp-login.php?action=lostpassword [QSA,L]
RewriteRule ^retrievepassword/?$ $1wp-login.php?action=retrievepassword [QSA,L]
RewriteRule ^reset/?$ $1wp-login.php?action=resetpass [QSA,L]
RewriteRule ^rp/?$ $1wp-login.php?action=rp [QSA,L]
RewriteRule ^bienvenue/?$ $1wp-login.php?action=register [QSA,L]
</ifmodule>
# END SF Move Login

Évidemment, c’est à vous de définir les adresses de votre choix pour chacune des pages. Modifiez ces bouts de code pour qu’il correspondent à ce que vous voulez faire.

Une fois reconfiguré, voici ce que les visiteurs verront en essayant d’aller sur /wp-login.php :

SF Move Login Connexion

Le message ne vous plait pas ? Pas de problème, vous pouvez choisir le votre grace à ce petit morceau de code :

remove_action( 'sfml_wp_login_error', 'sfml_wp_login_error' );
add_action( 'sfml_wp_login_error', 'my_wp_login_error' );
function my_wp_login_error() {
	wp_die('La page de connexion a changé d\'adresse pour limiter les attaques, si vous êtes cuistot envoyez-moi un message et je vous dirais où elle se trouve ;)
Alex');
}

Ici il s’agit du message que j’utilise pour WP Marmite, mais libre à vous de le personnaliser 😉

Si vous ne voulez pas mettre les mains dans le code, Grégory (l’auteur du plugin) propose d’installer un autre plugin pour vous permettre de modifier ces options mais je n’ai pas testé (ces morceaux de code sont suffisants et évitent l’installation d’un nouveau plugin).

Conclusion

SF Move Login est un super plugin pour rouler les robots/personnes qui attaquent votre blog dans la farine. Bien sûr, si l’assaillant venait à découvrir votre nouvelle page de connexion, il pourrait continuer ses attaques.

En tout cas, cette solution a fait cesser les attaques brute force sur WP Marmite. J’espère qu’il en sera de même pour vous 🙂

Subissez-vous des attaques de ce type ? Et si oui, avez-vous testé cette solution ? Qu’en pensez-vous ?

Crédit photo : imfdb.org