Admin Shield: proteggere il back office di PrestaShop 8 e 9
Installare e configurare Admin Shield: limitazione dei tentativi, blocco IP e paese, captcha, link segreto, avvisi, sessioni, registro attività e report.
Admin Shield protegge l’accesso al back office di PrestaShop 8 e 9. Il modulo si configura da Parametri avanzati > Admin Shield, organizzato in sette schede: Dashboard, Cronologia degli accessi, Registro attività, Sessioni attive, Ban e blocchi, Impostazioni e Accesso al back office.
Installazione
- In Moduli > Gestione moduli, fai clic su Carica un modulo e invia il file ZIP.
- L’installazione svuota la cache di PrestaShop: tutte le pagine del back office sono protette dalla richiesta successiva.
- Il modulo concede a tutti i profili dei dipendenti il permesso di visualizzare il modulo. Senza di esso, PrestaShop non eseguirebbe i suoi hook per quei dipendenti e le loro azioni non verrebbero registrate.
Prime impostazioni consigliate
- Scheda Impostazioni, blocco Indirizzi IP: fai clic su Aggiungi il mio IP attuale alla whitelist. Un IP in whitelist non viene mai bloccato.
- Controlla la riga IP client rilevato. Dietro Cloudflare o un proxy, mantieni la modalità Automatica o scegli quella adatta.
- Configura la verifica anti-bot (vedi sotto) e testa le chiavi.
- Fai clic su Inviami un’e-mail di prova per verificare che le e-mail del negozio partano.
- Scheda Accesso al back office: rinomina la cartella admin se la checklist la segnala come facile da indovinare.
Prova ogni protezione da una finestra di navigazione privata senza chiudere la tua sessione principale.
Limitazione dei tentativi di accesso
Per impostazione predefinita, 5 errori sullo stesso account dallo stesso IP, o 15 errori da un IP su tutti gli account, entro 15 minuti, bloccano l’accesso per 15 minuti. Con il blocco progressivo, la durata raddoppia a ogni recidiva entro 24 ore, fino a 24 ore. Dopo 3 blocchi in 24 ore, l’IP viene bannato per 7 giorni. Il blocco riguarda la coppia IP e account: un attaccante non può bloccare un dipendente legittimo che si collega da un altro indirizzo. Le richieste di password dimenticata sono limitate a 5 per IP e per ora.
La scheda Ban e blocchi elenca i blocchi attivi, che puoi rimuovere, e i ban, che puoi eliminare. Da lì puoi anche bannare manualmente un IP o un intervallo CIDR.
Indirizzi IP e filtro per paese
La whitelist accetta IP e intervalli CIDR IPv4 e IPv6, uno per riga. L’opzione Consenti solo la whitelist rifiuta ogni altro indirizzo; viene salvata solo se il tuo IP attuale è nell’elenco.
Il filtro per paese funziona in modalità consenti (solo i paesi scelti) o blocca. Il paese proviene dall’header di Cloudflare quando la richiesta arriva davvero dai suoi server, altrimenti da un database MMDB. Fai clic su Scarica il database DB-IP Lite per installare il database dei paesi gratuito, da aggiornare circa ogni due mesi. Gli indirizzi della rete locale non vengono mai filtrati, e il salvataggio viene rifiutato se bloccherebbe la tua connessione.
I visitatori rifiutati ricevono una pagina 403, o una pagina 404 se preferisci nascondere l’esistenza del back office.
Verifica anti-bot: Turnstile o hCaptcha
- Crea un widget su dash.cloudflare.com (Turnstile) o dashboard.hcaptcha.com, autorizzando il dominio del tuo back office.
- In Impostazioni, scegli il fornitore, incolla la chiave del sito e la chiave segreta, poi salva.
- Risolvi il widget di prova e fai clic su Verifica e attiva.
La verifica si applica alla pagina di accesso solo dopo questo test riuscito: una chiave errata non può bloccare gli amministratori. Ogni modifica delle chiavi la disattiva fino al test successivo. Per impostazione predefinita, gli accessi passano se il fornitore non è raggiungibile.
Accesso al back office: link segreto e cartella admin
Link di accesso segreto
Una volta attivo, il back office si apre solo in un browser che ha visitato il link segreto una volta; tutti gli altri ricevono una pagina 404. Il browser che lo attiva mantiene l’accesso, e il link viene inviato via e-mail ai destinatari degli avvisi. Genera un nuovo link invalida tutti i browser tranne il tuo. Gli IP in whitelist non hanno mai bisogno del link.
Rinominare la cartella admin
Viene proposto un nome casuale. Prima della ridenominazione, il nuovo indirizzo viene inviato via e-mail; poi la cartella viene rinominata e la cache svuotata. Accedi di nuovo al nuovo indirizzo e aggiorna le attività cron che puntano alla vecchia cartella. Se il server web non può rinominare la cartella, fallo via FTP e svuota la cache in Parametri avanzati > Prestazioni.
Avvisi di accesso insolito
Il primo accesso di ogni dipendente dopo l’installazione fa da riferimento. Poi parte un avviso per un nuovo IP, un nuovo paese, un nuovo browser o sistema, o un accesso fuori dalla fascia oraria indicata (ad esempio 07-21). I destinatari sono il dipendente, i super amministratori e gli indirizzi aggiuntivi. Il link Non ero io dell’e-mail, valido 7 giorni, banna l’IP, chiude le sessioni del dipendente e invalida la sua password; il dipendente ne sceglie una nuova con Password dimenticata?
Il campo webhook pubblica anche questi avvisi, i blocchi e le modifiche sensibili su Slack, Microsoft Teams, Discord, Google Chat o Mattermost.
Sessioni attive e inattività
La scheda Sessioni attive elenca le sessioni aperte con l’IP, il paese e il dispositivo dell’accesso. Puoi chiudere una sessione, disconnettere tutte le altre tue sessioni o disconnettere ovunque un dipendente. L’impostazione Disconnessione dopo inattività chiude le sessioni inattive oltre il tempo scelto; gli aggiornamenti automatici del back office non contano come attività.
Registro attività
Ogni creazione, modifica ed eliminazione fatta nel back office viene registrata con il dipendente, l’IP, la pagina e, per una modifica, il valore precedente e il nuovo di ogni campo. Password e token sono mascherati. Vengono tracciate anche installazioni, disinstallazioni e aggiornamenti dei moduli. Le modifiche a dipendenti, profili, chiavi API, URL del negozio e le installazioni di moduli sono segnate come sensibili e inviate via e-mail agli amministratori. Filtra per dipendente, azione o oggetto ed esporta in CSV. Aggiungi in Impostazioni le classi di oggetti da non registrare.
Report di sicurezza
Il report viene inviato ogni settimana o ogni mese ai super amministratori e agli indirizzi aggiuntivi. Per un invio affidabile, richiama una volta al giorno l’URL cron mostrato in Impostazioni. Senza cron, il report parte alla visita successiva del back office dopo la scadenza. Il pulsante Inviami il report ora serve da anteprima.
Accesso di emergenza
Se sei bloccato, crea via FTP un file vuoto chiamato disable.flag in modules/dfadminshield/: tutte le protezioni si fermano finché non viene eliminato. Non eliminare la cartella del modulo, il container Symfony di PrestaShop la richiama. Il valore DFAS_KEY della tabella configuration contiene la chiave del link segreto.
Autenticazione a due fattori
Admin Shield protegge la pagina di accesso e sorveglia gli accessi, senza chiedere un codice dopo la password. Per aggiungere questo passaggio, installa anche il modulo 2FA Google Authenticator di DataFirefly: i due funzionano insieme.