Configurer Apache 2.4 pour avoir accès aux ports de retour dans les logsTutoriel pour Ubuntu server et Debian
Les logs standards "combined" sont composés de ces informations :LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined-
%h : adresse IP du client
-
%l : identité (RFC 1413) du client : jamais disponible
-
%u : l'identifiant utilisateur de la personne, issu d'une authentification HTTP : ne concerne pas LaFibre.info
-
%t : L'heure à laquelle la requête a été reçue.
-
\"%r\" : requête du client (placée entre guillemets)
-
%>s : code de statut que le serveur retourne au client
-
%O : nombre réel d'octets reçus et envoyés sur le réseau.
-
\"%{Referer}i\" : L'en-tête "Referer" de la requête HTTP. Il indique le site depuis lequel le client prétend avoir lancé sa requête.
-
\"%{User-agent}i\" : Le User-Agent (information d'identification que le navigateur du client envoie à propos de lui-même).
Je vous propose de remplacer l'identité du client, inutilisé aujourd'hui et situé juste aprés l'adresse IP pour y mettre le numéro de port avec %{remote}p
Il y a une façon sale de faire : modifier la ligne de LogFormat situé dans /etc/apache2/apache2.conf
Cela fonctionne, mais lors des mise à jour vers des versions plus récente d'Apache, cela va poser problème quand le fichier apache2.conf change.
(la mise à jour vous proposera de garder votre fichier - plus adapté à la nouvelle version - ou de mettre le nouveau fichier sans vos modifications)
Il y a la façon propre de modifier les logs que je vous propose :
Étape 1 :
Créez le fichier /etc/apache2/conf-available/log-personnalise.conf :
sudo nano /etc/apache2/conf-available/log-personnalise.conf
copiez /coller les ligne ci-dessous :# log "combined" modifié pour avoir le port: on remplace l'identité RFC 1413 du client par le port distant
LogFormat "%h %{remote}p %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combiport
Étape 2 :Activez le fichier de configuration crée :
sudo a2enconf log-personnalise
Étape 3 :
Modifiez les fichiers de configurations de vos sites web.
Cette commande modifie les fichiers de configurations de tous vos sites web pour passer sur le nouveau format :
sudo sed -i -e "s/combined/combiport/g" /etc/apache2/sites-available/*.conf
Étape 4 :
Demandez a Apache de prendre en compte les modifications effectuées :
sudo service apache2 reload
édit :
Pour ceux qui se demandent ce que cela donne, j'ai mis 1 minute de log de LaFibre.info dans un tableur.
=> 201512_log_lafibreinfo.ods (format Libre Office Calc, lisible avec Microsoft Excel et Open Office)
J'ai pris les logs de 22h14 aujourd'hui, c'est le moment où j'ai posté ce message.
J'ai anonymisé les IP (il ne reste que le début).
Vous pouvez voir que en une minute, on a 924 lignes avec du HTTP1.1, du HTTP1.0, des GET, des POST, des erreurs 302, 304 ou 404, des requêtes de 192 octets à 1,3Mo, de l'user agent curl, Google bot, Tiny Tiny RSS, Python-urllib/1.17, Firefox, Chrome, Internet Explorer,... ect... bref un échantillons de la vraie vie d'un site.
Note pas de requête http car les requêtes http (redirections vers https) sont dans un autre fichier de log.
En fait j'ai 3 fichiers de log pour le site :
- le site en https
- les redirection http vers https
- les redirections pour ceux qui ont mis un www en https vers la même url sans le www, toujours en https