Je dois souvent ajouter de nouvelles règles au fichier Apache-badbots.conf, et chaque fois j'ai le doute que cela ne fonctionne plus ...
Par exemple, voici mon fichier Apache-badbots.conf actuel:
[Definition]
badbotscustom = MQQBrowser|LieBaoFast|Mb2345Browser|zh-CN|python-requests|LinkpadBot|MegaIndex|Buck|SemrushBot|SeznamBot|JobboerseBot|AhrefsBot|AhrefsBot/6.1|MJ12bot|[email protected]|SemrushBot/6~bl|cortex|Cliqzbot|Baiduspider|serpstatbot|Go 1.1 package http|Python-urllib|StormCrawler|archive.org_bot|CCBot|BLEXBot|ltx71|DotBot|EmailCollector|WebEMailExtrac|Track$
badbots = Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrow$
#failregex = ^<Host> -.*"(GET|POST|HEAD).*HTTP.*"(?:%(badbots)s|%(badbotscustom)s)"$
failregex = ^<Host> -.*"(GET|POST).*HTTP.*".*(?:%(badbots)s|%(badbotscustom)s).*"$
ignoreregex =
datepattern = ^[^\[]*\[({DATE})
{^LN-BEG}
Hier, j'ai ajouté "MQQBrowser | LieBaoFast | Mb2345Browser | zh-CN" et aujourd'hui, je vois beaucoup de MQQBrowser et LieBaoFast dans mes journaux d'accès.
Sudo cat /var/log/Apache2/access.log | awk -F\" '{print $6}' | sort | uniq -c | sort -n
...
3408 Mozilla/5.0(Linux;U;Android 5.1.1;zh-CN;OPPO A33 Build/LMY47V) AppleWebKit/537.36(KHTML,like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.7.0.953 Mobile Safari/537.36
3418 Mozilla/5.0(Linux;Android 5.1.1;OPPO A33 Build/LMY47V;wv) AppleWebKit/537.36(KHTML,link Gecko) Version/4.0 Chrome/42.0.2311.138 Mobile Safari/537.36 Mb2345Browser/9.0
3444 Mozilla/5.0 (Linux; Android 7.0; FRD-AL00 Build/HUAWEIFRD-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043602 Safari/537.36 MicroMessenger/6.5.16.1120 NetType/WIFI Language/zh_CN
3473 Mozilla/5.0(Linux;Android 5.1.1;OPPO A33 Build/LMY47V;wv) AppleWebKit/537.36(KHTML,link Gecko) Version/4.0 Chrome/43.0.2357.121 Mobile Safari/537.36 LieBaoFast/4.51.3
Qu'est-ce qui ne va pas? Ça marche? Existe-t-il un moyen de savoir s'il y a une erreur et quelle est l'erreur?
Je mets à jour car il ne comprend toujours pas quelque chose, par exemple aujourd'hui j'ai trouvé d'autres bots qui devraient être bannis dans mes logs.
Juste pour comprendre, ce filtre recherche la chaîne que j'ajoute dans Apache-badbots.conf dans le journal d'accès du serveur, et s'il le trouve, il ajoute une règle à fail2ban, à droite ?
atSpider/1\.0
"ont toutes ces barres obliques?China Local Browse 2\.6|DataCha0s/2\.0|DBrowse 1\.4b
)Go 1.1 package http
"sont corrects ou génèrent une erreur?Avez-vous un fichier robots.txt? C'est pour les robots tellin où et comment ramper. Il y a plus d'une question ici, alors voyons-les une par une.
Si vous souhaitez vérifier si cela fonctionne, accédez simplement au journal fail2ban. Pour comprendre COMMENT son fonctionnement, veuillez aller dans/usr/share/doc/fail2ban/README ou d'autres documents. En bref: fail2ban lit votre fichier journal par les filtres définis et crée des règles de pare-feu pour les adresses IP problématiques trouvées dans les lignes de journal problématiques. Si le bot défini a une adresse IP, il sera banni après quelques tentatives. Dans ce cas particulier, il y a des milliers de demandes avec MQQBrowser et LieBaoFast à partir de nombreuses adresses IP différentes. Donc, jusqu'à ce qu'ils aient une IP qui n'est pas bloquée, il y aura de nouvelles entrées de journal.
Ces lignes de configuration sont expressions régulières , et ceci est la réponse courte à certaines des autres questions, comme:
Si vous souhaitez vraiment sélectionner vos clients en fonction de la chaîne useragent, vous devez utiliser .htaccess, BBQ ou un autre plugin.