Hébergement : ça va mieux !
Je viens d’achever la migration de mon vieux serveur sur une nouvelle Dedibox dotée de 8 cœurs, de 8 Go de RAM et d’un disque SSD. Comparée à l’ancienne disposant de 1 cœur et de 2 Go, vous n’aurez aucun mal à constater une plus grande fluidité de ce site. Toutefois, les ennuis n’ont pas tardé à commencer. Et il a fallu agir !
Blocage d’adresses Ip
Comme vous le savez peut-être, j’utilise Awstats. Il me remonte les noms de machine, les Ip non résolues, les user agents et les referers. Il permet très vite d’isoler les anomalies.
J’ai analysé le nombre de hits consigné dans les fichiers de logs du serveur Apache :
cat /var/log/httpd/dsfc-access_log|grep -a "^12\.36\.121"|wc -l
Après avoir contrôlé ces adresses via le site db-ip.com, j’ai décidé ensuite de bloquer au pare-feu via Iptables les adresses Ip indésirables dans le fichier /etc/sysconfig/iptables sur Linux Fedora / CentOS/ Red Hat :
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] #LeaseWeb DE -A INPUT -s 91.109.19.24 -j DROP #McMillan -A INPUT -s 12.36.121.83 -j DROP -A INPUT -s 12.36.121.84 -j DROP #Machine OVH -A INPUT -s 91.121.79.180 -j DROP #seodedic -A INPUT -s 46.161.9.0/24 -j DROP #BrandWatch -A INPUT -s 185.25.32.0/24 -j DROP -A INPUT -s 5.102.174.132 -j DROP COMMIT
Sous Fedora / CentOS / Red Hat, vous devez redémarrer le service Iptables pour la prise en compte des modifications :
systemctl restart iptables
Les referers
Pour l’essentiel, je m’appuie sur Awstats :
Au besoin, la confirmation vient ensuite des logs du serveur Apache :
cat /var/log/httpd/dsfc-access_log|grep -a -E "\.imgur\."|wc -l
User agents
Pour les user agents, je procède un peu différemment. J’analyse en live, à différentes périodes de la journée, le fichier de logs du serveur Apache afin d’identifier les requêtes abusives :
tail -f /var/log/httpd/dsfc-access_log|cut -d '"' -f 6
Je comptabilise ensuite le nombre de requêtes effectuées :
cat /var/log/httpd/dsfc-access_log|grep -a "brandwatch"|wc -l
Verrouillage via Apache
Ensuite, j’ajoute les referers, les user agents et quelques hosts parasites dans la configuration de mon serveur Apache afin de les bloquer :
#Trafic parasite vers index.html # #Metrics|Scraping|SEO|Web Analytics # RewriteCond %{HTTP_USER_AGENT} (\.|/|^|\ |_)(adnorm|ahrefs(bot)?|Backlink(Crawler|test)|brandwatch|cocon|COMODO\ SSL\ Checker|cognitiveseo|crazywebcrawler|dareboost|drakma|easy-thumb|everyonesocial|gmetrix|ismyblogbroken|jetsli|kraken|linkdex|linkfluence|ltx71|majestic12|MJ12Bot|MonTools|moz|netlyzer|nettrack|OnlineWebCheck|okhttp|openlinkprofiler|opensiteexplorer|proximic|scrapy|semantic|semrush|sysomos|ubermetrics|validator|webassay|WebCrawler|xenu\ link\ sleuth|zeef)(\.|\ |/|;|$) [NC,OR] RewriteCond %{HTTP_REFERER} (\.|/)(ismyblogworking|webfaction)\.com($|/) [NC,OR] RewriteCond %{REMOTE_HOST} \.heilink\. [NC,OR] # #Langages # RewriteCond %{HTTP_USER_AGENT} (\.|/|^|\ |_|-)([cC]url|Java|perl|PHP|python|Ruby|wget|Zend)(-|\.|\ |/|$|\\) [OR] # #UserAgent inconnu # RewriteCond "%{HTTP_USER_AGENT}" "^(\ |null|-||\\)$" [OR] # #Cul # RewriteCond %{HTTP_REFERER} \.(imgur|iobloggo)\.com($|/) [NC,OR] RewriteCond %{HTTP_REFERER} \.(xrus)\.org($|/) [NC,OR] # #Les Huns modernes # RewriteCond %{REMOTE_HOST} \.ru(/|$) [NC,OR] RewriteCond %{HTTP_REFERER} \.(bg|cc|corp|ga|lv|ninja|ru|tl|top|ua|wtf)($|/) [NC] RewriteRule ".*" "%{HTTP_HOST}/index.html" [QSA,R=302,L]
Pour que ces lignes soient prises, vous devez les inscrire, via une directive Include au besoin, dans la configuration de votre VirtualHost !