Ostatnio na jednym z naszych serwerów VPS, gdzie działał sklep internetowy oparty na PrestaShop, napotkaliśmy poważny problem związany z nadmiernym obciążeniem przez boty. W ciągu zaledwie 1,5 godziny boty z domen związanych z Facebookiem i Meta wygenerowały 2394 zapytań, co doprowadziło do zawieszenia serwera.
Jest to bot, który służy Facebookowi do pobierania treści podczas udostępniania linków na platformie. W logach serwera pojawiał się wpis w postaci:
1662 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
Ten bot działa w podobnym celu, aby pobierać dane do Meta, co znajduje potwierdzenie w jego identyfikatorze w logach serwera:
302 0 "-" "meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)"
Skutki
Wskutek nadmiernej liczby zapytań serwer VPS, na którym znajdował się nasz sklep, całkowicie przestał działać. Restart oraz próby przywrócenia usługi nie przyniosły oczekiwanych efektów, a sklep był niedostępny przez dłuższy czas. Stało się jasne, że boty te skutecznie uniemożliwiały prawidłowe funkcjonowanie serwera.
Rozwiązanie
Na początku próbowaliśmy zablokować bota facebookexternalhit bezpośrednio w pliku .htaccess
, co często jest zalecaną metodą ograniczania dostępu dla konkretnych user-agentów. Przykładowa reguła, którą dodaliśmy do pliku .htaccess
, wyglądała następująco:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} facebookexternalhit [NC]
RewriteRule .* - [F,L]
</IfModule>
Jednak z informacji dostępnych na różnych forach i od innych administratorów stron wynika, że bot facebookexternalhit często ignoruje tego rodzaju blokady w pliku .htaccess
. Dlatego, aby zapobiec dalszemu przeciążeniu serwera i niestabilności działania strony, zdecydowaliśmy się całkowicie zablokować boty z Facebooka na poziomie firewall, do momentu pełnego wyjaśnienia sytuacji i zapewnienia stabilności serwera.
Ostatecznie problem udało się rozwiązać poprzez blokadę na firewallu konkretnych zakresów adresów IP, z których pochodziły zapytania od botów. Oto zakresy IP, które zostały zablokowane:
Po wdrożeniu tych zmian praca serwera wróciła do normy, a obciążenie spadło do poziomu umożliwiającego normalne funkcjonowanie sklepu.
Z tego doświadczenia możemy wyciągnąć kilka ważnych wniosków:
Zadbajmy o zabezpieczenie naszych serwerów, a jednocześnie o monitorowanie ruchu, aby unikać podobnych incydentów w przyszłości.