Désactiver FLoC de tous vos vhosts Apache2 en une fois

FLoC (Federated Learning of Cohorts) est le nouveau moyen de traçage de Google qui a senti le vent tourner concernant le tracking à base de cookies. Je ne vais pas m'étendre sur le fonctionnement de FLoC mais si le sujet vous intéresse, je vous recommande la lecture de l'article « Google chante le requiem pour les cookies, mais le grand chœur du pistage résonnera encore ».

Utilisant Apache2 pour servir mes sites, je ne souhaitais ajouter globalement l'en-tête à envoyer pour désactiver le pistage. Que ce soit pour les futurs sites ou la mise à jour de cette directive, je n'aurai qu'à modifier cette configuration.

Ayant de l'Ubuntu par chez moi, l'arborescence présentée peu être différente de la vôtre mais l'idée est de créer un nouveau fichier de configuration qui sera chargé globalement. Le mod headers devra être activé pour que cette directive fonctionne. Sur Ubuntu / Debian-like :

sudo a2enmod headers

Je vais créer le fichier /etc/apache2/conf-enabled/floc.conf avant d'y ajouter le contenu qui suit :

<IfModule mod_headers.c>
  Header always set Permissions-Policy: interest-cohort=()
</IfModule>

Relancez ensuite la lecture des fichiers de configuration :

sudo service apache2 reload

Et c'est fini. Vous pouvez vérifier vous-même si l'en-tête est bien ajouté ou utiliser l'outil proposé par eWatcher.

Merci Google pour cet en-tête gratuit que tu m'obliges à envoyer à mes visiteurs pour éviter que tu ne te serves de leur vie privée pour faire ton beurre. À noter que ce tracking n'est effectif (pour le moment) que chez les utilisateurs de Chrome. Si ce n'est déjà fait, passez à Firefox.

Lire les logs d’un mutualisé OVH avec GoAccess

Je vous ai présenté GoAccess il y a quelques temps pour interpréter vos logs Apache. Cette fois, je vais vous expliquer comment permettre à GoAccess d'interpréter les fichiers produits par les serveurs mutualisés d'OVH.

Le logo de GoAccess.

Configuration

Une fois GoAccess installé, éditez ou créez le fichier .goaccessrc au niveau de votre home utilisateur et ajoutez-y les lignes suivantes :

  • log-format %h %v - %^[%d:%t %^] "%r" %s %b "%R" "%u"
  • time-format %H:%M:%S
  • date-format %d/%b/%Y

Récupérer les logs chez OVH

Je ne peux que vous conseiller d'aller ajouter un utilisateur pouvant accéder aux logs histoire de pouvoir utiliser son mot de passe dans un script qui automatisera la tâche de récupération (dans un cron mensuel par exemple). Ce guide dédié vous expliquera comment faire.

Connectez-vous ensuite à l'espace de gestion des logs à l'aide de l'adresse suivante : https://logs.ovh.net/votredomaine.tld.

Lancer l'analyse

Comme vu dans mon précédent billet sur ce sujet, vous pouvez directement analyser les archives à l'aide de la commande zcat.

zcat /var/log/apache2-backup/domain.tld/2017-03/domain.tld-* | goaccess -c --ignore-crawlers -a

Ajouter le domaine aux requêtes

Lorsque plusieurs domaines sont configurés, il est utile de pouvoir connaître lequel est responsable d'une requête en particulier. Pour cela, la commande awk permet de placer automatiquement cette information au bon endroit.

zcat /var/log/apache2-backup/domain.tld/2017-03/domain.tld-* | awk '$7=$2$7' | goaccess -c --ignore-crawlers -a

GoAccess pour analyser ses logs Apache

Pourquoi utiliser GoAccess ?

Dans mon cas, je souhaite me débarrasser de Google Analytics dont je n'utilise qu'1% des fonctionnalités. Je cède à ce dernier beaucoup trop d'informations concernant les visiteurs de mes sites. L'idée était de continuer à connaître les pages les plus visitées, les erreurs rencontrées et une potentielle chute de fréquentation pouvant provenir d'un problème technique. Quoi de plus fiable que d'analyser des logs en remplacement d'un bout de JavaScript souvent bloqué par UBlock Origin ou Adblock Plus.

En résumé :

  • je donne moins d'informations à Google
  • j'évite le chargement d'un script externe à mes visiteurs
  • je peux quand même continuer à vérifier que tout va bien

La seule contrepartie dans mon cas étant la récupération des logs chez OVH que je pense automatiser dans la foulée.

goaccess-logo

Installation

Un paquet GoAccess est sûrement disponible pour votre distribution Linux ou vous pouvez le compiler depuis les sources. Je vous renvoie pour cela à la documentation d'installation.

Commandes

Dans les exemples suivants, j'utiliserais le fichier de log présent sur mon disque à l'emplacement /var/log/apache2/access.log.

Utilisation de base

goaccess -f /var/log/apache2/access.log

Ignorer les crawlers/bots/spiders avec l'option --ignore-crawlers

goaccess -f /var/log/apache2/access.log --ignore-crawlers

Lire des logs archivées

zcat /var/log/apache2/access.log*.gz | goaccess

Génération d'un rapport au format HTML

goaccess -f /var/log/apache2/access.log --ignore-crawlers -a -o report.html

GoAccess HTML report screenshot

Lancer un tableau de bord d'analyse en temps réel

goaccess -f /var/log/apache2/access.log -o /var/www/report.html --real-time-html

Remplacez /var/www/report.html par un endroit accessible par votre serveur web. Il ne vous restera plus qu'à accéder à ce dashboard via l'adresse https://<votre-domaine>/report.html.

Choisir le bon parseur pour Apache

Il se peut que la commande précédente n'apporte pas le résultat escompté. En effet, les logs peuvent être construits de nombreuses manières. Pour que GoAccess comprenne les données issues du fichiers que vous lui fournissez, utilisez l'option -c.

goaccess -f /var/log/apache2/access.log -c

Un menu va vous proposer les différents parseurs disponibles. Pour d'Apache, nous utiliserons le premier : NCSA Combined Log Format. Le deuxième, NCSA Combined Log Format with Virtual Host, est à sélectionner lors de l'utilisation de virtuals hosts.

Vous pouvez à tout moment éditer les règles de parsing avec les touches suivantes :

  • touche c pour modifier le format du log
  • touche d pour modifier la date
  • touche t pour le temps

Les différentes options disponibles pour ces expressions régulières sont disponible sous l'encart SPECIFIERS du manuel de GoAccess.

UwAmp, le serveur Apache MySQL PHP pour Windows qui vous facilitera la vie

Je viens aujourd'hui vous présenter une alternative aux serveurs AMP (Apache, MySQL, PHP) pour Windows déjà existant tel que Wamp ou EasyPHP. Voilà un petit moment que j'en avais entendu parler du côté de chez Korben mais je n'avais pas encore pris le temps de le tester. C'est aujourd'hui chose faite et je dois avouer avoir été plus que séduit par la simplicité et l'efficacité de ce soft ainsi que par ses possibilités. Au niveau de l'installation, l'exe permet d'avoir une installation classique avec wizard, mais il est possible de l'utiliser en version portable via les versions RAR et ZIP qui nous sont proposées sur la page de téléchargement. Une fois le programme lancé, les services Apache et MySQL se lancent automatiquement.

A partir du panneau d'administration, nous avons accès à l'état du serveur, la configuration actuelle de PHP/Apache et la possibilité d'accéder à tous les réglages/dossiers/pages usuels ou encore de passer le serveur en online/offline en quelques clics: que du bonheur ! Petit bémol tout de même puisque la "boite à outils" n'est pas paramétrable et du coup, certains raccourcis peuvent s'avérer inutiles lorsque les paramètres par défaut sont modifiés (comme l'emplacement du dossier www par exemple), une option pour changer tout ça dans les préférences serait la bienvenue lors de la prochaine MAJ. Il nous est également possible de switcher entre les versions de PHP via le menu "PHP Version", ce qui risque de faire plaisir aux développeurs qui souhaitent tester leurs codes sur toutes les moutures sans avoir à retourner dans les fichiers de conf à chaque fois. Lors de chaque changement (et si vous ne l'avez pas décoché dans les préférences), les services redémarrent afin de prendre les modifications en compte. Tant que je vous parle des préférences, je voulais également vous signalez que vous pouvez y changer votre éditeur de texte par défaut (c'est quand même plus funky de se repérer dans Notepad++ que dans notepad non ?).

Comme vous pouvez le voir sur le screenshot ci-dessus, une gestion de monitoring est de la partie avec les pourcentages de consomation CPU, et si vous cliquez sur l'icône juste à côté, vous aurez deviné qu'une fenêtre avec un histogramme en temps réel s'ouvrira (pratique pour avoir une vue d'ensemble quand on s'inquiète pour ses ressources).

Au niveau des configurations avancées, vous pouvez gérer vos Virtual Hosts et les modules actifs pour Apache et PHP et pour les plus pointilleux d'entre vous, je ne l'ai pas testé personnellement mais sachez que vous avez également la possibilité d'installer vos versions de PHP en les plaçant dans le dossier apache présent dans votre répertoire d'installation d'UwAmp.

Vous l'aurez compris, j'ai été enchanté par cet ensemble AMP et la seule chose que je regrette c'est que ce jeune et beau projet français ne soit pas open source (mais c'est déjà pas mal qu'il soit proposé gratuitement, oui je sais que je suis exigeant).

ps: attention pour tous les habitués des autres solutions, les identifiants du compte par défaut sont root/root ! Les autres ne mettant pas de mot de passe par défaut, ça peut surprendre.

Liens utiles: