Sécuriser l’installation de Matomo

Progression du Module
0% Terminé

Dans ce chapitre, nous allons aborder la sécurité de Matomo. Je vous donnerai quelques pistes pour sécuriser votre installation et pouvoir surveiller son activité. Nous utiliserons certains plug-ins pour sécuriser Matomo, et nous verrons aussi comment passer sur du HTTPS.

Lorsque nous avons mis en place Matomo, nous avons pris soin de lui dédier un utilisateur MySQL et une base de données, c’est qui est recommandé en matière de sécurité.

I. Le plug-in « Security-Info »

Ce plug-in ne va pas sécuriser de lui-même votre instance Matomo, mais il va analyser votre configuration et vous indiquer s’il y a des choses à corriger. Ces recommandations sont basées sur les meilleures pratiques.

Il est disponible gratuitement sur GitHub : https://github.com/matomo-org/plugin-SecurityInfo/releases

Pour réaliser l’installation, connectez-vous en SSH sur votre serveur, et exécutez les commandes suivantes :

# Se placer dans le dossier des plug-ins

cd /var/www/piwik/plugins/

# Télécharger les sources

wget https://plugins.matomo.org/api/2.0/plugins/SecurityInfo/download/3.0.6

# Renommer le fichier pour ajouter l’extension ZIP

mv 3.0.6 3.0.6.zip

# Décompresser l’archive ZIP, un dossier « SecurityInfo » sera créé

unzip 3.0.6.zip

# Supprimer l’archive

rm 3.0.5.zip

# Attribuer le bon propriétaire et les bons droits

chown www-data:www-data SecurityInfo/ -R
chmod 750 SecurityInfo/ -R

Maintenant, sur l’interface Matomo, on va pouvoir retrouver notre plug-in : Paramètres > Système > Plugins.

Dans la liste, vous allez voir « SecurityInfo » : cliquez sur « Activer ».

Suite à l’activation du plug-in, sur le menu à gauche sous « Diagnostic » vous aurez « Sécurité ».

Le plug-in va vérifier la valeur et l’état de différentes options, lorsque c’est vert c’est tout bon ! Sinon, prêtez attention aux points remontés.

II. Désactiver les plug-ins inutiles

De base, Matomo intègre une grande quantité de plug-ins qui lui permettent d’avoir ses fonctionnalités natives. Certains plug-ins ne vous seront pas utiles, par exemple le plug-in « Ecommerce » est utile seulement si vous avez un site de e-commerce.

Je vous encourage à désactiver les plug-ins non utilisés, si vous avez un doute, testez ! Pour désactiver un plug-in : Paramètres > Système > Plugins et cliquez sur « Désactiver » sur la ligne du plug-in.

III. Forcer le HTTPS pour Matomo

De base, Matomo est capable d’écouter en http ou en HTTPS, voire même les deux. Pour des raisons de sécurité, il vaut mieux le forcer en HTTPS intégralement. Ceci va également permettre de sécuriser le flux entre le site Internet pour lequel vous mesurez l’audience et Matomo lui-même.

Pour que Matomo soit accessible en HTTPS, n’oubliez pas de modifier la configuration de votre serveur web, pour que le site dédié à Matomo soit accessible sur ce protocole. Pour Apache, voici un exemple de configuration pour déclarer un site HTTPS, ici l’exemple est adapté pour Matomo :

<VirtualHost *:443>
        ServerAdmin stats@it-connect.fr
        ServerName stats.it-connect.fr
        DocumentRoot "/var/www/piwik"
        DirectoryIndex index.html index.htm index.php default.php
        ServerAlias stats.it-connect.fr
        RewriteEngine On
        SSLEngine on
        SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        SSLCertificateFile /var/www/certificats/stats.it-connect.fr.crt
        SSLCertificateKeyFile  /var/www/certificats/stats.it-connect.fr.key
        SSLCertificateChainFile  /var/www/certificats/stats.it-connect.fr.ssl.pem
<Directory "/var/www/piwik">
   Options -Indexes +FollowSymLinks +MultiViews
   AllowOverride all
   Order allow,deny
   Allow from all
</Directory>

Pour ceux qui n’ont pas suivi l’installation de Matomo dans le chapitre précédent, je vous invite à le lire : installation de Matomo.

Remarque : Vous devrez obtenir un certificat SSL pour que le HTTPS fonctionne, au mieux un certificat reconnut par les navigateurs (à minima Let’s Encrypt) ou alors, au pire, un certificat autosigné, mais il ne sera pas reconnu, car il n’émane pas d’une autorité de certification.

Ensuite, pour forcer Matomo à utiliser le HTTPS, il faut modifier le fichier de configuration « config.ini.php » de Matomo :

nano /var/www/piwik/config/config.ini.php

Sous la section « Général », vous devez définir cette option :

[general]
force_ssl = 1

Ainsi, Matomo va rediriger automatiquement le flux http vers HTTPS.

IV. Protéger Matomo avec un fichier .htaccess

Vos visiteurs ont seulement besoin d’accéder à trois choses :

  • Le fichier piwik.js
  • Le fichier piwik.php
  • L’URL « index.php?module=CoreAdminHome&action=optOut » pour gérer l’opt-in et l’opt-out sur votre page de confidentialité

Ajoutez à cela l’autorisation nécessaire au moteur de recherches sur le fichier « robots.txt ». Pour le reste, vos visiteurs n’ont pas besoin d’y avoir accès, à commencer par la page de connexion, etc.

Pour parvenir à effectuer cette configuration, le plus simple c’est de créer un fichier « .htaccess » où l’on va déclarer nos règles.

Créez ce fichier à la racine du dossier « /var/www/piwik » et éditez-le.

Nous allons tout d’abord ajouter un bloc pour indiquer que l’accès est refusé à tout le monde, sauf depuis une IP ou un host spécifique.

<Files "*">
    Order deny,allow
    Deny from all
    Allow from 50.40.30.20
    Allow from manager.mydomain.fr
</Files>

On va ensuite, à l’aide des expressions régulières, autoriser l’accès à tout le monde aux fichiers nécessaires. Ajoutez le bloc ci-dessous à la suite de l’autre :

<Files ~ "^piwik\.(js|php)|robots\.txt$">
    Allow from all
    Satisfy any
</Files>

Sur le même principe, nous allons ajouter ce troisième bloc pour autoriser l’accès sur l’URL spécifique :

<Files ~ "index.php?module=CoreAdminHome&action=optOut">
    Allow from all
    Satisfy any
</Files>

Sauvegardez ce fichier et vérifiez le bon fonctionnement : que vous ayez bien accès à l’interface d’administration depuis les IP autorisées, et que vos visiteurs continuent d’être comptabilisés.

V. Empêcher l’indexation dans les moteurs de recherche

Il n’y a pas d’intérêt à ce que votre instance de Matomo soit référencée sur les moteurs de recherche. Il vaut mieux garder cette adresse en mode « privée ». Pour indiquer aux robots de Google, Bing et consort qu’ils ne doivent pas indexer cette page, il faut leur indiquer !

Pour réaliser cette opération, créez le fichier « robots.txt » à la racine de Matomo : /var/www/piwik/

Ensuite, dans ce fichier vous devez inclure le contenu suivant :

User-agent: *
Disallow: /

La première ligne sert à indiquer le robot ciblé, ici la règle s’applique à tous (*) et on effectue un refus directement sur la racine (/).

Sauvegardez ce fichier et le tour est joué !

VI. Autres conseils pour sécuriser Matomo

Nous venons de voir les actions essentielles à mener pour sécuriser votre instance de Matomo. Cependant, il ne faut pas s’arrêter à ces actions, voici une liste de conseils supplémentaires :

  • Sauvegardez la base de données Matomo et le fichier config/config.ini.php
  • Gardez Matomo et les plug-ins à jour
  • Utilisez un mot de passe complexe pour le compte super-utilisateur
  • Mettez en place le plug-in « Login Fail Log » pour journaliser les tentatives de connexion en échec et, si vous le souhaitez, vous pourrez utiliser les logs pour déclencher des actions dans fail2ban. Lien du plug-in : Login Fail Log
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

    Florian B.

    Consultant chez Délibérata le jour, blogueur pour IT-Connect la nuit, je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

    florian has 2274 posts and counting.See all posts by florian