Ecom house logo

Bezpieczeństwo panelu admina Magento 2

Opublikowano: 17 lipca 2026

Bezpieczeństwo panelu administracyjnego to pierwsza linia obrony sklepu - większość udanych ataków na sklepy Magento wykorzystuje słabe hasła admina, brak 2FA lub standardowy URL panelu. Ten poradnik pokazuje, jak utwardzić panel w 5 prostych krokach.

Priorytet: Konfiguracja bezpieczeństwa musi być wykonana po wdrożeniu sklepu, przed udostępnieniem panelu zespołowi. Każdy dzień ze standardowymi ustawieniami zwiększa ryzyko brute-force.

Krok 1. Zmień domyślny URL panelu admina

Ścieżka: Stores > Configuration > Advanced > Admin > Admin Base URL

Domyślny URL /admin to pierwsza informacja, którą widzą boty skanujące internet w poszukiwaniu sklepów Magento. Zmiana URL nie chroni przed ukierunkowanym atakiem, ale eliminuje 99% automatycznych prób logowania.

Pole Wartość
Use Custom Admin URL Yes
Custom Admin URL Pełny URL z https://, np. https://twoj-sklep.pl/
Use Custom Admin Path Yes
Custom Admin Path Niestandardowa ścieżka, np. panel-zarzadzania, office-2026, mojfirma-cms. Nie używaj admin, administrator, backend.

Zapisz Save Config, wyczyść cache, wyloguj się i zaloguj ponownie pod nowym URL.

Test przed wylogowaniem!: Po zapisaniu otwórz nowy URL w prywatnym oknie i sprawdź, czy strona logowania się ładuje. Dopiero potem wyloguj się z bieżącej sesji. Jeśli URL zostanie wpisany błędnie, możesz zablokować sobie dostęp do panelu - wtedy ratunek tylko przez bazę (core_config_data) lub bin/magento config:set.

Krok 2. Włącz 2FA (Two-Factor Authentication)

Ścieżka: Stores > Configuration > Security > 2FA

Magento 2 od wersji 2.4.0 ma wbudowany moduł 2FA (Magento_TwoFactorAuth). Wymaga drugiego składnika uwierzytelnienia przy logowaniu - kodu z aplikacji autoryzacyjnej, U2F lub Duo Security.

Konfiguracja globalna

Pole Wartość
2FA Enabled Yes (jeśli nie jest już ustawione domyślnie)
Force Providers Wybierz dozwolone metody: Google Authenticator (najprostsze) i opcjonalnie U2F.

Konfiguracja per użytkownik

Każdy admin po następnym logowaniu zostanie poproszony o konfigurację 2FA:

  1. Zalogowanie → ekran konfiguracji 2FA.
  2. Skanowanie QR kodem (np. Google Authenticator, Microsoft Authenticator, Authy).
  3. Wpisanie kodu z aplikacji do potwierdzenia.
  4. Zapisanie kodów awaryjnych (backup codes) - w bezpiecznym miejscu (KeePass, 1Password). Pozwolą zalogować się, gdy zgubisz telefon.

Rekomendacja: Google Authenticator jest najprostszy do wdrożenia w zespole. Duo Security ma szerszą funkcjonalność (push notifications), ale wymaga osobnej subskrypcji.

Reset 2FA użytkownika

Jeśli ktoś zgubi telefon i nie ma backup codes:

  1. Inny admin: System > Permissions > All Users > [użytkownik] > Edit → przycisk Reset 2FA.
  2. Lub CLI: bin/magento security:tfa:reset [admin_username] google

Krok 3. Skonfiguruj politykę haseł

Ścieżka: Stores > Configuration > Advanced > Admin > Security

Pole Rekomendowana wartość
Password Lifetime (days) 90
Password Change Forced (wymusza zmianę po Password Lifetime)
Maximum Login Failures to Lockout Account 5
Lockout Time (minutes) 30
Admin Session Lifetime (seconds) 7200 (2 godziny)
Add Secret Key to URLs Yes (zapobiega CSRF)
Login is Case Sensitive Yes

Zapisz Save Config.

Wpływ na zespół: Password Lifetime = 90 dni wymusi zmianę haseł co 3 miesiące. To dobry kompromis - krótsze wartości frustrują zespół, dłuższe zwiększają ryzyko. Lockout 5 prób / 30 min dobrze blokuje brute-force, ale uważaj na admin-ów wpisujących literówki w pośpiechu.

Krok 4. Włącz CAPTCHA w panelu

Ścieżka: Stores > Configuration > Advanced > Admin > CAPTCHA

Pole Rekomendowana wartość
Enable CAPTCHA in Admin Yes
Number of Unsuccessful Attempts for Displaying CAPTCHA 3
CAPTCHA Timeout (minutes) 7
Forms Admin Login + Admin Forgot Password

Zapisz Save Config.

CAPTCHA pojawi się przy logowaniu po 3 nieudanych próbach - chroni przed brute-force, nie utrudniając codziennej pracy.

Magento CAPTCHA vs reCAPTCHA

Magento ma dwa systemy: natywne CAPTCHA i Google reCAPTCHA v2/v3.

System Plusy Minusy
Magento CAPTCHA Bez zewnętrznych zależności, szybkie wdrożenie Łatwiejsza do rozwiązania przez boty.
Google reCAPTCHA Skuteczniejsza, "I'm not a robot" + wersja niewidoczna Wymaga rejestracji w Google + klucze API. Stosować dla frontu sklepu (rejestracja, kontakt, recenzje).

Dla panelu admina wystarcza natywna CAPTCHA. Dla frontu sklepu (formularze) - Google reCAPTCHA.

Krok 5. Blokady IP (opcjonalne, dla zespołów stacjonarnych)

Jeśli wszyscy administratorzy logują się z tej samej sieci firmowej / VPN, możesz ograniczyć dostęp do panelu po IP. To najmocniejsza warstwa zabezpieczenia.

Wariant 1: Po stronie serwera (Nginx)

location ~ ^/(panel-zarzadzania|index\.php/admin) {
    allow 203.0.113.10;        # Office IP
    allow 198.51.100.0/24;     # VPN range
    deny all;
    try_files $uri =404;
}

Wariant 2: Po stronie serwera (Apache .htaccess)

<Location /panel-zarzadzania>
    Order Deny,Allow
    Deny from all
    Allow from 203.0.113.10
    Allow from 198.51.100.0/24
</Location>

VPN i praca zdalna: Przy pracy zdalnej / hybrydowej rozważ konfigurację VPN firmowy zamiast zarządzania długą listą IP. Każdy zdalny admin loguje się przez VPN → sklep widzi tylko jeden IP serwera VPN.

Audyt bezpieczeństwa - co sprawdzić raz na kwartał

Kontrola Gdzie
Aktywne konta admina - czy ktoś nie odszedł z firmy? System > Permissions > All Users
Daty ostatnich logowań - nieużywane konta? System > Permissions > All Users (kolumna Last Login)
Logi logowania Reports > Customer Reviews / Admin Actions (Commerce)
Aktualizacje Magento i modułów composer outdated
Sprawdź bin/magento security:check (jeśli dostępne) CLI
Sprawdź wersję Magento vs MageReport https://www.magereport.com

Najczęstsze problemy

Zablokowałem sobie dostęp do panelu zmieniając Admin URL

Reset przez CLI:

bin/magento config:set admin/url/use_custom 0
bin/magento config:set admin/url/use_custom_path 0
bin/magento cache:flush

Standardowy URL /admin zostanie przywrócony.

Zgubiłem telefon z 2FA i nie mam backup codes

Inny admin musi zresetować Twoje 2FA przez System > Permissions > All Users > [Ty] > Reset 2FA. Jeśli jesteś jedynym adminem - reset z CLI:

bin/magento security:tfa:reset [twoj_username] google

Konto admina się zablokowało po 5 próbach

Reset przez CLI:

bin/magento admin:user:unlock [username]

Lub: poczekaj Lockout Time minut, blokada wygaśnie automatycznie.

Captcha nie działa / pojawia się błąd "Incorrect CAPTCHA"

  1. Sprawdź Stores > Configuration > Advanced > Admin > CAPTCHA - czy włączone.
  2. Wyczyść cache: bin/magento cache:flush.
  3. Sprawdź uprawnienia katalogu var/captcha/ - musi być zapisywalny przez www-data.

Powiązane