Otrzymaliśmy zgłoszenie dotyczące nagłego wzrostu zużycia zasobów procesora na serwerze obsługującym sklep PrestaShop, którym się opiekujemy. Zauważyliśmy również, że sam sklep zaczął działać wolniej. Choć spowolnienia w PrestaShop są naturalne w wyniku zapychania się bazy danych, zwykle następują one stopniowo, a nie skokowo, jak miało to miejsce w tym przypadku.
Przystąpiliśmy do analizy logów serwera, aby zidentyfikować źródło problemu. Zanim otworzyliśmy logi (co na tym hostingu nie jest możliwe w czasie rzeczywistym), zauważyliśmy, że plik logu zwiększał się o około 0,5 MB co kilka sekund, co wskazywało na dużą aktywność serwera.
Po otwarciu logów sytuacja stała się jasna – serwer był bombardowany zapytaniami pochodzącymi z różnych adresów IP, oznaczonymi jako ClaudeBot.
ClaudeBot to nazwa bota przeglądającego strony internetowe. Boty to automatyczne programy, które przeszukują i przetwarzają dane ze stron internetowych. Są używane do różnych celów, takich jak zbieranie danych, sprawdzanie dostępności stron oraz analizy. W naszym przypadku ClaudeBot generował nadmierne obciążenie serwera.
Najskuteczniejszym i najmniej obciążającym serwer rozwiązaniem byłoby ustawienie blokady IP na poziomie firewall. Jednak z uwagi na to, że ten hosting nie udostępnia takiej możliwości, zdecydowaliśmy się wdrożyć regułę w pliku .htaccess
, aby zablokować ClaudeBot. Oto reguła, którą zastosowaliśmy:
BrowserMatchNoCase "claudebot" blokuj
Order Deny,Allow
Deny from env=blokuj
Blokada działa skutecznie – obciążenie serwera w tej samej chwili spadło o połowę. Ruch na naszej stronie jest wciąż możliwy, ale serwer odpowiada kodem 403 dla zapytań od ClaudeBot, co zapobiega generowaniu dodatkowych zapytań do bazy danych i odciąża serwer.
Przykład wpisu z logów serwera po zastosowaniu blokady:
18.221.89.183 - - [24/May/2024:08:34:13 +0200] "GET / HTTP/2" 403 699 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)""US"
Jak widać, serwer teraz odpowiada kodem 403 na próby dostępu przez ClaudeBot, co znacząco zmniejszyło obciążenie i poprawiło wydajność sklepu PrestaShop.
Jeżeli zauważyliście nagłe wzrosty obciążenia serwera lub spowolnienie działania Waszego sklepu internetowego, warto przyjrzeć się logom serwera. Nadmierna aktywność botów, takich jak ClaudeBot, może być przyczyną problemów. Blokada niepożądanych botów za pomocą reguł w pliku .htaccess
jest skutecznym sposobem na ochronę zasobów serwera i zapewnienie płynnego działania strony.
Jeśli potrzebujecie pomocy w analizie logów lub pomocy przy PrestaShop, zapraszamy do kontaktu. Aby zapoznać się z naszymi usługami i kosztami, odwiedź nasz cennik PrestaShop. Jesteśmy tu, aby pomóc!
1. Jak zablokować bota CloudeBot przy użyciu CSF:
Jeśli masz więcej stron na serwerze którym zarządzasz aby zablokować bota CloudeBot, możesz dodać poniższe adresy IP do swojego pliku konfiguracyjnego firewall dla CSF /etc/csf/csf.deny
.
Oto lista adresów IP, które możesz zablokować:
3.12.0.0/16
3.14.0.0/15
3.20.0.0/14
3.128.0.0/15
3.132.0.0/14
3.136.0.0/13
3.144.0.0/13
13.58.0.0/15
18.116.0.0/14
18.188.0.0/16
18.189.0.0/16
18.190.0.0/16
18.191.0.0/16
18.216.0.0/14
18.220.0.0/14
18.224.0.0/14
52.14.0.0/16
2. Blokowanie CloudeBot w .htaccess po adresacji IP
Możesz zablokować całe klasy adresowe używane przez bota, dodając poniższe reguły do pliku htaccess:
<RequireAll>
Require all granted
Require not ip 3.12.0.0/16
Require not ip 3.14.0.0/15
Require not ip 3.20.0.0/14
Require not ip 3.128.0.0/15
Require not ip 3.132.0.0/14
Require not ip 3.136.0.0/13
Require not ip 3.144.0.0/13
Require not ip 13.58.0.0/15
Require not ip 18.116.0.0/14
Require not ip 18.188.0.0/16
Require not ip 18.189.0.0/16
Require not ip 18.190.0.0/16
Require not ip 18.191.0.0/16
Require not ip 18.216.0.0/14
Require not ip 18.220.0.0/14
Require not ip 18.224.0.0/14
Require not ip 52.14.0.0/16
</RequireAll>