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 :
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