ClaudeBot di Anthropic è un web crawler utilizzato da Anthropic per raccogliere dati pubblicamente disponibili su internet, al fine di sviluppare i loro modelli di intelligenza artificiale. ClaudeBot si identifica con il token User Agent "ClaudeBot" e segue gli standard del settore per la raccolta dei dati, inclusi il rispetto delle direttive nei file robots.txt, come "Disallow" e "Crawl-delay". Questo secondo quanto dichiarato dalla documentazione del Web Crawler, ma in realtà spesso ignora robots.txt.

Perché bloccare ClaudeBot?

ClaudeBot esegue un'attività svolta da moltissimi crawler, compresi quelli di Google, ma lo sta facendo in modalità aggressiva, richiamando centinaia di pagine web contemporaneamente da moltissimi IP diversi e portando a un aumento significativo del traffico con un elevato uso delle risorse hardware del server. Spesso questa attività porta a far raggiungere il limite massimo di connessione al database nel caso che il sito web scansionato sia un ecommerce o abbia molte pagine dinamiche, generano rallentamenti significativi e, nei peggiori dei casi, inacessibilità del sito stesso. Se noti un rallentamento significativo, errori 500, 502 o 503, potresti essere vittima di ClaudeBot o bot analogo, che non è ancora incluso nella lista dei batbot o ritenuto tale.

Come bloccare ClaudeBot?

In questo breve articolo vediamo come bloccare ClaudeBot, le procedure elencate potranno essere usate per qualsiasi altro bot che ci stia dando noia. 

Usare robots.txt per bloccare ClaudeBot

Se l'attività di crawling di ClaudeBot o altro bot risulta troppo aggressiva e desideri bloccarla, puoi aggiungere le seguenti righe al tuo file robots.txt per disabilitare completamente l'accesso al tuo sito:

[code=language-markup] User-agent: ClaudeBot Disallow: / [/code]

In PrestaShop, il file robots.txt si trova nella directory principale (root) dell'installazione del tuo sito web (es. http://www. nomesito.it/robots.txt). Se non lo trovi lo puoi generare dal BO di PrestaShop andando in Parametri Negozio -> Traffico & SEO, in fondo alla pagina trovi "Generazione del file robots".

Qualsiasi modifica manuale al file robots.txt andrà fatta dopo la sua generazione o aggiornamento da parte di PrestaShop. Il problema è appunto che il CMS sovrascrive il file robots.txt tramite un template prestabilito.

Quindi per modificare il file robots.txt di PrestaShop ci sono in sostanza due modalità:

1. modificare il template predefinito e generare un nuovo robots.txt
2. realizzare un modulo personalizzato che aggiunga le nostre direttive al file robots.txt quando viene generato dal CMS.

Modificando direttamente il template del robots.txt o utilizzando un modulo personalizzato, puoi assicurarti che le tue modifiche non vengano sovrascritte quando PrestaShop rigenera il file. Questo ti consente di bloccare ClaudeBot o qualsiasi altro bot specifico senza preoccuparti che le tue impostazioni vengano perse. Purtroppo sono entrambe soluzioni complicate e spesso ClaudeBot ignora completamente tali indicazioni ed è necessario contattare la loro assistenza.

Usare .htaccess per bloccare ClaudeBot

Rispetto all'uso di robots.txt questa soluzione è più sicura e non può in nessun modo essere elusa da parte dei bot, il file .htaccess lo troviamo sempre nella root del nostro dominio accedendo via FTP. Anche .htaccess è generato da PrestaShop a partire da un proprio template, ma al contrario del robots.txt possiamo inserire il nostro codice sopra al seguente blocco del file:

[code=language-markup] # ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again # .htaccess automaticaly generated by PrestaShop e-commerce open-source solution # https://www.prestashop.com - https://www.prestashop.com/forums [/code]

Quindi per bloccare ClaudeBot dovremo modificare il file .htaccess nel seguente modo:

[code=language-markup] <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*@anthropic.com.*$ [NC] RewriteRule .* - [F,L] </IfModule> # ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again # .htaccess automaticaly generated by PrestaShop e-commerce open-source solution # https://www.prestashop.com - https://www.prestashop.com/forums [/code]

Vi è pure la possibilità di introdurre le nostre direttive personalizzate nel .htaccess nell'ultima riga del file dopo: 

[code=language-markup] # ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again [/code]

In questo caso è preferibile comunque eseguire le istruzioni, prima di tutto il resto, così da limitare al massimo l'uso di risorse. Infatti, sia l'uso di robots.txt che di .htaccess richiedono un elaborazione da parte del server su cui è collocato il nostro ecommerce. 

Usare Fail2ban per bloccare ClaudeBot

Se abbiamo un server dedicato che ospita più domini, possiamo usare Fail2Ban abilitando la jails: apache-badbot.

1. Apri il file apache-badbots.conf per la modifica:

[code=language-bash] sudo nano /etc/fail2ban/filter.d/apache-badbots.conf [/code]

2. Aggiungi la regex per anthropic.com alla lista badbotscustom:

[code=language-bash] badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|(?:Mozilla/\d+\.\d+ )?Jorgee|.*anthropic\.com.* [/code]

In alternativa, se preferisci mantenere le definizioni separate, puoi creare una nuova variabile custombots:

[code=language-bash] custombots = .*anthropic\.com.* [/code]

E modifica la definizione di failregex per includere entrambe le liste di bot:

[code=language-bash] failregex = ^ -.*"(GET|POST|HEAD).*HTTP.*"(?:%(badbots)s|%(badbotscustom)s|%(custombots)s)"$ [/code]

Passaggi completi per aggiornare il file

Il file di configurazione aggiornato dovrebbe apparire come segue:

[code=language-bash] # Fail2Ban configuration file # # Regexp to catch known spambots and software alike. Please verify # that it is your intent to block IPs which were driven by # above mentioned bots. [Definition] badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|(?:Mozilla/\d+\.\d+ )?Jorgee|.*anthropic\.com.* 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|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|Guestbook Auto Submitter|Industry Program 1\.0\.x|ISC Systems iRc Search 2\.1|IUPUI Research Bot v 1\.9a|LARBIN-EXPERIMENTAL \(efp@gmx\.net\)|LetsCrawl\.com/1\.0 \+http\://letscrawl\.com/|Lincoln State Web Browser|LMQueueBot/0\.2|LWP\:\:Simple/5\.803|Mac Finder 1\.0\.xx|MFC Foundation Class Library 4\.0|Microsoft URL Control - 6\.00\.8xxx|Missauga Locate 1\.0\.0|Missigua Locator 1\.9|Missouri College Browse|Mizzu Labs 2\.2|Mo College 1\.9|MVAClient|Mozilla/2\.0 \(compatible; NEWT ActiveX; Win32\)|Mozilla/3\.0 \(compatible; Indy Library\)|Mozilla/3\.0 \(compatible; scan4mail \(advanced version\) http\://www\.peterspages\.net/?scan4mail\)|Mozilla/4\.0 \(compatible; Advanced Email Extractor v2\.xx\)|Mozilla/4\.0 \(compatible; Iplexx Spider/1\.0 http\://www\.iplexx\.at\)|Mozilla/4\.0 \(compatible; MSIE 5\.0; Windows NT; DigExt; DTS Agent|Mozilla/4\.0 efp@gmx\.net|Mozilla/5\.0 \(Version\: xxxx Type\:xx\)|NameOfAgent \(CMS Spider\)|NASA Search 1\.0|Nsauditor/1\.x|PBrowse 1\.4b|PEval 1\.4b|Poirot|Port Huron Labs|Production Bot 0116B|Production Bot 2016B|Production Bot DOT 3016B|Program Shareware 1\.0\.2|PSurf15a 11|PSurf15a 51|PSurf15a VA|psycheclone|RSurf15a 41|RSurf15a 51|RSurf15a 81|searchbot admin@google\.com|ShablastBot 1\.0|snap\.com beta crawler v0|Snapbot/1\.0|Snapbot/1\.0 \(Snap Shots, \+http\://www\.snap\.com\)|sogou develop spider|Sogou Orion spider/3\.0\(\+http\://www\.sogou\.com/docs/help/webmasters\.htm#07\)|sogou spider|Sogou web spider/3\.0\(\+http\://www\.sogou\.com/docs/help/webmasters\.htm#07\)|sohu agent|SSurf15a 11 |TSurf15a 11|Under the Rainbow 2\.2|User-Agent\: Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows NT 5\.1\)|VadixBot|WebVulnCrawl\.unknown/1\.0 libwww-perl/5\.803|Wells Search II|WEP Search 00 custombots = .*anthropic\.com.* failregex = ^ -.*"(GET|POST|HEAD).*HTTP.*"(?:%(badbots)s|%(badbotscustom)s|%(custombots)s)"$ ignoreregex = datepattern = ^[^\[]*\[({DATE}) {^LN-BEG} [/code]

Salva le modifiche e chiudi nano (in nano, premi CTRL + X, poi Y, e infine ENTER).

3. Riavvio di Fail2ban

Dopo aver aggiornato il filtro, riavvia il servizio Fail2ban per applicare le modifiche:

[code=language-bash] sudo systemctl restart fail2ban [/code]

Verifica della configurazione

Usa i seguenti comandi per verificare che Fail2ban stia monitorando correttamente i log e applicando le regole:

  • Verifica lo stato di Fail2ban e delle jail attive:
[code=language-bash] sudo fail2ban-client status [/code]
  • Verifica lo stato della jail specifica
[code=language-bash] sudo fail2ban-client status plesk-apache-badbot [/code]

Questa configurazione aggiornata bloccherà gli accessi provenienti da qualsiasi user agent contenente anthropic.com direttamente da parte del server.

Concludendo

Abbiamo visto come bloccare ClaudeBot, la procedura è la stessa per qualsiasi user-agent che intendiamo bloccare in quanto molesto e/o malevolo. Purtroppo sono attività soprattutto la configurazione di Fail2ban estremamente complesse che vanno eseguite da un sistemista. Esiste anche la possibilità di utilizzare CloudFlare di cui abbiamo parlato qui: Utilizzare CloudFlare con PrestaShop. L'uso di CloudFlare ha indubbiamente dei vantaggi, primo tra tutti, quello di alleggerire il nostro server dal bloccare questo traffico spazzatura, con risparmio di banda e di risorse. Infatti, se pur minime le risorse impiegate per rifiutare l'accesso al sito a questi bots, possono avere un peso quando le richieste sono molto elevate e di poco inferiori a quello che è un vero e proprio attacco DDoS. 

Autore: Loris Modena

SENIOR DEVELOPER

Per Ind Loris Modena titolare di Arte e Informatica, inizia a lavorare nel settore informatico nel 1989 quale sistemista addetto alla manutenzione e installazione di sistemi informatici. Inizia a programmare per il web nel 1997 occupandosi di programmazione CGI in PERL e successivamente passando alla programmazione in PHP e JavaScript. In questo periodo si avvicina al mondo Open source e alla gestione di server Linux. 

prodotto aggiunto alla lista