Chapitre 3 : sécuriser le blog sur le serveur

Pour finir, pirate, hackeur de blogil est souhaitable de compléter les recommandations des chapitres précédents par quelques mesures concernant l’accès au serveur, en limitant ou interdisant certaines actions, essentiellement à partir d’un fichier .htaccessfichier de configuration d’un serveur Apache, utilisé, en particulier, pour modifier les droits d’accès, voir: .htaccess surWikipedia .
.htaccess sur AskApache
.

Plan: 3 Chapitres en 5 posts

1)-Identification par .htaccess et .htpasswd

Afin de sécuriser au mieux la connexion au panneau d’administration du blog WordPress, et comme expliqué de façon détaillée ici même dans Sécuriser le mot de passe, on peut envisager d’ajouter un formulaire d’identification grâce à deux fichiers, .htaccess et , .htpasswd, placés sur le serveur, dans la directory à protéger, en l’occurence /wp-admin/.

2)-Autoriser un nombre limité d’adresses IP

Toujours dans la perspective de sécuriser la connexion au panneau d’administration du blog, il peut être utile de n’autoriser que des connexions dûment répertoriées, soit grâce à une adresse IP fixe, soit par l’intermédiaire d’un Nom Fixe. Ces données seront définies au sein d’un fichier .htaccess, placé sur le serveur, dans le Répertoire à protéger, en l’occurrence /wp-admin/.

  • Si vous possédez une ou plusieurs adresses IP fixes, il est facile de limiter la connexion à ces adresses, en le précisant dans le fichier .htaccess.

    Voir: NightAngel ou bien encore Nicolas Fayet.

  • Si votre IP est dynamique, c’est à dire valable pour une période temporaire, déterminée par votre fournisseur d’accès, celle-ci ne peut pas être utilisée pour la reconnaissance de la connexion. On peut, dans ce cas, envisager d’utiliser un service de DNS dynamique, ou service en ligne de gestion d’adresse IP dynamique, qui va permettre d’associer un nom fixe et permanent à une adresse IP variable. La plupart du temps, comme chez DynDNS, ce service est gratuit. Il suffira alors de renseigner le fichier .htaccess, en autorisant la connexion seulement pour ce nom. Par exemple, ici, le nom choisi serait: monblog.net

Voir sécurité IP ou Comment avoir une IP Fixe
Voir la syntaxe et l’utilisation d’un .htaccess sur Modul Apache ou Comment ça marche

3)-Interdire certaines adresses IP

La plupart des spammers changent en permanence d’adresse IP ce qui les rend difficiles à blacklister. Il en existe encore un petit nombre qui garde toujours la même adresse IP, et il est alors très simple de les bannir, en bloquant leur accès à partir d’un fichier .htaccess placé à la racine du blog. Voir: NightAngel, ou bien encore Tuteurs informatique.

4)-Protéger le fichier wp-config.php

Cette mesure
est indispensable!

Comme expliqué dans ce post, ici même, le fichier wp-config.php est extrêmement sensible puisqu’il contient le nom de la base de données, l’identifiant de l’utilisateur de la base de données, le mot de passe de connexion, mais aussi, les clés de sécurité, voir ici, et le préfixe des tables. Il doit impérativement être protégé par un .htaccess situé à la racine du blog, avec les quelques lignes de code présentées ci-dessus. Ainsi le serveur en interdira totalement l’accès. Pour une présentation complète de wp-config.php, voir: le codex WordPress.

5)-Protéger le fichier .htaccess

Normalement, si votre blog est hébergé sur un serveur Apache, sa configuration par défaut ne permet pas la visualisation des fichiers .htaccess depuis un navigateur. Cela dit, on est jamais assez prudent, et rien ne vous empêche d’interdire l’accès à ce fichier essentiel, par les quelques lignes de code présentées ci-contre. Ainsi le .htaccess se protège lui-même.
Voir: Maccilabo ou Tranquille Informatique.

6)-Interdire le listage des fichiers

Il suffit de connaître la structure de WordPress pour facilement lister les fichiers d’une directory donnée, si elle ne possède pas de fichier index.html. Il est alors facile d’obtenir, par exemple, la liste des plugins installés, ou la liste des images, etc…

Pour désactiver cette fonction, par défaut permise sur un serveur Apache, il faut placer un .htaccess à la racine du blog, avec l’instruction ci-contre. Cela empêchera le listage de tous les répertoires et sous-répertoires du blog. L’autre solution, consiste à placer un fichier index.html vide dans les directories à protéger du listage, lorsqu’elles ne possèdent ni fichier index.html ni fichier index.php.

Voir: le blog d’Emmanuel Georjon ou celui de NightAngel

7)-Masquer l’affichage des caractéristiques du serveur Apache

Erreur 404 générée par le serveur

Image du site Be Root.com
Cliquer pour agrandir

De la même manière que nous avions cherché à masquer l’affichage de la version de WordPress utilisée, il est bon de masquer les informations qui peuvent être éventuellement fournies par le Serveur lui-même. Si le serveur Apache de votre hébergeur n’est pas totalement sécurisé, il répondra à la demande d’une page inexistante par une page d’erreur 404 avec le message Not Found mais aussi le numéro de version du serveur et autres informations possiblement exploitables par un pirate.

Erreur 404 générée par le serveur

Image du site Be Root.com
Cliquer pour agrandir

Si c’est le cas, il sera donc sage d’ajouter dans le fichier .htaccess placé à la racine du blog, la ligne de code présentée ci-dessus, pour interdire au serveur la présentation de sa version, désactivant ainsi l’affichage de sa signature.

Voir: Be Root.com ou encore Cg Securité.

Remarque importante: le fichier .htaccess permet aussi de définir l’affichage de pages d’erreur personnalisées, plus agréables pour le visiteur que celles générées par le serveur.

Il suffit pour cela d’ajouter dans le fichier .htaccess situé à la racine du blog, les deux lignes de codes ci-dessous, en prenant soin, bien sûr, de créer les pages 404.php et 403.htm.

8)-CHMOD: les permissions d’accès aux fichiers

A chaque fichier présent sur le serveur est associée une liste de permissions d’accès, autrement appelé: CHMODdescription des permissions d’accès sur Wikipedia .
Droit d’accès sur un système UNIX
, abréviation de « change mode« . Ces autorisations d’accès doivent être modulées en fonction du statut de chaque fichier et du niveau de sécurité qui lui est nécessaire. Pour comprendre les CHMOD, rendez-vous sur: Codex WordPress en français, sur Codex WordPress en anglais, ou bien encore sur PHP Débutant.

chmod pour un htaccess

CHMOD pour un htaccess
Cliquer pour voir

  • Pour visualiser les CHMOD, rien de plus simple: utiliser votre logiciel client FTP préféré, comme par exemple Filezilla: un clic droit sur un fichier présent sur le serveur ouvre un menu contextuel, il suffit alors de choisir la rubrique Attributs du fichier. Dans notre cas, avec le fichier .htaccess, par exemple, le tableau ci-contre apparait.
  • Il existe un plugin efficace et indispensable, WP Security Scan, qui vérifie les permissions existantes et indique les changements éventuels nécessaires pour une sécurité maximum. Reste alors à modifier les attributs pour chaque fichier, en rectifiant les valeurs des autorisations, comme préconisé par WP Security Scan.
    tableau des permissionsTableau des permissions délivré par WP Security Scan

    Le plugin WP Security Scan, vraiment indispensable, ne se contente pas de vérifier les CHMOD, il teste les vulnérabilités, les possibilités d’intrusion, contrôle la présence du fichier .htaccess, et bien d’autres choses encore…

9)-Empêcher les robots d’indexer inutilement les répertoires sensibles

Il faudrait consacrer un post complet au fichier d’exclusion des robots, robots.txt, voir sur Wikipédia, ou encore Comment ça marche. Contrairement aux fichiers de sécurité .htaccess, qui peuvent être présents dans chaque répertoire, il n’y aura qu’un seul robots.txt pour la totalité du blog, placé à la racine du site.
Son rôle, bien expliqué surAspirine, est d’éviter que les moteurs de recherche n’indexent les fichiers du blog qui n’ont pas à l’être. En matière de sécurité, il s’agit des fichiers de wp-content, wp-includes et wp-admin. Cela dit, il faut bien garder à l’esprit que la sécurité résultante est vraiment toute relative, puisqu’il ne s’agit que d’une indication, et rien n’empêchera un robot malveillant de passer outre.

10)-Une connexion sécurité plus plus

Afin de protéger l’identifiant et le mot de passe d’une éventuelle interception, lors de la connexion au blog en http, il est possible d’utiliser un protocole sécurisé, le https. C’est le type de protocole utilisé pour la transmission de données sensibles et utilisé par exemple par les banques. La présence d’un cadenas indique que les communications entre le navigateur et le site web sont cryptées et donc sécurisées. A moins de vouloir sécuriser un blog ultra sensible, ou bien en cas de paranoïa aiguë, cela reste plutôt réservé à une utilisation professionnelle. D’une manière générale, ce service est offert par les hébergeurs moyennant un supplément.
Pour comprendre: blog nightangel ou bien encore https et ssl.

11)-La sécurisation par .htaccess, en résumé

Ci-dessous, pour résumer, voici les instructions qu’il serait raisonnable de placer dans un .htaccess, d’une part à la racine du blog, d’autre part dans le répertoire wp-admin.

.ht access à la racine du blog .ht access dans wp-admin


«Pas de commentaire »
decorSi vous avez apprécié ce post ou bien si vous souhaitez apporter quelques éclaircissements supplémentaires, n´hésitez pas à laisser un commentaire...

Laisser un commentaire