W ostatnim czasie na stronach moich i klientów zauważyłem wzmożoną (potencjalnie szkodliwą) aktywność na adres logowania do kokpitu WordPress. Oczywiście pierwszą rzeczą, którą przeczytasz na taką sytuację w internecie jest „Zmień adres logowania do wp-admin„, ale w mojej ocenie to bardzo głupi pomysł z wielu powodów i zdecydowałem się na dużo lepsze rozwiązanie zarówno pod kątem wydajności serwera jak i bezpieczeństwa.
Czego potrzebujesz?
- Konta i strony dodanej do CloudFlare,
- W DNS ustawienia, aby Twoja domena była w trybie „Proxied”, czyli cały ruch musi przechodzić przez usługę (domyślnie aktywne),
- 10 minut na konfigurację.
Jak działa to zabezpieczenie?
Za każdym razem, gdy ktoś spróbuje wywołać wp-login.php (skrypt logowania, umożliwiający dostęp do kokpitu) użytkownik poproszony zostanie o podanie swojego maila, na którego otrzyma jednorazowy PIN, ważny 10 minut.
Co istotne – jakie adresy mailowe mają dostęp do aplikacji decydujesz Ty w konfiguracji, a każda próba zalogowania się PINem nieautoryzowanym mailem, nawet z poprawnym kodem spowoduje odrzucenie zapytania.
CloudFlare Zero Trust dla WordPress krok po kroku
Kiedy zalogujesz się do Cloudflare przejdź do zakładki Access lub Zero Trust (w momencie kiedy to czytasz możliwe, że usługa już zmieniła nazwę globalnie).

Cloudflare Zero Trust – konfiguracja płatności
Przy pierwszym uruchomieniu poprosi Ciebie o wybranie planu – dla większości użytkowników wersja darmowa w zupełności wystarczy. Pozwala na autoryzowanie 50 użytkowników (identyfikatorów). Przejdź przez konfigurator planu, a następnie przejdź do kolejnego kroku.
Polityka dostępu
Następnie musimy dodać politykę dostępu, czyli określić jacy użytkownicy mają dostęp do kokpitu wg. adresu mailowego.

W kolejnym kroku wybieramy nazwę dla polityki dostępu oraz dodajemy adresy e-mail, które mogą mieć dostęp do kokpitu.
Ustawiamy:
- Name (Nazwa): Dowolna
- Action (Akcja): Allow / Zezwól
- Session duration (Długość sesji): 24h
W regułach dodajemy INCLUDE, selektor „Emails”, a w wartości dodaj wszystkie adresy email, którym pozwalasz na autoryzację.

Dodajmy WordPress jako aplikację do Zero Trust
Kiedy mamy już stworzoną wymaganą politykę dostępu, czas dodać aplikację, czyli naszą stronę na WordPressie. Wracamy do głównego ekranu „Access” i kliknij „Add Application” (obok wcześniej klikanego „Create a Policy”).
Z dostępnych opcji wybieramy „Self-Hosted”:

Następnie ponownie nadaj nazwę, ale tym razem dla aplikacji i wybierz Add public hostname, a następnie wybierz domenę i w miejscu Path wpisz: wp-login.php* tak jak na obrazie poniżej:

Na końcu dodaj stworzoną wcześniej politykę przyciskiem „Select existing polices” i przejdź dalej. Kolejne dwa ekrany możesz pominąć, aby zapisać konfigurację aplikacji. Gotowe!
Jak teraz wygląda logowanie?
Przy próbie wejścia do kokpitu wyświetli się ekran systemu zabezpieczeń (strona przekierowana zostanie do domeny cloudflareaccess.com), po uzupełnieniu maila wyświetli się prośba o kod — jeżeli będzie poprawny i Twój adres email jest na liście dozwolonych – wrócisz na standardowe logowanie WordPress.
Jeżeli adres email będzie inny, niż dozwolony to dalej poprosi o kod, ale po jego podaniu wróci na stronę autoryzacji bez przekierowania z powrotem na Twoją stronę.

ProTip: Aby dodać własne logo, niektóre teksty i kolory na ekranie, gdzie dodawał_ś aplikację „Customize your login page” i tam uzupełnij wymagane pola.


