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) lubbin/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:
- Zalogowanie → ekran konfiguracji 2FA.
- Skanowanie QR kodem (np. Google Authenticator, Microsoft Authenticator, Authy).
- Wpisanie kodu z aplikacji do potwierdzenia.
- 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:
- Inny admin:
System > Permissions > All Users > [użytkownik] > Edit→ przycisk Reset 2FA. - 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"
- Sprawdź
Stores > Configuration > Advanced > Admin > CAPTCHA- czy włączone. - Wyczyść cache:
bin/magento cache:flush. - Sprawdź uprawnienia katalogu
var/captcha/- musi być zapisywalny przez www-data.
Powiązane
- Pierwsze logowanie i orientacja w panelu - pierwszy krok po wdrożeniu
- Zarządzanie użytkownikami - role, uprawnienia, konta zespołu
- Backup i restore - równie ważne dla bezpieczeństwa
- Logi i diagnostyka - gdzie szukać śladów nieautoryzowanych prób logowania