L’épée et le bouclier, sécurité WordPress

bouclierLa semaine dernière, Un ami peu féru d’informatique n’ayant pas pris assez de précautions a vu son site WorPress compromis par un hacker qui lui a tout foutu en l’air. Le fâcheux a probablement utilisé un script qui scanne automatiquement les sites web à la recherche de portes mal fermées (on appelle ces abrutis des « Script Kiddies », tout justes bons à utiliser des scripts malicieux créés par d’autres, mais tout à fait aptes à vous pourrir la vie juste pour la gloriole).

J’ai donc gagné le droit de passer ma soirée à lui donner un coup de main pour tout remettre en ligne et pour blinder un peu plus son installation.

On trouve pas mal de sites web anglophones traitant du sujet, beaucoup moins en français (dont, évidemment le site officiel de WP : WordPress-fr.net). Aussi me suis-je lancé dans une traduction libre et complétée d’un article bien fait que j’ai lu récemment sur WP Mayor :

 

Comment installer WordPress de façon sûre.

Beaucoup d’utilisateurs de WP recherchent la manière la plus simple d’installer et régler WP. Ça peut être aussi facile que d’appuyer sur un bouton, si votre hébergeur web propose cette option. Mais si l’installation est vulnérable aux attaques, la simplicité de réglage cède instantanément la place au calvaire.

Voici quelques actions à mettre en place pour augmenter la sécurité de votre site WP.

 

Toujours, toujours mettre à jour à la dernière version !

La popularité de WP en fait une cible de choix pour les attaques. En même temps, cette popularité requiert une sécurité de plus en plus efficace. La version la plus récente de WP est, de fait, la plus sûre. Mettez votre site à jour dès que vous en avez la possibilité.

 

Installer WP dans un sous-répertoire.

Les installations WP étant très communes et répandues, les conventions de nommage pour les fichiers/dossiers/bases de données/etc. sont elles aussi parfaitement connues.

Un moyen de rendre votre installation WP différente de celle du voisin est d’installer WP dans un sous-répertoire de votre répertoire principal (par exemple : www/zouzou/ au lieu de www/ ). Ça peut être fait sans exposer le nom de ce sous-répertoire au public.

Et tant qu’à faire, le nom de ce sous-répertoire n’aura pas de rapport avec le sujet de votre blog, il sera ainsi plus difficile à deviner.

Après avoir installé WP dans un sous-répertoire, déplacez le fichier index.php depuis ce sous-répertoire vers le répertoire principal de votre site web. Non seulement ça garde propre votre répertoire principal, mais le nom de votre sous-répertoire n’apparaîtra pas dans l’adresse de votre site, rendant la tâche des malandrin un peu plus difficile.

 

Utiliser des noms obscurs pour la base de données et ses tables.

Un autre moyen de rendre les choses moins évidentes consiste à nommer votre base de données autrement que « wordpress » ou « wp« . Appellez-la « nom_wp », ou « wp_chiffres », ou « quelquechose-d-encore-plus-obscur ». Évitez de lui donner un nom en rapport avec votre site web, ça compliquera encore plus la tâche des petits curieux.

De la même manière, changez le préfixe de vos tables (par défaut « wp_ ») pour quelque chose de moins évident comme « wp-chiffres-lettres » ou « wpchiffreslettres » ou n’importe quoi d’encore plus tordu. Comme pour les précendents changement, un nom sans rapport avec le reste est une bonne solution.

Si vous utilisez un auto-installeur, il vous demandera ces informations pendant l’installation. Ce sera le moment de saisir ces noms abcsons.

Si vous faîtes l’installation à la main, réglez ces paramètres dans le fichier « wp-config ».

Modifiez le nom de la base de données  :

define(‘DB_NAME’, ‘nom-obscur’);

Pour les préfixes de tables, modifiez la ligne :

$table_prefix = ‘wp_’

en

$table_prefix = ‘wp_nom-obscur’

 

Donnez nom obscur à l’utilisateur de la base de données.

Toujours dans l’idée d’améliorer la sécurité via l’obscurité, nommez l’utilisateur de la base de données de façon complexe. une combinaison unique de 8 à 10 caractères mélangeant  chiffres, minuscules et majuscules devrait faire l’affaire.

 

Désactivez l’affichage des répertoires.
Si l’affichage des répertoires est activé, le contenu des répertoires de votre site web sera visible de tous s’ils ne contiennent pas de fichier index. C’est dangereux ! Si quelqu’un avait accès à votre fichier « wp-config », il pourrait très vite compromettre votre site web. Beaucoup d’hébergeurs web désactivent l’affichage des répertoires, mais si ce n’est pas votre cas, il va falloir y remédier au plus vite.

Ajoutez cette ligne au début du fichier .htaccess de votre répertoire principal :

Options -Indexes

Si vous ne pouvez utiliser ou modifier un fichier .htaccess, Vous pouvez ajouter dans chaque répertoire un fichier vide nommé « index.htm », « index.html » ou « index.php ». Cela affichera des pages blanches plutôt que la liste des fichiers contenus dans ces répertoires.

ATTENTION ! n’ajoutez pas ces fichiers dans les répertoires contenant déjà des fichiers index.php, ça pourrait générer des conflits et planter votre site web.

 

Protégez le fichier wp-config.php.

WP utilise le fichier wp-config.php pour se connecter à la base de données et régler diverses préférences. Il contient des informations importantes, et donc, à garder à l’abri des regards indiscrets. La protection minimale consiste à régler ses permissions d’accès à 644 (lecture et écriture pour le propriétaire – vous -, lecture uniquement pour le groupe, lecture uniquement pour le reste du monde).

Pour cela, il va vous falloir utiliser un logiciel de FTP :

rendez vous sur le ftp votre site web ;

repérez le fichier wp-config.php ;

demandez à lire les informations ;

modifiez les permissions en « 644 » ;

puis validez cette modification.

Pour améliorer encore plus la sécurité de ce fichier wp-config.php, vous pourriez modifier le fichier .htaccess et limiter les adresses IP pouvant accéder à ce fichier. Visitez themelab pour plus d’informations. (Note: dans son exemple, themelab montre comment limiter l’accès au fichier wp-login.php. Il vous suffit de remplacer le nom wp-login.php par  wp-config.php).

Par contre, si vous ne disposez pas d’une IP fixe (ce qui est le cas de la plupart d’entre-nous), ça peut vous empêcher ultérieurement d’y accéder. Ce qui serait ballot, convenez-en…

 

Vérifiez les permissions pour les fichiers et répertoires.
Il y a des chances pour que votre hébergeur web ait déjà réglé les permissions d’accès de façon optimale. Les permissions d’accès aux répertoires devraient réglées à 755, les permissions d’accès aux fichiers à 644. Vous pourriez rencontrer quelques exceptions lors de la configuration des fichiers et répertoires à l’aide d’extensions, mais ça devrait fonctionner la plupart du temps.

 

Changez le nom de l’administrateur.

La plupart des auto-installeurs vous laissent choisir vous-même le nom et le mot de passe administrateur lors de l’installation. N’utilisez jamais « admin »comme nom, soyez plus créatifs ! Si l’installeur règle automatiquement le nom de l’administrateur, modifiez-le immédiatement après la fin de l’installation. Et, tant qu’à faire, n’utilisez pas le même pseudonyme que celui qui vous sert à écrire vos billets, c’est le premier que les pirates testeront…

 

Variez les pseudonymes et mots de passe.

Une règle de base est d’utiliser SYSTEMATIQUEMENT des couples pseudonyme/mot de passe différents pour les diverses zones de votre site :

– la console générale de votre site web (souvent fournis par votre hébergeur web) ;
– la base de données de WordPress (comme évoqué plus haut) ;
– la tableau de bord WordPress (comme aussi indiqué plus haut) ;
– l’accès ftp à votre serveur web.

Chaque mot de passe devrait contenir au moins 8 caractères et mélanger chiffres, tirets hauts ou bas, minuscules et majuscules. Il est préférable d’éviter les accents et les caractères spéciaux ( # § < > ? { } | & ~ ! [ ] ( ) ^  » etc.) car ça pourrait faire planter les serveurs de certains hébergeurs.

 

Installez des extensions de sécurité.

Il existe bon nombre d’extensions de sécurité agissant à des niveaux divers, j’y reviendrai probablement plus tard. Pour ma part, j’utilise entre-autres WebsiteDefender WordPress Security (sic) qui surveille les modifications éventuelles de mon site et m’en informe par courriel dès que quelque chose à été ajouté, modifié ou supprimé..
Edit : j’ai, depuis, abandonné WebsiteDefender WordPress Security devenu payant pour d’autres solutions équivalentes.

 

Ces quelques réglages vous donneront une base solide pour la sécurité de votre site WP. Que sont quelques manipulations pour mettre votre site à l’abri des Méchants ?

 

vignette empruntée au site www.jouets-dino.com.

2 réponses sur “L’épée et le bouclier, sécurité WordPress”

  1. Super, cette traduction ! J’avais lu l’article de WP Mayor, déjà très utile, mais tes ajouts et précisions sont encore mieux.
    Ce sera précieux pour plein de monde. Merci !

Laisser un commentaire