Smart Protector to wtyczka do WordPressa, która utwardza sposób wchodzenia do panelu witryny. Przygotował ją BeeClear, czyli twórca wtyczek do WordPressa i programów na smartfony. Uwierzytelnianie dwuskładnikowe to logowanie hasłem oraz dodatkowym, jednorazowym kodem z telefonu, w skrócie 2FA. Ten tekst dotyczy jednego mechanizmu wtyczki: twardej bramki, która nie przepuszcza konta bez kodu żadną boczną drogą. Sprawdź, jak działa i jak ją włączyć bez ryzyka zablokowania się.
Spis treści
- Dlaczego 2FA w samym formularzu logowania nie wystarcza?
- Czym jest twarda bramka panelu w Smart Protector?
- Co dzieje się z XML-RPC i hasłami aplikacji przy włączonym 2FA?
- Jak wygląda logowanie przez bramkę krok po kroku?
- Jak Smart Protector chroni same kody TOTP?
- Gdzie sprawdzisz, kto przeszedł weryfikację 2FA?
- Czy bramka może wpaść w pętlę albo odrzucać dobre kody?
- Co zrobić, gdy użytkownik zgubi aplikację uwierzytelniającą?
- Jak włączyć bramkę 2FA w swojej witrynie?
Dlaczego 2FA w samym formularzu logowania nie wystarcza?
2FA w samym formularzu logowania nie wystarcza, bo WordPress obsługuje konta także innymi drogami. Obok standardowego ekranu wejścia działają admin-ajax, REST API, XML-RPC i hasła aplikacji. XML-RPC nie potrafi poprosić o kod, więc login i hasło mogłyby ominąć drugi czynnik. Hasła aplikacji uwierzytelniają z kolei bez sesji w przeglądarce.
Każda taka droga przypomina furtkę w ogrodzeniu, które od frontu wygląda solidnie. Po co forsować główną bramę, skoro obok stoi otwarte przejście? Wykradzione hasło wystarcza wtedy do działania na koncie. Dodatkowy kod chroni więc tylko tak skutecznie, jak najsłabsze wejście do witryny. Ochrona musi zatem obejmować każdą drogę, a nie tylko tę najbardziej widoczną.
Czym jest twarda bramka panelu w Smart Protector?
Twarda bramka panelu to serwerowy punkt kontroli, który Smart Protector stawia przed kokpitem WordPressa. Dopóki sesja nie przejdzie weryfikacji, panel, admin-ajax i REST API odmawiają obsługi konta. Blokada działa po stronie serwera, a nie w interfejsie. Zatrzymuje zatem również próby automatyczne, nie tylko kliknięcia w przyciski. Wtyczka nie zmienia przy tym plików .htaccess, wp-config.php ani motywu.
Punkt kontroli wyświetla własną, samodzielną stronę i kończy żądanie, zanim kokpit zdąży się załadować. Użytkownik widzi prosty ekran z polem na kod. Nie zobaczy menu, listy wpisów ani ustawień. Dopiero poprawna weryfikacja otwiera sesji drogę dalej. Weryfikacja obejmuje konkretną sesję, więc każde kolejne zalogowanie znów wymaga kodu.
Co dzieje się z XML-RPC i hasłami aplikacji przy włączonym 2FA?
XML-RPC i hasła aplikacji Smart Protector traktuje stanowczo: odrzuca je dla kont objętych 2FA. Skoro XML-RPC nie umie zapytać o kod, próba tą drogą kończy się odmową. Hasła aplikacji REST API przyjmie dopiero dla konta, którego sesja przeszła punkt kontroli. Dotyczy to także aplikacji mobilnej WordPress, łączącej się przez XML-RPC.
Czasem integracja naprawdę potrzebuje takiego wejścia. Na tę okoliczność wtyczka ma dwa filtry dla programistów, osobno dla XML-RPC i dla REST API. Zwrócenie w nich wartości false przepuszcza wybrane konto. To świadoma decyzja, bo drugi czynnik jest wtedy pomijany. Domyślnie wszystkie boczne furtki pozostają zamknięte.
Oto, jak wtyczka traktuje poszczególne drogi do konta z włączonym 2FA:
| Droga do konta | Co robi Smart Protector | Dlaczego |
|---|---|---|
| Panel WordPressa | otwiera go dopiero po poprawnym kodzie | sesja musi przejść weryfikację |
| admin-ajax | odmawia obsługi konta | żądania w tle nie omijają weryfikacji |
| REST API i hasła aplikacji | odmawia do czasu weryfikacji sesji | hasła aplikacji działają bez przeglądarki |
| XML-RPC | odrzuca logowanie | ta droga nie umie poprosić o kod |
Jak wygląda logowanie przez bramkę krok po kroku?
Logowanie przez bramkę przebiega w stałej kolejności: najpierw hasło, potem kod. Tak wygląda droga użytkownika od wpisania hasła do kokpitu:
- wpisujesz login i hasło, także pod własnym, ukrytym adresem,
- jeśli upłynął termin rotacji hasła, wtyczka najpierw prosi o nowe,
- następnie podajesz sześciocyfrowy kod z aplikacji uwierzytelniającej,
- po poprawnym kodzie sesja zostaje zweryfikowana i panel się otwiera.
Konto wymagające 2FA nie utknie przed polem na kod, którego nie ma skąd wziąć. Gdy brakuje sekretu, ekran weryfikacji zawsze pokazuje formularz jego wygenerowania. Nie ma znaczenia, czy 2FA wymusił administrator, czy użytkownik włączył je sam. Generujesz klucz, dodajesz go do programu uwierzytelniającego i potwierdzasz pierwszym kodem.
Jak Smart Protector chroni same kody TOTP?
Kody TOTP, czyli jednorazowe kody czasowe zgodne ze standardem RFC 6238, Smart Protector chroni kilkoma warstwami. Wtyczka akceptuje okno ±1 kroku czasowego, a raz użyty kod nie zadziała drugi raz. Próby wpisania kodu liczy osobny licznik, niezależny od licznika haseł. Liczy je osobno dla adresu IP i dla nazwy użytkownika, z odliczaniem widocznym na ekranie logowania.
Same klucze też nie leżą na widoku. Tabela użytkowników pokazuje je zamaskowane, a administrator musi świadomie kliknąć „Reveal secret”, by je zobaczyć. Po przeładowaniu strony wartość znów znika. Generowanie kodów QR przez zewnętrzne serwisy jest domyślnie wyłączone, bo adres obrazka zawiera tajny klucz. Z wyjątkiem tej opcji wtyczka niczego nie wysyła poza Twoją witrynę.
Gdzie sprawdzisz, kto przeszedł weryfikację 2FA?
To, kto przeszedł weryfikację 2FA, sprawdzisz w dzienniku bezpieczeństwa, czyli ekranie „Smart Protector > Security log”. Trafiają tam udane i nieudane weryfikacje 2FA oraz osiągnięcie limitu prób kodu. Log zapisuje też wygenerowanie, ujawnienie, ręczną podmianę i reset klucza TOTP. Każdy wpis ma czas, nazwę konta, wykryty adres IP i krótki opis zdarzenia. Ekran ma paginację po stronie serwera, a cały log wyczyścisz jednym przyciskiem.
Dziennik nie puchnie przy ataku słownikowym. Zdarzenia trafiają do bazy jednym zapisem na żądanie. Gdy limit prób już blokuje napastnika, jego kolejne próby przestają trafiać do logu. Rozmiar logu ma przy tym górną granicę, domyślnie 200 wpisów.
Czy bramka może wpaść w pętlę albo odrzucać dobre kody?
Bramka nie wpada w pętlę przekierowań, nawet gdy cache lub proxy wytnie jej znacznik z adresu. Po dwóch przekierowaniach wyświetla się w miejscu, zamiast odbijać przeglądarkę bez końca. Ustawienia limitu prób mają też górne granice: okno limitu do 24 godzin i najwyżej 100 prób. Pomyłka przy wpisywaniu wartości nie zamknie Cię więc na wiele dni. Próba ponad limit zostaje odrzucona natychmiast, bez sztucznego opóźnienia.
Gdy telefon podaje poprawne kody, a wtyczka stale je odrzuca, sprawdź zegar serwera. TOTP akceptuje rozbieżność około 30 sekund, a większa unieważnia każdy kod. Panel „Current protection” pokazuje czas serwera w UTC, więc porównasz go z zaufanym zegarem. Rozjazd poprawia hosting przez synchronizację czasu NTP, a nie ustawienie wtyczki.
Co zrobić, gdy użytkownik zgubi aplikację uwierzytelniającą?
Gdy użytkownik zgubi aplikację uwierzytelniającą, administrator resetuje mu 2FA na ekranie „Smart Protector > Global settings”. Odnajduje konto w tabeli użytkowników i wybiera „Reset 2FA”, a następnie „New secret”. Nowy klucz unieważnia dotychczasowy wpis w telefonie, dlatego przycisk prosi o potwierdzenie. Użytkownik dodaje potem konto na nowo i loguje się świeżym kodem.
Na wypadek zablokowania administratora zostają drogi awaryjne. Weryfikację 2FA konta zdejmiesz przez WP-CLI, czyszcząc jego metadane. Ostatnią linią obrony jest dezaktywacja wtyczki, na przykład przez zmianę nazwy jej katalogu przez SFTP. Ustawienia i sekrety zostają przy tym zachowane, jeśli nie zaznaczono opcji usuwania danych.
Jak włączyć bramkę 2FA w swojej witrynie?
Bramkę 2FA włączysz w ustawieniach Smart Protectora, na tym samym ekranie „Global settings”. W tabeli użytkowników wymusisz drugi czynnik dla wybranych kont, a pozostali mogą aktywować go sami w swoim profilu. Rozsądnie jest zacząć od kont z najszerszymi uprawnieniami. Jeśli przy okazji ukrywasz ekran logowania, zapisz nowy adres w zakładkach przed wylogowaniem.
Od tej chwili hasło przestaje być jedynym kluczem do Twojego WordPressa, a żadna boczna furtka go nie zastąpi. Opis wszystkich modułów znajdziesz na stronie wtyczki Smart Protector. Napisz do nas, a pomożemy wdrożyć ochronę bez ryzyka zablokowania się.
