Exploitation des logs du serveur web Apache

Je vais vous livrer dans cet article quelques commandes qui vous permettront, sous Linux, d’exploiter les logs de votre serveur Apache et de prendre les mesures pour soulager votre charge.

Collecte des adresses IP

L’intérêt de regarder les adresses IP qui accèdent à vos serveurs est d’en mesurer l’utilité sociale et de les ajouter à une blacklist que vous activerez au niveau de votre pare-feu Iptables.

Pour les préfixes IPv4, la commande ci-dessous comptabilise le nombre d’occurrences rencontrées dans les fichiers de logs.

[root@enfinauchaud httpd]# cat /var/log/httpd/dsfc-access_log|cut -d '.' -f 1,2|grep -v ':'|sort|uniq -c|grep -P '^[ ]{0,3}[0-9]{4,7}'
   1945 114.119
   2448 141.94
   1269 35.245
   4538 47.57
   9505 5.133
   2479 51.83
   1568 52.167
   1323 62.244
   7279 64.124
   1832 66.249
   1020 92.247

Pour les adresses IPv6 :

[root@enfinauchaud ~]# cat /var/log/httpd/dsfc-access_log|cut -d ':' -f 1,2|grep -v '\.'|sort|uniq -c|grep -P '^[ ]{0,3}[0-9]{4,7}'
   1716 2001:41d0
   4044 2a01:4f9

Collectons les user agents.

Maintenant, intéressons nous aux user agents ! Vous observez que les accès les plus nombreux émanent des bots des morts des moteurs de recherche.

[root@enfinauchaud ~]# cat /var/log/httpd/dsfc-access_log|cut -d '"' -f 6|sort|uniq -c|grep -P '^[ ]{0,3}[0-9]{4,7}'
   1521 Bloglovin/1.0 (http://www.bloglovin.com; 1 subscribers)
   1237 FreshRSS/1.20.2 (Linux; https://freshrss.org)
   1915 Mozilla/4.0 (compatible; ms-office; MSOffice 16)
   3464 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/103.0.5060.134 Safari/537.36
   1965 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
   7644 Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)
   2478 Mozilla/5.0 (compatible; SeekportBot; +https://bot.seekport.com)
   1087 Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)

Blocage d’adresses IP

Selon qu’il s’agisse d’une adresse IPv4 ou IPv6, vous aurez respectivement à éditer et à ajouter aux fichiers /etc/sysconfig/iptables et /etc/sysconfig/ip6tables (si vous êtes sur Fedora Server) les adresses collectées :

cat /var/log/httpd/dsfc-access_log|grep '^5\.133\.'|cut -d ' ' -f 1|sort|uniq -c
   9505 5.133.192.173

Je vérifie qu’il ne s’agit pas d’un bot d’un moteur :

[root@enfinauchaud ~]# cat /var/log/httpd/dsfc-access_log|grep '^5\.133\.'|cut -d '"' -f 6|sort|uniq -c
   9505 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36

Je ne sais pas qui est ce guignol qui accède à mon site à raison de deux accès par minute en moyenne :

Exploitation des logs du serveur web Apache

Une petite vérification DNS ne fait de mal à personne :

C:\Users\Administrateur>nslookup 5.133.192.173
Serveur :   localhost
Address:  127.0.0.1

Nom :    sailminister.com
Address:  5.133.192.173

Du coup, j’ai ajouté l’adresse IPv4 à mon fichier /etc/sysconfig/iptables :

-A INPUT -s 5.133.192.173 -j DROP

Une fois modifié, j’ai redémarré le service :

systemctl restart iptables

LAMP /