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 ;-)).
Spis treści w artykule
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.
- Home Assistant 2024.11, czyli „sekcje” domyślnym widokiem z opcją migracji, WebRTC oraz wirtualna kamera - 1970-01-01
- Black Friday w ZUS, czyli jest jeszcze kilka dni, by złożyć wniosek RWS i skorzystać z wakacji składkowych płacąc ZUS za grudzień 2024 - 1970-01-01
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01