L’escopette et l’armure

Faisant suite à un précédent article, je pioche aujourd’hui directement dans le Codex WordPress pour faire un condensé des mesures prophylactiques qui vous aideront à améliorer encore un peu plus la sécurité de votre blog. Dans ce qui suit, je fais volontairement l’impasse sur certaines recettes qui pourraient bloquer le fonctionnement normal de votre blog.

 

Avant toute chose !

Vérifiez que votre ordinateur n’est pas infecté par un quelconque malware ou Keylogger (un logiciel qui espionne ce que vous saisissez au clavier pour ensuite l’expédier à un pirate). En effet, à quoi bon utiliser des pseudonymes et des mots de passe ultra difficiles à deviner s’ils sont directement transmis aux pirates ?
Maintenez à jour votre logiciel anti-malwares afin d’éviter que la suite de cet article devienne totalement inutile. 😉

 

Connexions FTP

Si votre hébergeur et votre logiciel de transfert de fichiers vous offrent le choix entre les protocoles FTP (File transfer Protocol) et SFTP (SSH Secured FTP), préférez le protocole SFTP qui ne transmet que des données cryptées entre votre ordinateur et le serveur hébergeant votre site web. Leur interception par une tierce personne n’en sera que compliquée.
La plupart des logiciels FTP modernes savent utiliser ce protocole, comme Cyberduck (gratuit Mac), FileZilla (gratuit Win, Mac) et bien d’autres. Personnellement, j’utilise Captain FTP depuis plusieurs années.

 

Permissions d’accès

Pour la bonne marche du blog, il est important que n’importe qui ne soit pas autorisé à faire n’importe quoi.
En faisant simple, les permissions d’accès, parfois appelées « Privilèges » ou « droits d’accès », permettent de déterminer qui a le droit de lire, écrire ou exécuter un fichier ou un dossier.
On distingue donc plusieurs entités :

  • le propriétaire de ces fichiers (vous) qui a quasiment tous les droits sur tous les documents,
  • le groupe auquel appartient le propriétaire, qui a des privilèges plus restreints,
  • le reste du monde, qui ne peut faire QUE ce que vous lui permettez.

Ces permissions vont de 000 à 777, le premier chiffre indiquant vos droits, le second ceux de votre groupe et le troisième pour le reste du monde. Plus le chiffre est élevé, plus les droits sont importants.

Sur le serveur, votre blog est divisé en différents dossiers, sous-dossiers et fichiers. Il convient que chacun ait les bonnes permissions :

  • Public_html/ ou www/ : la racine de votre blog dont l’accès est globalement autorisé,
  • /wp-admin/ : c’est la zone d’administration de votre blog, tous les fichiers inclus ne devraient être modifiables que par votre compte utilisateur,
  • /wp-admin/index.php : le cœur de l’administration de votre blog, ne devrait être partiellement modifiable que par votre compte utilisateur,
  • /wp-config.php : le fichier de configuration de votre blog, contenant, entre-autres, les information de connexion à votre base de données,
  • /wp-includes/ : le « moteur » de WP, pareil que ci-dessus, vous seul devriez pouvoir modifier ces fichiers,
  • /wp-content/ : les données fournies par les utilisateurs, donc modifiable par tous,
  • /wp-content/themes/ : les fichiers utilisés par les thèmes visuels de votre blog,
  • /wp-content/plugins/ : uniquement modifiable par vous, sauf cas particuliers,
  • les fichiers .htaccess : où qu’ils soient, il ne doivent pas être accessibles à n’importe qui, puisqu’ils servent justement à limiter les accès.

WordPress recommande les valeurs suivantes :

  • 755 pour public_html/ ou www/
  • 644 pour tous les fichiers .htaccess
  • 755 pour www/wp-admin
  • 644 pour www/wp-admin/index.php
  • 755 pour www/wp-content/
  • 755 pour www/wp-includes/
  • 644 pour www/wp-config.php

Pour modifier les permissions, la méthode varie selon votre logiciel de FTP. Par exemple sur Captain FTP, il suffit de :

  • faire un clic-droit sur le dossier ou le fichier concerné,
  • choisir « Afficher les informations… »,
  • cliquer l’onglet « Permissions »,
  • saisir directement la nouvelle valeur de permission,
  • cliquer le bouton « Régler »,
  • refermer la fenêtre de permissions.

 

Bases de données

Si vous faites tourner plusieurs blogs sur le même serveur, il est préférable d’avoir autant de bases données gérées par des couples utilisateur/mot de passe différents. De cette façon, si un intrus arrive à craquer un de vos blogs, il n’aura pas, pour autant, accès aux autres.

 

Sécuriser wp-config.php

Vous avez deux solutions :

  • déplacer le fichier wp-config.php dans le dossier parent de votre installation WordPress. Par exemple, si votre installation wordPress est placée à ftp://votre-adresse-web/public_html/, vous pouvez déplacer wp-config.php à ftp://votre-adresse-web/. Note : vous ne pouvez déplacer ce fichier que UNE branche au dessus de votre installation WordPress (là où se trouve le fichier wp-include). par contre, il faudra en limiter les permissions d’accès (généralement 400 ou 440).
  • ajouter à la racine de votre blog un fichier .htaccess pour en interdire l’accès :

<files wp-config.php>
order allow,deny
deny from all
</files>

 

Sécuriser wp-includes

Il est possible d’ajouter un second niveau de protection là où les scripts ne sont pas censés être accessibles aux utilisateurs. Une façon de le faire est de bloquer ces scripts en utilisant mod_rewrite dans le fichier .htaccess :

# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]

 

Les autre mesures de précaution

J’en avais déjà parlé dans le premier article, mais une petite piqûre de rappel ne peut nuire :

  • remplacer le préfixe des tables de votre base de données (wp_ par défaut),
  • mettre régulièrement à jour votre blog et vos modules externes,
  • Varier les couples utilisateur/mot de passe en fonction des zones (ftp, console web, administration WordPress, etc.),
  • utiliser des mots de passe mélangeant chiffres, tirets hauts ou bas, minuscules et majuscules,
  • sauvegarder régulièrement votre blog et sa base de données,
  • utiliser des modules externes de surveillance comme WebsiteDefender WordPress Security.

pour plus d’informations sur les modules externes de sécurité, vous pouvez lire cet article (en anglais) chez WP Mayor.

 

Comme indiqué au début, il existe encore d’autres moyens de sécuriser toujours plus votre blog, mais comme certains ne s’adressent pas aux utilisateurs lambda et demandent des compétences assez poussées en informatique, je n’en parle pas.

 

vignette empruntée au site www.a2armory.com

Laisser un commentaire