Można by powiedzieć, ze dzisiejszy poranek był klasyczny, czyli spacer z psami, później podgląd raportów z różnych usług, w tym serwerów, na których działają różne strony. I jak to przy takim przeglądzie bywa, zawsze trafi się jakieś zmasowane skanowanie storny – czy to w poszukiwaniu jakiejś podatności, czy też w ramach analizy zawartości. Dziś jednak raporty dotyczące akurat strony Webinsider.pl pokazywały, że ktoś skanuje stronę, i nie jest to robot żadnej z popularnych wyszukiwarek, bo te akurat szanują obostrzenia/restrykcje co do intensywności swoich działań. Tak więc nie pozostało nic innego, jak ograniczyć dostęp dla nieproszonych pajączków (nie mylić z pewnym pajączkiem z pewnego technopudelka, bo ten – jako czytelnik – zawsze mile widziany, a do tego nawet robiąc „przedruk” nie musiałby męczyć się z tłumaczeniem, tak, jak z zagranicznych serwisów ;-)).

Blokowanie niepożądanego ruchu na stronie w CloudFlare

Pierwsza myśl, to przywrócić blokowanie niepożądanych robotów po stronie serwera, czyli Nginx. Ma to sens, ale po co tym zadaniem obciążać serwer, zwłaszcza jeśli nie trzeba… Bo skoro strona stoi za CloudFlare, i zanim jakieś żądanie dotrze do serwera, musi przejść właśnie przez usługę CloudFlare, to zdecydowanie lepiej na tej warstwie dokonać blokady.

Standardowo albo bym zwiększył poziom ochrony, albo nawet – jak to czasem wręcz trzeba – aktywował tryb „i’m under attack”, który dość skutecznie niweluje wszelkiej maści niepożądanych gości, pozwalając złapać oddech serwerowi. Ale to działanie globalne, a czasem wystarczy zadziałać bardziej precyzyjnie, i tu z pomocą przychodzą reguły stron (page rules), dzięki czemu można w miarę precyzyjnie ustawić m.in. to, jakie zasoby w danym momencie potrzebują dodatkowej kontroli (np. np. mechanizm odpowiedzialny za logowanie do WordPressa).

Tym razem postanowiłem jednak skorzystać z jeszcze innego mechanizmu, bo szturm dotyczył różnych zasobów, z logów serwera widać też było, że to kilka botów, więc precyzyjne cięcie za pomocą reguł stron mogłoby być trudne, a też nie chciałem utrudniać życia wszystkim użytkownikom strony.

Bot Fight Mode w CloudFlare

Na pierwszy ogień poszła dość nowa opcja w CloudFlare, czyli Boot Fight Mode, dzięki której można wyciąć wszelkiej maści boty, które przez CloudFlare zostaną rozpoznane jako niepożądane.

Zaletą tego rozwiązania, poza pełną automatyzacją, bo wystarczy tylko włączyć odpowiednią opcję (Firewall -> Tools: Bot Fight Mode), jest to, że w ten sposób możemy odfiltrować nawet potencjalnie nieznane okazy, bo działa tutaj mechanizm zbiorowego raportowania ze wszystkich stron korzystających z CloudFlare.

User Agent Blocking w CloudFlare

Ale z racji tego, że z logów serwera wiedziałem jakie nagłówki identyfikujące klienta HTTP (user-agent) nieproszone panoszą się po stornie, to mogłem również w ten sposób dokonać precyzyjnej blokady, korzystając z kolejnego mechanizmu dostępnego w CloudFlare (Firewall -> Tools: User Agent Blocking):

Wprowadzamy odpowiedni nagłówek identyfikujący klienta HTTP (user-agent), oraz wybieramy typ blokady (blokada, lub „wyzwanie”, czyli np. CAPTCHA).

Również w bezpłatnym planie CloudFlare

Co ważne, obie przedstawione tu metody (zresztą tak samo jak reguły stron) dostępne są również w darmowym planie CloudFlare. Z taką różnicą, że wtedy zamiast 250 aktywnych rekordów, można mieć 10. Co istotne, dotyczy to aktywnych (włączonych) reguł, więc teoretycznie można przygotować ich dowolną liczbę, i dokonywać aktywacji/dezaktywacji wedle aktualnych potrzeb.

(!) Zgłoś błąd na stronie

Zapraszam do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!